Appwrite MCP Template
Provides a template for deploying custom MCP tools as stateless servers on Appwrite Functions, supporting environment variables and bearer authentication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Appwrite MCP Templateadd 10 and 20"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Appwrite Hosted MCP Template
Stateless MCP server on Appwrite Functions — official Python SDK (mcp==2.0.0), JSON-RPC over HTTPS. No SSE sessions.
Edit functions/mcp/src/app.py, push with the Appwrite CLI, point your client at the function domain.

Try the demo
claude mcp add --transport http appwrite-mcp-demo https://mcp-example.sgp.appwrite.runOr in Cursor / Claude Desktop mcp.json:
{
"mcpServers": {
"appwrite-mcp-demo": {
"url": "https://mcp-example.sgp.appwrite.run"
}
}
}Demo tools: echo, add.
Related MCP server: cimb-mekari-mcp-server
Deploy your own
# 1. Point the CLI at your project (global Cloud endpoint — not regional)
appwrite client --endpoint https://cloud.appwrite.io/v1 --project-id <your-project>
# 2. Edit appwrite.config.json → set projectId to yours
# 3. Push
cp functions/mcp/.env.example functions/mcp/.env
appwrite push functions --with-variables
# 4. Domain
appwrite proxy list-rules
# or: appwrite proxy create-function-rule --domain <name>.<region>.appwrite.run --function-id mcp-example
# 5. Smoke-test
./scripts/smoke.sh https://<your-domain>Then add the domain the same way as the demo:
claude mcp add --transport http my-mcp https://<your-domain>Write a tool
# functions/mcp/src/app.py
from mcp.server.mcpserver import MCPServer
server = MCPServer(name="my-mcp", version="0.1.0")
@server.tool(description="Do something useful.")
def my_tool(query: str) -> str:
return f"got: {query}"Type hints become the tool inputSchema (and return annotations become outputSchema). Add a ctx: Context parameter to read inbound HTTP headers (including Appwrite's dynamic API key):
from mcp.server.mcpserver import Context
@server.tool(description="...")
def whoami(ctx: Context) -> dict:
return {"api_key": (ctx.headers or {}).get("x-appwrite-key")}More patterns in examples/.
Do not name the tools module server.py — Open Runtimes already ships a top-level server module.
Local development
uv sync
uv run python scripts/dev.py # http://127.0.0.1:8787
./scripts/smoke.sh http://127.0.0.1:8787
uv run pytest -qAuth
Mode | Env | Client header |
Open (default) |
| none |
Bearer |
|
|
Limits
30s hard timeout on domain executions — keep tools under ~25s (
MCP_TOOL_TIMEOUT)No SSE — one JSON response per request (Streamable HTTP JSON mode)
Stateless — no sessions, no progress streaming, no sampling
See docs/design.md and docs/clients.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Build, deploy, and host full-stack web apps from any MCP client. DB, auth, storage, cron included.
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceDeploys a stateless remote MCP server on Cloudflare Workers without authentication, supporting the MCP 2026-07-28 specification and custom tool registration.-
- FlicenseNot gradedqualityCmaintenanceEnables deployment of a stateless remote MCP server on Cloudflare Workers, allowing custom tools to be registered and accessed through MCP clients without requiring authentication.-
- FlicenseNot gradedqualityBmaintenanceEnables deploying a stateless remote MCP server on Cloudflare Workers without authentication, with support for custom tool registration and connections from MCP clients.-
- FlicenseNot gradedqualityBmaintenanceEnables deploying a stateless remote MCP server on Cloudflare Workers without authentication, supporting custom tool registration and compatibility with MCP clients via remote proxy.-