Appwrite MCP Server (mcp-for-api)

使用说明内容(Markdown格式)

  • 项目简介

    • 该仓库实现了一个可运行的 MCP 服务器,用于将 Appwrite 的数据库、用户、团队、存储、函数、消息等 API 能力暴露为 MCP 工具,供 LLM 客户端通过 JSON-RPC 调用与查询。服务器负责工具注册、参数类型映射、工具描述生成以及执行调用等核心能力。
  • 主要功能点

    • 将 Appwrite API 封装为可被 MCP 客户端调用的“工具”,并支持动态注册不同的 Appwrite 服务(TablesDB、Users、Teams、Storage、Functions、Messaging、Locale、Avatars、Sites、Databases)。
    • 自动从服务方法中提取输入参数的类型和文档说明,生成符合 MCP 的工具定义(输入模式、必填项、字段描述)。
    • 提供两个核心 MCP 接口:列出工具(list_tools)与执行工具(call_tool),实现 JSON-RPC 風格的请求响应。
    • 使用既定的 MCP 服务框架与 stdio 传输(stdio_server),与客户端通过标准输入/输出进行通信,便于在本地开发环境或集成流水线中运行。
    • 内部包含工具管理器(ToolManager)和服务抽象(Service),实现对工具集合的集中管理和查询。
  • 安装步骤

    • 克隆仓库并进入项目目录。
    • 安装并准备运行环境(推荐使用 uv 运行或 Python 运行方式):
      • 使用 uv:uvx mcp-server-appwrite
      • 使用 Python 直接运行:python -m mcp_server_appwrite
    • 设置 Appwrite 的凭据与端点(必须在环境变量中配置):
      • APPWRITE_PROJECT_ID:你的 Appwrite 项目 ID
      • APPWRITE_API_KEY:具有所需权限的 API Key
      • APPWRITE_ENDPOINT:Appwrite 服务端点 URL(可选,默认为 https://cloud.appwrite.io/v1)
    • 如果需要启用特定的 Appwrite 服务,可通过命令行参数开启,例如:
      • --tablesdb 启用 TablesDB
      • --users 启用 Users
      • --teams 启用 Teams
      • --storage 启用 Storage
      • --functions 启用 Functions
      • --messaging 启用 Messaging
      • --locale 启用 Locale
      • --avatars 启用 Avatars
      • --sites 启用 Sites
      • --databases 启用 Legacy Databases
      • --all 启用全部
    • 若初次运行未指定服务,将默认启用 TablesDB,以确保服务器有可用工具。
  • 服务器配置(供 MCP 客户端使用的配置信息) 说明:MCP 客户端需要提供服务器的启动命令和必要参数,才可连接并使用该 MCP 服务器。以下配置示例基于仓库实现的默认启动方式和环境变量需求,包含服务器名称、启动命令、参数及环境变量注释信息: { "server_name": "appwrite", "command": "uvx", "args": ["mcp-server-appwrite"], "env": { "APPWRITE_PROJECT_ID": "<YOUR_PROJECT_ID>", "APPWRITE_API_KEY": "<YOUR_API_KEY>", "APPWRITE_ENDPOINT": "https://<REGION>.cloud.appwrite.io/v1" // 可选,如不提供则使用默认端点 } // 说明:上述 env 变量为 MCP 服务器运行所需的最小凭据。换成实际值后,客户端即可通过配置的命令启动服务器并与之通信。 }

  • 基本使用方法

    • 启动与运行
      • 通过 uv 启动(推荐): uvx mcp-server-appwrite
      • 通过 Python 直接运行: python -m mcp_server_appwrite
    • 与 MCP 客户端的交互
      • 客户端首先请求列出可用工具(list_tools),服务器返回工具定义集合。
      • 客户端根据需要调用某个工具(call_tool),传入工具名称和参数,服务器执行并返回结果。
    • 使用建议
      • 结合 Appwrite 的实际 API 调用场景,逐步启用所需服务,以控制上下文窗口的令牌消耗。
      • 确保 Appwrite API Key 具备相应的权限范围,避免权限不足导致调用失败。
  • 额外信息

    • 服务器通过初始化选项(InitializationOptions)声明服务器名称、版本以及能力集合,便于客户端及调试工具识别。
    • 代码中对参数类型与文档进行了自动推断与 JSON Schema 转换,方便 LLM 客户端理解工具输入。

服务器信息