Skip to content

Report Appwrite MCP server metadata#79

Merged
ChiragAgg5k merged 1 commit into
mainfrom
fix/mcp-server-metadata
Jul 13, 2026
Merged

Report Appwrite MCP server metadata#79
ChiragAgg5k merged 1 commit into
mainfrom
fix/mcp-server-metadata

Conversation

@ChiragAgg5k

Copy link
Copy Markdown
Member

Summary

  • report the Appwrite MCP package version, website, and icon during initialization
  • pin the Python MCP SDK to v1 until the breaking v2 migration is performed
  • replace the README registry marker with a live MCP Registry version badge
  • add regression coverage for the initialization metadata

Testing

  • uv run --group dev ruff check src tests
  • uv run --group dev black --check src tests
  • uv run --group dev pyright
  • uv run python -m unittest discover -s tests/unit -v
  • docker build -t appwrite-mcp:ci .

Related issue

N/A

@ChiragAgg5k
ChiragAgg5k merged commit bb41330 into main Jul 13, 2026
5 checks passed
@ChiragAgg5k
ChiragAgg5k deleted the fix/mcp-server-metadata branch July 13, 2026 02:47
@greptile-apps

greptile-apps Bot commented Jul 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR reports Appwrite MCP server metadata (package version, website URL, and icon) during initialization by passing new keyword arguments to the low-level mcp.server.Server constructor. It also pins the MCP Python SDK to <2 to guard against the upcoming breaking v2 migration, and replaces a static registry name marker in the README with a live Shields.io version badge.

  • server.py: Server is now constructed with version=SERVER_VERSION, website_url=SERVER_WEBSITE_URL, and icons=[types.Icon(...)]; the accompanying unit test verifies these fields surface through create_initialization_options().
  • pyproject.toml + uv.lock: adds <2 upper bound on mcp[cli]; the lock file resolves to 1.28.0.
  • README.md: the static mcp-name: marker is replaced with a dynamic badge pointing at the MCP Registry API.

Confidence Score: 4/5

The core logic change is minimal and the new test directly exercises the metadata path; the one concern is whether the mcp lower bound covers the version that introduced these constructor params.

The change to build_mcp_server is straightforward and the new test is thorough. The lower bound >=1.12.0 stays unchanged while the new website_url and icons keyword arguments to the low-level Server constructor only appear documented from mcp 1.19.0 onward — any environment resolving to an older 1.x release could encounter a TypeError at startup.

pyproject.toml — the mcp lower bound likely needs a bump to align with when website_url/icons were added to the low-level Server class.

Important Files Changed

Filename Overview
pyproject.toml Pins mcp SDK to <2 to guard against breaking v2 migration; lower bound stays at >=1.12.0 which may predate the website_url/icons additions to the low-level Server class
src/mcp_server_appwrite/constants.py Adds SERVER_WEBSITE_URL and SERVER_ICON_URL constants; straightforward and correct
src/mcp_server_appwrite/server.py Passes version, website_url, and icons to the Server constructor; relies on low-level Server supporting these keyword args from the minimum allowed version
tests/unit/test_server.py Adds test verifying all three metadata fields propagate through create_initialization_options(); well-structured coverage
README.md Replaces static mcp-name marker with a live Shields.io dynamic badge; double-encoding in the badge URL is correct for the MCP Registry's slash-containing server ID
uv.lock Lock file updated to reflect the new <2 upper bound; resolves mcp to 1.28.0

Fix All in Claude Code Fix All in Codex

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
pyproject.toml:11
**Minimum version may not support `website_url`/`icons` on the low-level `Server`**

The lock file resolves to mcp 1.28.0, but the lower bound stays at `>=1.12.0`. The icons/website_url documentation first appears in the mcp 1.19.0 release. Any fresh install that resolves to exactly 1.12.0 through ~1.18.x could fail with `TypeError: unexpected keyword argument` when `build_mcp_server` tries to construct `Server(..., website_url=..., icons=...)`. The lower bound should be bumped to the earliest version that added these parameters to the low-level `Server` class (likely `>=1.19.0` based on available evidence).

Reviews (1): Last reviewed commit: "(fix): report Appwrite MCP server metada..." | Re-trigger Greptile

Comment thread pyproject.toml
"appwrite>=21.0.0,<22",
"docstring-parser>=0.16",
"mcp[cli]>=1.12.0",
"mcp[cli]>=1.12.0,<2",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Minimum version may not support website_url/icons on the low-level Server

The lock file resolves to mcp 1.28.0, but the lower bound stays at >=1.12.0. The icons/website_url documentation first appears in the mcp 1.19.0 release. Any fresh install that resolves to exactly 1.12.0 through ~1.18.x could fail with TypeError: unexpected keyword argument when build_mcp_server tries to construct Server(..., website_url=..., icons=...). The lower bound should be bumped to the earliest version that added these parameters to the low-level Server class (likely >=1.19.0 based on available evidence).

Prompt To Fix With AI
This is a comment left during a code review.
Path: pyproject.toml
Line: 11

Comment:
**Minimum version may not support `website_url`/`icons` on the low-level `Server`**

The lock file resolves to mcp 1.28.0, but the lower bound stays at `>=1.12.0`. The icons/website_url documentation first appears in the mcp 1.19.0 release. Any fresh install that resolves to exactly 1.12.0 through ~1.18.x could fail with `TypeError: unexpected keyword argument` when `build_mcp_server` tries to construct `Server(..., website_url=..., icons=...)`. The lower bound should be bumped to the earliest version that added these parameters to the low-level `Server` class (likely `>=1.19.0` based on available evidence).

How can I resolve this? If you propose a fix, please make it concise.

Fix in Claude Code Fix in Codex

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant