MCP Hello World Server

MCP Hello World Server

A demonstration Model Context Protocol server that provides a configurable 'Hello World' tool with multi-language support and input validation. It supports both local stdio and remote HTTP deployment via Docker, facilitating testing and integration with platforms like Cursor and Manus.

Category
访问服务器

README

MCP Hello World 服务器

一个简单的 Model Context Protocol (MCP) 服务器实现,提供 Hello World 功能演示。

功能特性

  • ✅ 支持多语言问候(中文/英文)
  • ✅ 输入参数验证和约束
  • ✅ 可配置的重复次数
  • ✅ 完整的错误处理
  • ✅ 符合 MCP 协议规范
  • ✅ 支持本地(stdio)和远程(HTTP)部署
  • ✅ Docker 容器化部署支持
  • ✅ 兼容 Manus 平台注册

安装

本地开发模式(stdio)

适用于本地开发和 Cursor 集成:

# 1. 安装依赖
pip install -r requirements.txt

# 2. 验证安装
python mcp_server.py

远程部署模式(HTTP)

适用于远程部署和 Manus 注册:

# 1. 安装依赖
pip install -r requirements.txt

# 2. 启动HTTP服务器
python mcp_server_http.py

# 服务器将在 http://0.0.0.0:8000 启动

工具说明

hello_world 工具

一个简单的问候工具,支持以下参数:

  • name (string, 可选): 要问候的名字

    • 默认值: "World"
    • 约束: 1-100个字符,支持字母、数字、空格和中文
    • 示例: "张三", "Alice", "World"
  • language (string, 可选): 问候语言

    • 默认值: "zh"
    • 可选值: "zh" (中文) 或 "en" (英文)
  • count (integer, 可选): 重复次数

    • 默认值: 1
    • 约束: 1-10次

使用示例

{
  "name": "hello_world",
  "arguments": {
    "name": "张三",
    "language": "zh",
    "count": 3
  }
}

输出:

1. 你好,张三!
2. 你好,张三!
3. 你好,张三!

[元数据: {"language": "zh", "name": "张三", "count": 3}]

注册到 Agent

方法一:通过 Cursor 配置(推荐)

  1. 打开 Cursor 设置
  2. 找到 MCP 服务器配置(通常在设置 > Features > MCP Servers)
  3. 添加以下配置:
{
  "mcpServers": {
    "hello-world": {
      "command": "python",
      "args": [
        "C:\\work\\backend\\python-mcp\\mcp_server.py"
      ],
      "env": {}
    }
  }
}

注意: 请将路径替换为你的实际项目路径。

方法二:通过环境变量

在 Cursor 的配置文件中设置:

{
  "mcpServers": {
    "hello-world": {
      "command": "python",
      "args": [
        "mcp_server.py"
      ],
      "cwd": "C:\\work\\backend\\python-mcp",
      "env": {
        "PYTHONPATH": "C:\\work\\backend\\python-mcp"
      }
    }
  }
}

方法三:使用完整路径和虚拟环境

如果你使用虚拟环境:

{
  "mcpServers": {
    "hello-world": {
      "command": "C:\\work\\backend\\python-mcp\\venv\\Scripts\\python.exe",
      "args": [
        "C:\\work\\backend\\python-mcp\\mcp_server.py"
      ],
      "env": {}
    }
  }
}

验证注册

注册成功后,你可以在 Cursor 中:

  1. 打开聊天界面
  2. 输入类似 "使用hello_world工具问候张三" 的指令
  3. Agent 应该能够调用该工具并返回结果

远程部署指南

方式一:Docker 部署(推荐)

1. 使用 Docker Compose(最简单)

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

2. 使用 Docker 命令

# 构建镜像
docker build -t hello-world-mcp:latest .

# 运行容器
docker run -d \
    --name hello-world-mcp \
    -p 8000:8000 \
    --restart unless-stopped \
    hello-world-mcp:latest

3. 使用部署脚本

# 赋予执行权限(Linux/Mac)
chmod +x deploy.sh

# 执行部署
./deploy.sh

方式二:直接运行

# 设置环境变量
export HOST=0.0.0.0
export PORT=8000

# 启动服务器
python mcp_server_http.py

方式三:云平台部署

部署到云服务器(Ubuntu/Debian)

# 1. SSH连接到服务器
ssh user@your-server.com

# 2. 安装依赖
sudo apt update
sudo apt install python3 python3-pip docker.io docker-compose

# 3. 克隆项目
git clone <your-repo-url>
cd python-mcp

# 4. 使用Docker部署
docker-compose up -d

配置 Nginx 反向代理(可选,用于HTTPS)

创建 /etc/nginx/sites-available/mcp-server:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/mcp-server /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

