项目简介

ACI.dev MCP服务器是一个基于 Model Context Protocol (MCP) 实现的后端应用,旨在将 ACI.dev 平台托管的各种函数(可被LLM视为“工具”)暴露给支持MCP协议的LLM客户端。它作为LLM与外部功能之间的桥梁,允许LLM调用 ACI.dev 上集成的服务和应用的功能。

该仓库提供了两种类型的MCP服务器实现:

  1. Apps Server ('aci-mcp-apps'):直接暴露指定应用下的函数列表给LLM。
  2. 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' 工具直接运行。

  1. 确保您已安装 Python 环境。
  2. 安装 'uv' (用于运行 Python 包的工具):
    curl -sSf https://install.pypa.io/get-pip.py | python3 -
    pip install uv
  3. 安装 'uvx' (用于直接运行包):
    pip install uvx
  4. 设置您的 ACI.dev API 密钥环境变量 'ACI_API_KEY'。您可以在 ACI.dev 平台项目设置中找到该密钥。
    export ACI_API_KEY="您的ACI.dev API密钥"
  5. 在 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客户端的服务器配置中即可。

基本使用方法

  1. 设置环境变量和准备关联账号: 在启动服务器的环境中设置 'ACI_API_KEY' 环境变量,并在 ACI.dev 平台准备好需要使用的应用和关联账号,获取 'LINKED_ACCOUNT_OWNER_ID'。
  2. 选择服务器类型: 根据您的需求选择启动 Apps Server (需要预先确定使用哪些应用的函数) 或 Unified Server (需要动态发现和执行函数)。
  3. 启动服务器: 根据您选择的服务器类型和配置(应用列表或是否限制搜索范围),在命令行中运行相应的命令。例如:
    • 启动 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
  4. 配置MCP客户端: 在您的支持MCP协议的LLM客户端(如 Claude Desktop, Cursor 等)中添加新的MCP服务器配置,使用上面生成的JSON格式配置信息。
  5. 通过LLM使用工具: 配置完成后,您的LLM即可通过该MCP服务器发现并调用 ACI.dev 上的函数来完成任务。

信息

分类

AI与计算