MCP服务器

auto-mcp-server是一个轻量级的MCP服务器,用于将Web应用程序的REST API与LLM(大型语言模型)进行交互。

  • by alanbuxton
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alanbuxton/auto-mcp-server

使用说明

自动mcp服务器

您有一个带有REST API的web应用程序。也许这是一个Django应用程序,你已经使用 drf-spectacular.

现在,您想让LLM与它对话。您需要一个MCP服务器来处理两者之间的转换。

graph LR
    A[🤖 LLM] <--> B[🔌 MCP Server] <--> C[🌐 API Server]

auto-mcp-server 是一个轻量级的MCP服务器,使LLM可以访问您的Web应用程序。它最初是为https://syracuse.1145.am(代码:https://github.com/alanbuxton/syracuse-neo)但可用于任何具有OpenAPI规范的服务器。不确定它对于大量生产使用有多好,但它肯定足够好。

它有两种口味:

  1. 使用STDIO的本地MCP服务器,可以与Claude Desktop的免费层配合使用
  2. 一个使用Streamable HTTP的远程MCP服务器,可以根据您的喜好部署在任何web主机上。它并没有真正进行任何流式处理,但如果您只处理单独的REST API调用,那也没关系。

使用此仓库

  1. 克隆它
  2. 确保你有 uv 已安装(请参见https://docs.astral.sh/uv/getting-started/installation/)
  3. 复制 .env.sample 到 .env 并根据您的设置进行配置
  4. 使用MCP检查员进行测试 npx @modelcontextprotocol/inspector (参见https://modelcontextprotocol.io/legacy/tools/inspector)

本地MCP服务器(STDIO)

使用本地MCP服务器,您不必启动它,只需配置您的客户端应用程序(例如Claude Desktop)即可知道在哪里可以找到代码。这是一个样品 claude_desktop_config.json

{
  "mcpServers": {
    "Your app name": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/path/to/auto-mcp-server",
        "run",
        "stdio_mcp_server.py"
      ]
    }
  }
}

MCP检查器的连接信息:

  • 传输类型: 工作室
  • 命令: /path/to/uv
  • 参数: --directory /path/to/auto-mcp-server run stdio_mcp_server.py

远程MCP服务器(无状态流式HTTP)

这需要在MCP Inspector可以连接到它之前启动。请使用以下命令启动:

uv run stateless_streaming_http_mcp_server.py

MCP检查器的连接信息:

  • 传输类型:流式HTTP
  • 统一资源定位符:host:端口/mcp,例如。 http://127.0.0.1:9000/mcp
  • 任何进行需要授权的调用的人都需要在“身份验证”部分添加他们的API密钥

无状态流媒体MCP服务器还提供MCP.json .well-known/mcp.json (在这个例子中,它将是 http://127.0.0.1/.well-known/mcp.json )

区分需要身份验证的工具

每个工具都标记了它是否需要身份验证,这是从OpenAPI派生出来的 security 规则(操作的 security 覆盖规范级别 security,并且显式为空 security: [] 意味着没有身份验证)。这通过两种方式暴露出来:

  • 在 tools/list,每个工具携带 _meta: { "requiresAuth": true | false }.
  • 在 .well-known/mcp.json,同样 _meta 旗帜存在,并且 security 块只附加到实际需要身份验证的工具上。

客户端可以使用此功能调用公共端点,而无需提示用户输入令牌,并且只请求需要凭据的工具的凭据。