Registering 981 methods as 981 tools would cost more context than most sessions can spare, so this searches the catalog at call time instead — the model pays for four tool definitions and finds the rest when it needs them. The authentication profile is the real access boundary: an API key over stdio never sees console administration at all, while hosted OAuth does. Writes are held behind an explicit confirm_write=true, so a mutating call cannot happen by accident.
Appwrite's official MCP server. Rather than registering every API method as a tool, it exposes a small operator surface and keeps the full Appwrite catalog internal, searching it when the model asks. What that catalog contains depends on how you authenticated.
- appwrite_get_context — a workspace summary: with an API key, the project and readable services; over OAuth, also the account, organization and discovered projects
- appwrite_search_tools — searches the internal catalog at request time and returns matches tagged with the context they act in: console, organization or project
- appwrite_call_tool — invokes a catalog tool; anything that mutates requires confirm_write=true
- appwrite_search_docs — semantic search over Appwrite's own documentation, registered only when the docs index and OPENAI_API_KEY are both present
- Hosted OAuth reaches the whole console control plane: 38 services and 981 methods from appwrite-console 0.2.1, including projects, organizations, domains, migrations, usage, VCS, vectors, WAF and regions
- An API key over stdio deliberately registers a smaller set — 647 project-key-compatible methods across 26 services, including DocumentsDB, VectorsDB and text embeddings, with console administration left out
- Large results are stored as an MCP resource and returned as a preview plus a URI, instead of filling the context window
An Appwrite project. Appwrite Cloud runs this as a hosted OAuth 2.1 resource server over Streamable HTTP, and clients self-register — the authorization server exposes an open registration endpoint, so there is no client id or secret to provision before you connect. Running it yourself instead means an API key, launched over stdio as mcp-server-appwrite; access is still limited per route by the scopes on the credential you used. Documentation search additionally needs OPENAI_API_KEY.
One command — claude mcp add --transport http appwrite https://mcp.appwrite.io/
