模型上下文协议服务器

一个使用FastMCP的简单MCP服务器,支持自动部署和多种工具功能。

  • by VibeCoding6-JC
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 VibeCoding6-JC/TestMCP

使用说明

使用FastMCP的简单MCP服务器

一个简单的MCP(模型上下文协议)服务器使用FastMCP,通过GitHub动作自动部署。

🚀 特性

  • 你好 问候/问候工具
  • 计算 - 数学计算工具(加,减,乘,除)
  • 获取时间 工具来获取服务器时间
  • 服务器信息 信息服务器工具

📁 Struktur项目

TestMCP/
├── .github/
│   └── workflows/
│       └── deploy.yml          # GitHub Actions workflow
├── src/
│   └── server.py               # FastMCP server utama
├── Dockerfile                  # Docker image
├── docker-compose.yml          # Docker compose config
├── requirements.txt            # Dependencies Python
├── README.md                   # Dokumentasi ini
├── .gitignore                  # Ignore files
└── plan.md                     # Planning dokumen

🛠️ 设置本地开发

1.克隆存储库

git clone <your-repo-url>
cd TestMCP

2.Buat虚拟环境

python -m venv venv

# Windows
venv\Scripts\activate

# Linux/Mac
source venv/bin/activate

3.安装依赖项

pip install -r requirements.txt

4. 运行服务器(本地)

python src/server.py

5. 使用Docker运行(推荐)

docker-compose up -d --build

服务器将在 http://0.0.0.0:6969

  • SSE端点: http://localhost:6969/sse
  • 消息端点: http://localhost:6969/messages/

⚙️ 设置GitHub操作部署

1. 添加 GitHub 秘密

转到 设置>秘密和变量>操作 在GitHub仓库中,然后添加:

秘密名称 值 描述
SSH_PRIVATE_KEY (OpenSSH 私钥)
SSH_HOST 103.164.191.212 IP地址服务器
SSH_PORT 22193 端口SSH
SSH_USER your-username 用户名SSH
DEPLOY_PATH /home/user/mcp-server 路径部署di服务器

2. 将PPK转换为OpenSSH(如果使用PuTTY密钥)

# Install puttygen (Linux)
sudo apt install putty-tools

# Convert
puttygen devops01.ppk -O private-openssh -o devops01.pem

3.普什科主分行

git add .
git commit -m "Initial commit"
git push origin main

GitHub Actions 将自动部署到服务器上,当有 push 或 PR 到分支 main.

🌐 公共IP访问

部署后,MCP服务器可以通过以下方式访问:

  • SSE端点: http://103.164.191.212:6969/sse
  • 消息: http://103.164.191.212:6969/messages/

⚠️ 确保服务器防火墙上的端口6969已打开!

📖 使用工具

Hello工具

{
  "tool": "hello",
  "arguments": {
    "name": "John"
  }
}

计算工具

{
  "tool": "calculate",
  "arguments": {
    "operation": "add",
    "a": 10,
    "b": 5
  }
}

获取时间工具

{
  "tool": "get_time",
  "arguments": {
    "timezone": "UTC"
  }
}

服务器信息工具

{
  "tool": "server_info",
  "arguments": {}
}

🔒 安全

⚠️ 渗透:

  • 永远不要将私钥提交到仓库。
  • 使用 GitHub Secrets 存储凭据
  • 文件 .gitignore 已配置为忽略敏感文件

📝 许可证

MIT许可证