使用说明

项目简介

本项目 'MCP-Server' 是一个基于 Model Context Protocol (MCP) 的轻量级服务器示例集合,旨在演示如何通过 MCP 协议向 LLM 客户端提供结构化的上下文信息和外部功能。它包含了天气服务和金融数据服务两个主要模块,以及一个天气演示服务,展示了 MCP 服务器的核心功能:资源管理工具注册与执行 以及 Prompt 模板定义

主要功能点

  • 天气服务 (Weather Server):

    • 天气警报 (Weather Alerts): 获取美国特定州的天气警报信息。
    • 天气预报 (Weather Forecast): 获取指定地点的详细天气预报。
    • Freshdesk 工单创建 (Freshdesk Integration): 在 Freshdesk 客户服务平台中创建支持工单。
  • 金融模块 (Finance Module):

    • 盘中市场数据 (Intraday Market Data): 使用 AlphaVantage API 获取股票市场盘中数据。
    • 技术分析 (Technical Analysis):
      • 计算移动平均线 (Moving Averages):支持短期和长期移动平均线计算。
      • 计算相对强弱指数 (RSI):评估股票买卖超卖情况。
    • 交易建议 (Trade Recommendations): 基于技术指标生成综合交易建议。
  • Prompt 模板 (Prompts): 金融模块预置了股票分析和比较、构建日内交易策略等 Prompt 模板,方便 LLM 客户端调用以进行更复杂的分析任务。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/akramsheriff5/MCP-Server.git
    cd MCP-Server
  2. 设置 Python 虚拟环境:

    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装通用依赖:

    pip install -r requirements.txt
  4. 安装金融模块依赖 (如果需要使用金融服务):

    cd finance
    pip install -r requirements.txt
    cd .. # 返回项目根目录
  5. 配置 Freshdesk API 密钥 (可选): 如果需要使用 Freshdesk 工单创建工具,需要在项目根目录下创建 '.env' 文件,并添加 Freshdesk API 相关的环境变量。具体环境变量名称请参考 'main.py' 文件中 'os.getenv("FRESHDESK_API")' 和 'os.getenv('FRESHDESK_API_AUTH')' 的使用方式。注意:仓库中 'weather-demo.py' 文件硬编码了 Freshdesk API 密钥,正式环境请勿使用。

服务器配置

本仓库包含多个可独立运行的 MCP 服务器,以下是针对不同服务器的 MCP 客户端配置示例 (JSON 格式):

1. 天气服务器 (main.py):

{
    "server_name": "weather-server",
    "command": "python",
    "args": ["main.py"]
}

参数说明:

  • 'server_name': 服务器名称,客户端用于识别和调用。可以自定义,例如 "weather-service"。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 命令参数,指定运行 'main.py' 文件。

2. 金融服务器 (finance/finance_server.py):

{
    "server_name": "finance-server",
    "command": "python",
    "args": ["finance/finance_server.py"]
}

参数说明:

  • 'server_name': 服务器名称,例如 "stock-analyzer"。
  • 'command': 启动命令,'python' 解释器。
  • 'args': 命令参数,指定运行 'finance_server.py' 文件,注意路径。

3. 天气演示服务器 (weather-demo.py):

{
    "server_name": "weather-demo-server",
    "command": "python",
    "args": ["weather-demo.py"]
}

参数说明:

  • 'server_name': 服务器名称,例如 "simple-weather-demo"。
  • 'command': 启动命令,'python' 解释器。
  • 'args': 命令参数,指定运行 'weather-demo.py' 文件。

将以上 JSON 配置信息添加到您的 MCP 客户端配置中,客户端即可连接并使用相应的 MCP 服务器提供的功能。 请根据实际需要选择启动和配置相应的服务器。

基本使用方法

  1. 启动 MCP 服务器: 根据上述 "服务器配置" 部分,选择需要的功能模块,配置 MCP 客户端并启动对应的服务器 (例如,运行 'python main.py' 启动天气服务器)。

  2. MCP 客户端与服务器通信: MCP 客户端通过 JSON-RPC 协议与服务器进行通信。客户端可以发送请求调用服务器注册的工具 (Tools)、访问托管的资源 (Resources) 或请求渲染 Prompt 模板 (Prompts)。

  3. 调用工具 (Tools): 客户端可以请求服务器执行如 'get_alerts' (获取天气警报)、'calculate_moving_averages' (计算移动平均线) 或 'create_freshdesk_ticket' (创建 Freshdesk 工单) 等工具。调用工具时,客户端需要提供工具所需的参数。

  4. 访问资源 (Resources): 客户端可以访问服务器提供的资源,例如金融服务器提供的 'config://app' 资源,以获取配置信息。

  5. 使用 Prompt 模板 (Prompts): 客户端可以请求服务器渲染预定义的 Prompt 模板,例如 'analyze_ticker' (股票分析) 或 'compare_tickers' (股票比较),以生成用于 LLM 交互的 Prompt 内容。客户端可以根据需要传递参数给 Prompt 模板。

详细的 MCP 协议和客户端使用方法请参考 Model Context Protocol 的官方文档。 本示例仓库旨在帮助开发者快速理解和上手 MCP 服务器的开发和部署。

信息

分类

网页与API