加密货币价格服务

一个基于Python和MCP框架的API服务,提供实时加密货币价格检索和CoinMarketCap API集成。

  • by stevearagonsite
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 stevearagonsite/pythonservermcp

使用说明

Python服务器MCP-加密货币价格服务

该项目实现了一个提供加密货币价格信息的MCP(模型上下文协议)服务器。服务器是使用Python和MCP框架构建的,以创建可由不同客户端使用的API。

码头工人

Docker构建: docker build -t mcp/python-server-mcp -f Dockerfile .

将以下内容添加到您的 mcp.json 文件:

{
  "mcpServers": {
    "python-server-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "8000:8000",
        "-e",
        "ENVIRONMENT",
        "-e",
        "COINMARKETCAP_API_KEY",
        "mcp/python-server-mcp"
      ],
      "env": {
        "ENVIRONMENT": "PRODUCTION",
        "COINMARKETCAP_API_KEY": "your-api-key",
      }
    }
  }
}

特性

  • 实时加密货币价格检索
  • 基于环境的配置(开发、生产、暂存、本地)
  • CoinMarketCap API集成
  • Docker容器部署

需求

  • Python 3.12+
  • uv(包和虚拟环境管理器)
  • Docker(可选,用于容器执行)

安装

使用紫外线(推荐)

# Clone the repository
git clone <repository-url>
cd PythonServerMcp

使用uv创建和激活虚拟环境

uv venv
source .venv/bin/activate

安装依赖项

uv sync

配置

  1. 创建一个 .env 项目根目录中的文件,包含以下变量:
ENVIRONMENT=DEV  # Options: LOCAL, DEV, STAGING, PROD
COINMARKETCAP_API_KEY=your_api_key_here
  1. 您还可以为每个环境创建特定的环境文件:
    • .dev.env -开发环境
    • .staging.env -用于暂存环境
    • .prod.env -用于生产环境

用法

本地执行

python main.py

这将启动MCP服务器,该服务器将通过标准输入/输出(stdio)监听请求。

使用Docker

# Build the image
docker build -t test-mcp -f Dockerfile --platform linux/amd64 .

# Run the container
docker run -it test-mcp

项目结构

.
├── main.py
└── src
    ├── __init__.py
    ├── core
    │   ├── common
    │   │   ├── crypto_schema.py
    │   │   └── schema.py
    │   ├── config.py
    │   ├── settings
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── development.py
    │   │   ├── environment.py
    │   │   ├── local.py
    │   │   ├── production.py
    │   │   └── staging.py
    │   └── utils
    │       ├── datetime.py
    │       ├── extended_enum.py
    │       ├── filename_generator.py
    │       ├── passwords.py
    │       ├── query_utils.py
    │       └── redis.py
    ├── mcp_server.py
    ├── resources
    │   ├── __init__.py
    │   └── coinmarketcap_resource.py
    ├── server.py
    ├── services
    │   ├── __init__.py
    │   └── coinmarketcap_service.py
    └── tools
        ├── __init__.py
        └── prices.py

发展

向MCP服务器添加新工具

要向MCP服务器添加新工具,请执行以下步骤:

  1. 在中定义函数 src/__init__.py 文件
  2. 在中注册该工具 main() 函数
  3. 使用文档字符串记录该工具

例子:

@server.add_tool
def my_new_tool(parameter1: str, parameter2: int) -> str:
    """
    Description of what the tool does.
    
    Args:
        parameter1: Description of parameter 1
        parameter2: Description of parameter 2
        
    Returns:
        Description of what is returned
    """
    # Tool implementation
    return result