AI代理API服务器

一个为AI代理提供API访问的服务器模板,支持Python和Docker运行,适用于API集成和自动化场景。

  • by regdamon25
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 regdamon25/python-mcp-server-template

使用说明

{{项目名称}}

{{PROJECT_DESCRIPTION}}

这是一个MCP(模型上下文协议)服务器模板,为AI代理提供对API端点的访问。它是用Python构建的,可以使用uv包管理器或Docker运行。

设置

先决条件

  • Python 3.13或更高版本(最新稳定版)
  • uv包管理器 (或Docker)

方法1:紫外线局部开发

  1. 安装uv (如果尚未安装):

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. 安装依赖项:

    uv sync
    
  3. 配置环境变量:

    cp .env.example .env
    # Edit .env with your API configuration
    
  4. 运行服务器:

    uv run python -m src.server
    

方法二:Docker

  1. 配置环境变量:

    cp .env.example .env
    # Edit .env with your API configuration
    
  2. 使用Docker Compose构建和运行:

    docker-compose up --build
    

    或者手动构建并运行:

    docker build -t my-mcp-server .
    docker run --rm -it --env-file .env my-mcp-server
    

可用工具

  • get_users:从API检索用户
  • create_user:创建新用户
  • get_user_by_id:按ID获取用户

配置

在您的 .env 文件:

  • API_BASE_URL:现有API的基本URL(默认值:http://localhost:8000)
  • API_KEY:API身份验证密钥(可选)

Docker特定说明

  • 默认值 API_BASE_URL 在Docker中设置为 http://host.docker.internal:8000 访问主机上的服务
  • 调整 docker-compose.yml 如果需要公开端口或使用不同的网络,请使用文件

连接到AI客户端

要将此MCP服务器连接到像Claude Desktop这样的AI客户端,请添加以下配置:

地方发展

{
  "mcpServers": {
    "{{PROJECT_NAME}}": {
      "command": "uv",
      "args": ["run", "python", "-m", "src.server"],
      "cwd": "/path/to/{{PROJECT_NAME}}"
    }
  }
}

码头工人

{
  "mcpServers": {
    "{{PROJECT_NAME}}": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--env-file", "/path/to/{{PROJECT_NAME}}/.env", "{{PROJECT_NAME}}"],
      "cwd": "/path/to/{{PROJECT_NAME}}"
    }
  }
}

发展

测试

# Run tests with uv
uv run pytest

# Or create a simple test
uv run python test_server.py

定制

为了使其适用于您的特定API:

  1. 更新 src/tools.py:

    • 将示例工具替换为实际的API端点
    • 修改 APIClient.make_request() 方法(如果需要自定义身份验证)
    • 更新 handle_tool_call() 使用端点逻辑运行
  2. 更新 src/config.py:

    • 添加API所需的任何附加配置
    • 修改身份验证设置
  3. 添加更复杂的错误处理:

    • 处理特定的HTTP状态代码
    • 为瞬态故障添加重试逻辑
    • 实施适当的日志记录

项目结构

{{PROJECT_NAME}}/
├── src/
│   ├── __init__.py
│   ├── server.py          # Main MCP server implementation
│   ├── tools.py           # Tool definitions and API client
│   └── config.py          # Configuration management
├── pyproject.toml         # Project configuration and dependencies
├── docker-compose.yml     # Docker Compose configuration
├── Dockerfile             # Docker image definition
├── .env.example          # Example environment variables
├── .gitignore            # Git ignore patterns
├── .dockerignore         # Docker ignore patterns
└── README.md             # This file