项目简介
ACI.dev MCP服务器是一个基于 Model Context Protocol (MCP) 实现的后端应用,旨在将 ACI.dev 平台托管的各种函数(可被LLM视为“工具”)暴露给支持MCP协议的LLM客户端。它作为LLM与外部功能之间的桥梁,允许LLM调用 ACI.dev 上集成的服务和应用的功能。
该仓库提供了两种类型的MCP服务器实现:
- Apps Server ('aci-mcp-apps'):直接暴露指定应用下的函数列表给LLM。
- Unified Server ('aci-mcp-unified'):仅暴露两个元函数('ACI_SEARCH_FUNCTIONS' 和 'ACI_EXECUTE_FUNCTION'),允许LLM动态搜索并执行 ACI.dev 平台上的任何函数。
主要功能点
- 连接ACI.dev函数: 提供通过ACI.dev访问各种外部应用和服务的函数(工具)。
- 两种服务模式: 支持直接指定函数列表(Apps Server)或通过元函数进行动态发现和执行(Unified Server)。
- 工具列表提供 ('list_tools'): 根据服务器类型和配置,向LLM客户端返回可用的函数(工具)列表及其描述和输入规范。
- 工具调用处理 ('call_tool'): 接收LLM客户端发起的函数调用请求,执行对应的 ACI.dev 函数,并将结果返回给LLM。
- 多传输协议支持: 支持 StdIO (标准输入输出) 和 SSE (Server-Sent Events) 两种传输方式与LLM客户端通信。
- 会话管理和能力声明: 通过MCP协议处理客户端连接、初始化和能力交互。
安装步骤
该项目发布在 PyPI 上,可以通过 'uvx' 工具直接运行。
- 确保您已安装 Python 环境。
- 安装 'uv' (用于运行 Python 包的工具):
curl -sSf https://install.pypa.io/get-pip.py | python3 - pip install uv - 安装 'uvx' (用于直接运行包):
pip install uvx - 设置您的 ACI.dev API 密钥环境变量 'ACI_API_KEY'。您可以在 ACI.dev 平台项目设置中找到该密钥。
export ACI_API_KEY="您的ACI.dev API密钥" - 在 ACI.dev 平台上配置应用,并将需要使用的应用添加到您的 Agent 允许列表中。同时,创建并链接您的账号(如 Google, Microsoft 等),记下 'LINKED_ACCOUNT_OWNER_ID'。
服务器配置 (供MCP客户端使用)
MCP客户端需要配置服务器的启动命令和参数来建立连接。以下是两种服务器类型的基本配置信息:
1. Apps Server ('aci-mcp-apps') 配置示例:
该服务器直接暴露您指定的应用下的函数。您需要指定希望暴露的应用列表和关联账号的 Owner ID。
{ "name": "aci-mcp-apps", "command": "uvx", "args": [ "aci-mcp", "apps-server", "--apps", "<逗号分隔的应用名称,例如 BRAVE_SEARCH,GMAIL>", "--linked-account-owner-id", "<您的关联账号Owner ID>", "--transport", "<传输方式,例如 stdio 或 sse>", "--port", "<如果使用 sse 传输,请指定端口,例如 8000>" ] }
- '--apps': 必需。 指定一个或多个(用逗号分隔,无空格)您希望LLM能直接访问其函数的应用名称。例如 '"BRAVE_SEARCH,GMAIL"'。
- '--linked-account-owner-id': 必需。 您在 ACI.dev 平台上创建并链接的账号的 Owner ID,用于执行工具调用时使用这些账号的凭证。
- '--transport': 可选。指定MCP客户端与服务器通信的传输方式。默认为 'stdio'。可选项为 'stdio' 或 'sse'。
- '--port': 如果 '--transport' 设置为 'sse',则此项必需。指定服务器监听的端口号。
2. Unified Server ('aci-mcp-unified') 配置示例:
该服务器暴露两个元函数,允许LLM动态搜索和执行 ACI.dev 平台上的任何函数。您只需提供关联账号的 Owner ID。
{ "name": "aci-mcp-unified", "command": "uvx", "args": [ "aci-mcp", "unified-server", "--linked-account-owner-id", "<您的关联账号Owner ID>", "--allowed-apps-only", "<可选,如果只想搜索/执行该API Key关联Agent允许的应用,请设置为 true>", "--transport", "<传输方式,例如 stdio 或 sse>", "--port", "<如果使用 sse 传输,请指定端口,例如 8000>" ] }
- '--linked-account-owner-id': 必需。 同上,关联账号的 Owner ID。
- '--allowed-apps-only': 可选。如果设置此标志(参数值为true),动态函数搜索将仅限于与当前 'ACI_API_KEY' 关联的 Agent 所允许访问的应用。默认为 'false',允许搜索 ACI.dev 平台上的所有公开函数。
- '--transport': 可选。同上,传输方式。默认为 'stdio'。
- '--port': 同上,如果使用 'sse' 传输,必需指定端口。
将上述JSON配置片段添加到您的MCP客户端的服务器配置中即可。
基本使用方法
- 设置环境变量和准备关联账号: 在启动服务器的环境中设置 'ACI_API_KEY' 环境变量,并在 ACI.dev 平台准备好需要使用的应用和关联账号,获取 'LINKED_ACCOUNT_OWNER_ID'。
- 选择服务器类型: 根据您的需求选择启动 Apps Server (需要预先确定使用哪些应用的函数) 或 Unified Server (需要动态发现和执行函数)。
- 启动服务器: 根据您选择的服务器类型和配置(应用列表或是否限制搜索范围),在命令行中运行相应的命令。例如:
- 启动 Apps Server 使用 Brave Search 和 Gmail 的函数,使用 StdIO 传输:
uvx aci-mcp apps-server --apps "BRAVE_SEARCH,GMAIL" --linked-account-owner-id <您的LINKED_ACCOUNT_OWNER_ID> - 启动 Unified Server,允许搜索所有函数,使用 SSE 传输监听 8000 端口:
uvx aci-mcp unified-server --linked-account-owner-id <您的LINKED_ACCOUNT_OWNER_ID> --transport sse --port 8000
- 启动 Apps Server 使用 Brave Search 和 Gmail 的函数,使用 StdIO 传输:
- 配置MCP客户端: 在您的支持MCP协议的LLM客户端(如 Claude Desktop, Cursor 等)中添加新的MCP服务器配置,使用上面生成的JSON格式配置信息。
- 通过LLM使用工具: 配置完成后,您的LLM即可通过该MCP服务器发现并调用 ACI.dev 上的函数来完成任务。
信息
分类
AI与计算