Skip to content

chore: annotate public MCP tool safety hints - #118

Open
adityaoberai wants to merge 3 commits into
mainfrom
chore/chatgpt-app-submission
Open

chore: annotate public MCP tool safety hints#118
adityaoberai wants to merge 3 commits into
mainfrom
chore/chatgpt-app-submission

Conversation

@adityaoberai

@adityaoberai adityaoberai commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The four public MCP tools omit explicit safety hints, leaving clients without declared read-only, open-world, and destructive behavior. Add all three annotations to each public tool.

Context, catalog search, and documentation search are marked read-only, closed-world, and non-destructive. The generic API executor is marked mutating, open-world, and destructive because it can modify Appwrite resources, send messages, and delete data.

Validation:

  • Ruff and Black checks passed.
  • Serialized MCP annotations were checked against the intended values.
  • Pyright passed with --pythonplatform Linux. Default Windows checking reports six existing Unix API errors in docs indexing and telemetry.
  • Windows unit run: 247 tests reported, with one import error for fcntl and one telemetry CPU-gauge failure. The complete suite needs a Linux run.
  • Docker build attempted but blocked by the unavailable Docker engine.
  • Live integration tests were not run.

This PR is a draft pending the required checks and review.

@adityaoberai adityaoberai changed the title chore: prepare ChatGPT app submission metadata chore: annotate public MCP tool safety hints Sep 10, 2026
@adityaoberai
adityaoberai marked this pull request as ready for review September 10, 2026 14:46
@greptile-apps

greptile-apps Bot commented Sep 10, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge because the public tool annotations now accurately and conservatively describe their behavior.

Summary

  • Marks documentation search and context retrieval as read-only, open-world, and non-destructive.
  • Marks catalog search as read-only, closed-world, and non-destructive.
  • Marks the generic Appwrite API executor as mutating, open-world, and destructive.
  • Corrects the two closed-world annotations identified in the previous review.

Reviews (2) · Last reviewed commit: "fix: mark docs search and get_context as..."

Comment thread src/mcp_server_appwrite/docs_search.py Outdated
appwrite_search_docs sends each query to OpenAI's embeddings API and
appwrite_get_context reads live account, organization, project, and
service data from the Appwrite API. Both make outbound calls, so
open_world_hint=False misrepresented them to clients that honour tool
annotations. appwrite_search_tools stays closed-world since it only
searches the in-process catalog.

Addresses Greptile review feedback on #118.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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