MCP服务器模板

一个带有Bearer令牌认证的FastMCP服务器模板,用于快速开始使用模型上下文协议(MCP),支持HTTP传输和远程连接。

  • by Amplify360
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 amplify360/mcp-starter

使用说明

MCP模板

一个简单的FastMCP服务器模板,带有承载令牌身份验证,用于开始使用模型上下文协议(MCP)。

概述

此模板提供了一个基本的MCP服务器,其中包括:

  • 使用API密钥的承载令牌身份验证
  • 演示MCP功能的简单“添加”工具
  • 远程连接的HTTP传输支持

快速开始

先决条件

  • Python 3.13或更高版本
  • 紫外线 (推荐)-一个快速的Python包管理器和项目管理器
    # Install uv
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # or on macOS/Linux with Homebrew
    brew install uv
    
  • 或者,使用pip进行包管理

安装

  1. 克隆此存储库:
git clone <your-repo-url>
cd mcp-template
  1. 安装依赖项:
# With uv (recommended - faster dependency resolution)
uv sync

# or with pip:
pip install -e .

运行服务器

  1. 设置API密钥(可选-默认为“dev-API-key-12345”):
export API_KEY="your-secure-api-key-here"
  1. 启动MCP服务器:
uv run hello.py
# or with pip:
# python hello.py

服务器将启动并监听连接。

使用ngrok进行HTTP隧道

要远程访问您的MCP服务器,您可以使用ngrok:

设置ngrok

  1. 安装ngrok:

    • 下载自 ngrok.com
    • 或者通过软件包管理器安装:
      # macOS
      brew install ngrok
      
      # Linux (apt)
      sudo apt install ngrok
      
  2. 在以下网址创建免费ngrok帐户 ngrok.com 并获取您的身份验证令牌

  3. 配置ngrok:

    ngrok config add-authtoken <your-auth-token>
    

创建隧道

  1. 启动MCP服务器(在一个终端中):

    uv run hello.py
    
  2. 在另一个终端中,创建HTTP隧道:

    ngrok http 8000
    
  3. ngrok将显示一个公共URL,如 https://abc123.ngrok.io -这是您的隧道URL

认证

此模板使用 持有者 令牌身份验证:

  • 当前实施情况:带有承载令牌的API密钥
  • 即将推出:OAuth支持

API密钥设置

  1. 创建一个 .env 模板中的文件:

    cp .env.example .env
    
  2. 编辑 .env 并设置您的API密钥:

    API_KEY="your-secure-api-key-here"
    

安全说明

  • 永远不要将API密钥提交到版本控制
  • 在生产中使用强大、独特的API密钥
  • 考虑定期旋转API键
  • 默认开发密钥(dev-api-key-12345)应仅用于本地测试

可用工具

add(a:int,b:int)->int

将两个数字相加。

示例用法:

result = add(5, 3)  # Returns 8

发展

项目结构

mcp-template/
├── hello.py          # Main MCP server implementation
├── pyproject.toml    # Project dependencies and metadata
├── README.md         # This file
├── .env.example      # Environment variable template
├── .gitignore        # Git ignore file
└── uv.lock           # Dependency lock file (auto-generated)

扩展模板

要添加新工具,请执行以下操作:

  1. 使用 @mcp.tool 装饰师:

    @mcp.tool
    def your_tool(param: str) -> str:
        """Description of your tool"""
        return f"Result: {param}"
    
  2. 重新启动服务器以加载新工具