使用AutoMCP,您可以将任何具有OpenAPI规范的REST API快速转换为符合Model Context Protocol (MCP) 标准的服务器。这个服务器可以被支持MCP的LLM客户端(如部分Anthropic Claude客户端)直接调用,从而赋予LLM调用外部API的能力、提供API文档作为上下文,并定义预设的Prompt模板进行交互。

项目简介

AutoMCP是一个命令行工具,它读取您的API配置(主要指向一个OpenAPI规范文件或URL),自动完成以下工作:

  • 解析OpenAPI规范,生成符合MCP标准的工具(Tool)定义。
  • (如果提供文档URL)抓取并处理API文档,生成可检索的MCP资源(Resource)。
  • 生成用于API交互和文档使用的基础Prompt模板(Prompt)。
  • 启动一个基于FastAPI/Uvicorn的HTTP服务器,托管生成的MCP工具集,通过JSON-RPC协议响应LLM客户端请求。

主要功能点

  • OpenAPI到MCP的转换: 自动将OpenAPI定义的API操作转换为LLM可用的工具。
  • 文档爬取与检索: 抓取API文档网页,进行处理和向量化,使LLM可以通过语义搜索获取文档上下文。
  • 智能Prompt生成: 根据API信息、工具和文档,生成有用的Prompt模板,指导LLM使用API。
  • 认证处理: 支持多种API认证方式(如API Key, Bearer Token),配置后工具会自动处理认证。
  • 流量控制与重试: 内置限速和重试机制,提高API调用的稳定性和可靠性。
  • 多API托管: 一个AutoMCP服务器实例可以托管多个不同的API工具集。

安装步骤

请确保您已安装Python 3.8或更高版本。

  1. 克隆仓库到本地:
    git clone https://github.com/jroakes/automcp.git
    cd automcp
  2. 安装项目依赖:
    pip install -r requirements.txt

这会安装包括'fastmcp'、'fastapi'、'uvicorn'、'requests'、'PyYAML'、'pydantic'、'chromadb'、'crawl4ai'、'nltk'等核心库。

服务器配置 (供MCP客户端参考)

AutoMCP服务器启动后,会监听特定的主机和端口。每个通过'add'命令添加并托管的API工具集,会通过其在配置文件中定义的'name'作为路径前缀暴露MCP服务。

例如,如果您有一个配置文件'weather-api.json',其中包含'"name": "weather-api"',并且您使用'automcp serve --config weather-api.json --host 127.0.0.1 --port 9000'命令启动服务器,那么该天气API的MCP服务将可以通过'http://127.0.0.1:9000/weather-api/mcp'访问。

LLM客户端连接此MCP服务器时,通常需要以下信息:

  • 服务名称: 例如,'weather-api' (取决于您API配置文件中的'name'字段)。
  • 连接方式: 通常是HTTP。
  • 服务器地址: 例如,'127.0.0.1:9000' (取决于您启动服务器时指定的'--host'和'--port')。
  • 服务路径: 例如,'/weather-api/mcp' (由服务器地址和API名称组合而成)。

具体如何配置取决于您的MCP客户端软件,但核心是提供服务器的网络地址和对应API的服务路径。

基本使用方法

  1. 添加并处理API配置: 创建一个包含API OpenAPI规范URL、可选的文档URL、认证信息等的JSON配置文件(参考README中的结构)。然后使用'add'命令处理它。这一步会生成或更新数据库文件,包含工具、资源和Prompt信息。

    automcp add --config /path/to/your/api-config.json --db-directory ./my-api-data
    # 或者处理一个目录下的所有json文件
    # automcp add --config /path/to/config/directory --db-directory ./all-api-data

    '--db-directory'参数是可选的,用于指定存储文档数据库的位置。如果不指定,默认为'./.chromadb/{api_name}'。 '--registry-file'参数也是可选的,用于指定注册文件位置,默认为'./.automcp/registry.json'。

  2. 列出已注册的API服务器:

    automcp list-servers
  3. 启动MCP服务器: 启动服务器托管一个或多个已添加的API。

    # 启动所有已注册的API
    automcp serve --host 0.0.0.0 --port 8000
    # 启动指定配置文件中的API (此方式不会使用注册信息中的db_directory,而是使用serve命令的db_directory或默认)
    # automcp serve --config /path/to/your/api-config.json --host 127.0.0.1 --port 9000 --debug
    # 启动一个目录中的所有API
    # automcp serve --config /path/to/config/directory --host 127.0.0.1 --port 9000

    服务器将开始监听指定的主机和端口,准备接受MCP客户端的连接。

  4. 移除API配置: 如果不再需要托管某个API,可以使用'remove'命令。默认会同时删除相关的数据库文件。

    # 移除名为 'weather-api' 的API及其数据
    automcp remove --name weather-api
    # 移除API但保留数据
    # automcp remove --name weather-api --keep-data
  5. 为特定平台安装 (例如Claude): 生成特定平台所需的配置。此命令实际上是生成一个包含服务器地址信息的JSON文件。

    # 生成所有已注册API的Claude配置文件
    automcp install claude --output .claude.json
    # 生成指定API的Claude配置文件
    # automcp install claude --config /path/to/your/api-config.json --output .claude.json --host your_server_host --port 8000

    生成的'.claude.json'文件包含了LLM客户端连接到您的AutoMCP服务器并使用托管工具所需的信息。您需要将此文件导入到支持的LLM客户端中。

信息

分类

开发者工具