MCP服务器

一个为Netlify设计的轻量级Model Context Protocol (MCP)服务器,提供AI助手工具和资源,并包含FastAPI客户端用于测试和集成。

  • by memextech
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 memextech/mcp_netlify_template

使用说明

Netlify的骨干MCP服务器

这是设计用于部署到Netlify的模型上下文协议(MCP)服务器的最小实现。MCP服务器公开了AI助手可以通过模型上下文协议使用的工具和资源。

该项目还包括一个FastAPI客户端,该客户端提供了一个用于与MCP服务器交互的REST API,使其易于测试并与其他应用程序集成。

特性

MCP服务器

  • 简单的无服务器MCP服务器实现
  • 部署在Netlify上
  • 包括一个基本的“运行分析报告”工具
  • 提供有关解释报告的文档资源

MCP客户端

  • 用于与MCP服务器交互的FastAPI REST API
  • 交互式API文档(Swagger UI)
  • 易于测试和集成
  • 用于自动测试的Python脚本

入门指南

地方发展

  1. 克隆此存储库
  2. 安装依赖项:
    npm install
    
  3. 启动开发服务器:
    npm run dev
    

MCP服务器将在本地可用http://localhost:8888/mcp

测试您的MCP服务器

您可以使用MCP检查器或直接使用curl命令测试MCP服务器。

使用MCP检查器

当开发服务器运行时,您可以使用MCP检查器测试您的MCP服务器:

npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8888/mcp

部署后,您可以测试部署的版本:

npx @modelcontextprotocol/inspector npx mcp-remote@next https://your-site-name.netlify.app/mcp

然后打开http://localhost:6274/在浏览器中与MCP检查器进行交互。

使用curl

您还可以使用curl命令直接测试MCP服务器:

  1. 初始化MCP服务器:

    curl -X POST http://localhost:8888/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"mcp/init","params":{},"id":"1"}'
    
  2. 列出可用工具:

    curl -X POST http://localhost:8888/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"mcp/listTools","params":{},"id":"2"}'
    
  3. 调用工具:

    curl -X POST http://localhost:8888/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"mcp/callTool","params":{"name":"run-analysis-report","args":{"days":5}},"id":"3"}'
    
  4. 列出可用资源:

    curl -X POST http://localhost:8888/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"mcp/listResources","params":{},"id":"4"}'
    
  5. 阅读资源:

    curl -X POST http://localhost:8888/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"mcp/readResource","params":{"uri":"docs://interpreting-reports"},"id":"5"}'
    

部署

部署到Netlify

  1. 将此存储库推送到GitHub
  2. 将您的存储库连接到Netlify
  3. 配置生成设置:
    • 构建命令:留空(不需要构建)
    • 发布目录: public

部署后,您的MCP服务器将在 https://your-site-name.netlify.app/mcp

与Claude Desktop一起使用

要将此MCP服务器与Claude Desktop一起使用:

  1. 转到克劳德桌面设置
  2. 启用MCP服务器配置
  3. 编辑配置文件:
    {
      "mcpServers": {
        "my-mcp": {
          "command": "npx",
          "args": [
            "mcp-remote@next",
            "https://your-site-name.netlify.app/mcp"
          ]
        }
      }
    }
    
  4. 重新启动克劳德桌面

使用MCP客户端

MCP客户端提供REST API接口,用于与MCP服务器交互。它是用FastAPI构建的,并提供了一个干净、现代的API和自动文档。

启动客户端

cd mcp-client
pip install -r requirements.txt
uvicorn main:app --reload

这将在以下位置启动FastAPI服务器http://localhost:8001.您可以访问API文档:http://localhost:8001/docs.

管理MCP服务器和FastAPI客户端

该模板包括几个用于管理MCP服务器和FastAPI客户端的脚本:

cd mcp-client
./start.sh    # Start both services in the background
./stop.sh     # Stop both services gracefully
./check_status.sh  # Check if services are running and view logs
./test_client.py   # Test the FastAPI client endpoints

这些脚本确保进程即使在您关闭终端后也能在后台运行,正确管理日志文件,并提供清晰的状态信息。

测试客户端

您可以使用提供的测试脚本测试客户端:

cd mcp-client
./test_client.py

这将针对API端点运行一系列测试并显示结果。

API终点

  • GET /server -获取服务器信息
  • GET /tools -列出可用工具
  • POST /tools/call -调用工具
  • GET /resources -列出可用资源
  • POST /resources/read -阅读资源

有关更多详细信息,请参阅 MCP客户端自述文件.

延伸

扩展MCP服务器

您可以通过向添加更多工具和资源来扩展此MCP服务器 getServer 功能在 netlify/functions/mcp-server.js.按照现有示例并参考 模型上下文协议文档 了解更多信息。

扩展MCP客户端

要向MCP客户端添加新端点,请编辑 main.py 文件在 mcp-client 目录。客户端使用FastAPI构建,这使得添加新路由和功能变得容易。

了解更多