配置 SSL 证书(使用 Let's Encrypt):

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

验证部署

部署成功后,访问以下端点验证:

  • 健康检查: http://your-server:8000/health
  • API信息: http://your-server:8000/
  • 工具列表: http://your-server:8000/tools
  • MCP端点: http://your-server:8000/mcp

注册到 Manus 平台

Manus 是一个 MCP 服务器管理平台,允许你将自定义 MCP 服务器注册到平台上供 Agent 使用。

准备工作

  1. 确保服务器可访问

    • 服务器必须通过 HTTPS 可访问(Manus 要求 HTTPS)
    • 如果没有 HTTPS,可以使用 Nginx + Let's Encrypt 配置(见上方说明)
  2. 获取服务器 URL

    • 确保你的服务器地址是 https://your-domain.comhttps://your-ip:8000
    • MCP 端点地址应为: https://your-domain.com/mcp

注册步骤

  1. 登录 Manus 控制台

    • 访问 Manus 平台并登录
  2. 导航到集成设置

    • 进入 Manus 设置页面
    • 选择"集成"或"Integrations"选项
  3. 添加自定义 MCP 服务器

    • 点击"自定义 MCP 服务器"或"Custom MCP Server"
    • 选择"添加服务器"或"Add Server"
  4. 填写服务器信息

    • 服务器名称: 输入描述性名称,如 "Hello World MCP"
    • 服务器 URL: 输入你的服务器 MCP 端点地址
      https://your-domain.com/mcp
      
    • 身份验证(如需要):
      • API 密钥: 如果服务器需要 API 密钥认证
      • Bearer 令牌: 如果使用 Bearer 认证
      • OAuth: 如果使用 OAuth 认证
  5. 测试连接

    • Manus 会自动验证是否可以与服务器通信
    • 系统会尝试获取可用工具列表
    • 如果连接成功,你会看到工具列表
  6. 保存配置

    • 测试通过后,点击"保存"完成注册

配置示例

在 Manus 中添加服务器时的配置示例:

{
  "name": "Hello World MCP",
  "url": "https://your-domain.com/mcp",
  "auth": {
    "type": "none"  // 或 "api_key", "bearer", "oauth"
  }
}

验证 Manus 注册

注册成功后:

  1. 检查工具列表

    • 在 Manus 的集成页面中,你应该能看到 "hello_world" 工具
  2. 测试工具调用

    • 在 Manus 中创建一个测试 Agent
    • 在提示词中引用 hello_world 工具
    • 验证工具是否正常工作
  3. 查看日志

    • 检查你的服务器日志,应该能看到来自 Manus 的请求

安全建议

在生产环境中部署时,建议:

  1. 启用 HTTPS

    • 使用 Let's Encrypt 免费 SSL 证书
    • 确保所有通信都通过 HTTPS
  2. 添加身份验证

    • 实现 API 密钥验证
    • 或使用 OAuth 2.0 认证
    • 限制访问来源 IP(如果可能)
  3. 设置速率限制

    • 防止 API 滥用
    • 限制每个 IP 的请求频率
  4. 监控和日志

    • 记录所有请求日志
    • 设置监控告警
    • 定期检查服务器状态

故障排除

问题1: Manus 无法连接到服务器

解决方案:

  • 检查服务器是否正常运行: curl https://your-domain.com/health
  • 验证防火墙设置,确保端口 8000 或 443 可访问
  • 检查 SSL 证书是否有效

问题2: 工具列表获取失败

解决方案:

  • 检查 /tools 端点是否正常: curl https://your-domain.com/tools
  • 查看服务器日志中的错误信息
  • 验证 MCP 协议响应格式是否正确

问题3: 工具调用失败

解决方案:

  • 测试 MCP 端点: 发送 JSON-RPC 请求到 /mcp
  • 检查请求格式是否符合 MCP 协议规范
  • 查看服务器日志了解具体错误

约束说明

输入验证约束

  1. name 参数:

    • 最小长度: 1 字符
    • 最大长度: 100 字符
    • 允许字符: 字母、数字、空格、中文字符
    • 自动去除首尾空格
  2. language 参数:

    • 仅允许: "zh" 或 "en"
    • 默认值: "zh"
  3. count 参数:

    • 最小值: 1
    • 最大值: 10
    • 默认值: 1

错误处理

  • 参数验证失败时返回详细的错误信息
  • 未知工具调用时抛出异常
  • 所有异常都被捕获并返回友好的错误消息

开发

项目结构

python-mcp/
├── mcp_server.py          # MCP服务器主文件(stdio模式,用于本地)
├── mcp_server_http.py     # MCP服务器HTTP版本(用于远程部署)
├── requirements.txt       # Python依赖
├── Dockerfile            # Docker镜像构建文件
├── docker-compose.yml    # Docker Compose配置
├── deploy.sh             # 快速部署脚本
├── test_server.py        # 测试脚本
├── config.example.json   # 配置文件示例
└── README.md            # 说明文档

测试

你可以使用 MCP 客户端工具测试服务器:

# 确保服务器可以正常启动
python mcp_server.py

故障排除

问题1: 找不到 mcp 模块

解决方案: 确保已安装所有依赖

pip install -r requirements.txt

问题2: Agent 无法调用工具

解决方案:

  1. 检查配置文件路径是否正确
  2. 确保 Python 可执行文件路径正确
  3. 检查 Cursor 是否已重启以加载新配置

问题3: 参数验证失败

解决方案:

  • 检查输入参数是否符合约束条件
  • 查看错误消息中的具体提示

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选