MCP协议服务器

一个基于Python和FastMCP构建的模型上下文协议服务器,设计用于在Vercel的无服务器平台上运行,提供工具调用和资源管理功能。

  • by amitpuri
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 amitpuri/vercel-mcp-python

使用说明

Vercel MCP Python服务器

使用Python和FastMCP构建的模型上下文协议(MCP)服务器,设计用于在Vercel的无服务器平台上运行。

项目结构

vercel-mcp-python/
├── api/
│   └── index.py          # Main Vercel function
├── src/
│   └── mcp_server.py     # Your MCP server logic
├── client-app/           # Interactive MCP client
│   ├── mcp_client.py     # Rich client application
│   ├── requirements.txt  # Client dependencies
│   ├── setup.py          # Setup script
│   ├── README.md         # Client documentation
│   └── run_client.bat    # Windows launcher
├── requirements.txt       # Server dependencies
├── vercel.json           # Vercel configuration
└── README.md

特性

此MCP服务器提供以下工具:

  • 回声:回显提供的消息
  • 获取时间:获取当前服务器时间
  • add_numbers:将两个数字相加
  • get_weather_info:获取某个地点的模拟天气信息

以及以下资源:

  • config://server:服务器配置信息

先决条件

在设置项目之前,您需要安装Vercel CLI:

安装Vercel CLI

对于Windows上的Git Bash:

  1. 安装Node.js (如果尚未安装):

  2. 全局安装Vercel CLI:

    npm install -g vercel
    
  3. 验证安装:

    vercel --version
    

如果遇到PATH问题:

# Find npm global directory
npm config get prefix

# Add to PATH (add this to your ~/.bashrc)
export PATH=$PATH:$(npm bin -g)
source ~/.bashrc

替代方法:

# Using npx (no global installation)
npx vercel

# Using yarn
yarn global add vercel

设置

  1. 创建并激活虚拟环境 (推荐):

    # Create virtual environment
    python -m venv venv
    
    # Activate virtual environment
    # On Windows PowerShell:
    .\venv\Scripts\Activate.ps1
    
    # On Windows Git Bash:
    source venv/Scripts/activate
    
    # On macOS/Linux:
    source venv/bin/activate
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 登录Vercel:

    vercel login
    
  4. 部署到Vercel:

    vercel --prod
    

地方发展

要在本地进行测试,您可以使用Vercel的开发服务器:

vercel dev

Windows问题疑难解答

备注:地方发展 vercel dev 由于运行时初始化错误,Windows上可能存在问题。这是一个已知的限制,不会影响生产部署。

如果您遇到以下问题 vercel dev:

解决方案1:直接部署(推荐)

vercel --prod

您的服务器将在提供的Vercel URL上可用,并在生产中完美运行。

解决方案2:使用Python在虚拟环境中进行本地测试

# Activate virtual environment first
.\venv\Scripts\Activate.ps1  # Windows PowerShell
# or
source venv/Scripts/activate  # Windows Git Bash

# Test MCP server functionality
python -c "
import sys, os
sys.path.append('src')
from mcp_server import mcp
import json

# Test echo tool
request = {
    'jsonrpc': '2.0',
    'id': 1,
    'method': 'tools/call',
    'params': {'name': 'echo', 'arguments': {'message': 'Hello from venv!'}}
}
response = mcp.handle_request(request)
print(json.dumps(response, indent=2))
"

解决方案3:使用已部署的版本 部署后,您的服务器将在您的Vercel域中可用。

您可以通过以下方式进行测试:

  1. 在浏览器中打开URL
  2. 使用Postman或curl等工具
  3. 与MCP客户端连接

解决方案4:以管理员身份运行(如果需要)

  1. 关闭终端
  2. 右键单击Git Bash/PowerShell并选择“以管理员身份运行”
  3. 导航回您的项目: cd /d/repos/vercel-mcp-python
  4. 尝试 vercel dev 再次

API终点

  • GET /:返回服务器信息和状态
  • POST /:处理MCP协议请求
  • OPTIONS /:处理CORS飞行前请求

依赖项

  • fastmcp>=0.15.0:用于构建MCP服务器的FastMCP框架
  • uvicorn>=0.24.0:用于Python web应用程序的ASGI服务器
  • python-json-logger>=2.0.0:Python应用程序的JSON日志记录

配置

服务器通过以下方式配置 vercel.json 与:

  • Python运行时使用 @vercel/python
  • 最大执行时间30秒
  • 为跨源请求启用CORS
  • 自动路由到主处理程序

用法

部署后,您的MCP服务器将在您的Vercel域中可用。您可以使用任何兼容MCP的客户端连接到它。

使用附带的客户端应用程序

一个丰富的交互式客户端应用程序包含在 client-app/ 目录:

# Navigate to client directory
cd client-app

# Setup (first time only)
python setup.py

# Configure environment (optional)
cp .env.example .env
# Edit .env to customize server URL and settings

# Run the client
python mcp_client.py

客户提供:

  • 🔌 连接测试
  • 🔧 交互式工具调用
  • 📚 资源管理
  • 🧪 所有工具的自动化测试
  • 🎨 漂亮的控制台界面

看 client-app/README.md 了解详细的使用说明。

额外资源

许可证

麻省理工学院