项目简介

该项目是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型(LLM)客户端提供实时的金融新闻情感分析功能。通过标准化的 MCP 协议,LLM 可以调用其内部工具来获取特定股票代码(如 MSFT、AAPL)的最新新闻及其情感摘要。此外,该服务还集成了 OAuth 2.1 认证机制,确保了数据访问的安全性和合规性。

主要功能点

  • 股票新闻情感分析: 提供一个“get_news_sentiment”工具,接收股票代码作为输入,返回该股票的最新三条新闻的标题、摘要、来源和发布时间。此功能通过调用 Alpha Vantage API 实现。
  • MCP 工具注册: 将金融新闻查询功能注册为标准的 MCP 工具,允许 LLM 客户端通过 JSON-RPC 协议远程调用。
  • OAuth 2.1 安全认证: 支持使用 Bearer Token 进行客户端认证,确保只有经过授权的 LLM 客户端才能访问服务提供的工具和数据。
  • 标准 MCP 元数据发现: 提供 '/.well-known/oauth-protected-resource/mcp' 端点,允许 MCP 客户端自动发现服务的 OAuth 认证配置和能力声明。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Marktechpost/AI-Tutorial-Codes-Included.git
  2. 进入项目目录:
    cd AI-Tutorial-Codes-Included/OAuth 2.1 for MCP Servers
  3. 安装依赖: 创建并激活一个虚拟环境(推荐),然后安装所需的 Python 包:
    python -m venv venv
    source venv/bin/activate # macOS/Linux
    # venv\Scripts\activate # Windows
    pip install fastapi uvicorn httpx scalekit python-dotenv mcp
  4. 获取 API Keys:
    • Alpha Vantage API Key: 注册 Alpha Vantage 账户 以获取 'ALPHA_VANTAGE_API_KEY'。此密钥用于获取金融新闻数据。
    • ScaleKit API Keys (可选): 如果您计划启用 OAuth 2.1 认证,需要注册 ScaleKit 账户,并获取以下配置项: 'SCALEKIT_ENVIRONMENT_URL', 'SCALEKIT_CLIENT_ID', 'SCALEKIT_CLIENT_SECRET', 'SCALEKIT_RESOURCE_METADATA_URL', 'SCALEKIT_AUTHORIZATION_SERVERS', 'SCALEKIT_AUDIENCE_NAME', 'SCALEKIT_RESOURCE_NAME', 'SCALEKIT_RESOURCE_DOCS_URL'。
  5. 创建 '.env' 文件: 在 'OAuth 2.1 for MCP Servers' 目录下创建 '.env' 文件,并按以下格式填入您获取的 API Key 和配置信息:
    ALPHA_VANTAGE_API_KEY="您的AlphaVantageAPI密钥"
    
    # 以下ScaleKit配置为可选,如果您不使用OAuth认证,可以不填写或注释掉
    SCALEKIT_ENVIRONMENT_URL="您的ScaleKit环境URL"
    SCALEKIT_CLIENT_ID="您的ScaleKit客户端ID"
    SCALEKIT_CLIENT_SECRET="您的ScaleKit客户端密钥"
    SCALEKIT_RESOURCE_METADATA_URL="您的ScaleKit资源元数据URL"
    SCALEKIT_AUTHORIZATION_SERVERS="您的ScaleKit授权服务器URL"
    SCALEKIT_AUDIENCE_NAME="您的ScaleKit受众名称"
    SCALEKIT_RESOURCE_NAME="您的ScaleKit资源名称"
    SCALEKIT_RESOURCE_DOCS_URL="您的ScaleKit资源文档URL"
  6. 运行服务器: 在 'OAuth 2.1 for MCP Servers' 目录下执行以下命令启动 MCP 服务器:
    python server.py
    服务器将默认在 'http://localhost:10000' 监听。

服务器配置 (供MCP客户端使用)

MCP 客户端(例如 LLM 代理或集成开发环境)需要以下 JSON 格式的配置信息才能与 MCP 服务器建立连接并利用其功能。请根据您的实际部署环境调整 'host' 和 'port'。

{
  "server_name": "金融新闻MCP服务",
  "command": "python",
  "args": ["server.py"],
  "working_directory": "OAuth 2.1 for MCP Servers",
  "host": "localhost",
  "port": 10000,
  "description": "一个提供股票新闻情感分析功能的MCP服务。客户端可以通过调用'get_news_sentiment'工具并传入股票代码来获取最新的金融新闻摘要。支持OAuth 2.1认证。",
  "tools": [
    {
      "name": "get_news_sentiment",
      "description": "获取股票代码的最新新闻情感数据。",
      "parameters": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "description": "股票代码,例如 'MSFT' 或 'AAPL'。"
          }
        },
        "required": ["ticker"]
      }
    }
  ],
  "capabilities_endpoint": "/.well-known/oauth-protected-resource/mcp"
}
  • 'server_name': 服务的显示名称。
  • 'command': 启动服务器的命令,这里是 Python 解释器。
  • 'args': 传递给 'command' 的参数,指定要运行的服务器脚本。
  • 'working_directory': 启动服务器时的工作目录,确保服务器能够找到其依赖文件和 'server.py'。
  • 'host': MCP 服务器监听的 IP 地址。
  • 'port': MCP 服务器监听的端口号。
  • 'description': 服务的详细说明,帮助客户端理解其用途。
  • 'tools': 服务提供的 MCP 工具列表。每个工具包含:
    • 'name': 工具的唯一名称,客户端将通过此名称调用。
    • 'description': 工具功能的简要说明。
    • 'parameters': 工具接受的参数定义,遵循 JSON Schema 格式。
  • 'capabilities_endpoint': MCP 客户端用于发现 OAuth 认证元数据的端点 URL。

基本使用方法

  1. 启动服务器: 确保您已按照上述安装步骤成功运行 'python server.py',并且服务器正在 'http://localhost:10000' 监听。
  2. MCP 客户端连接: 您的 MCP 客户端(例如 LLM 代理或自定义应用)将通过上述配置信息连接到 MCP 服务器。
  3. 调用工具: 客户端通过 JSON-RPC 协议向 MCP 服务器发送请求,以调用 'get_news_sentiment' 工具。
    • 请求示例 (JSON-RPC):
      {
        "jsonrpc": "2.0",
        "method": "tool.get_news_sentiment",
        "params": {
          "ticker": "GOOG"
        },
        "id": 1
      }
    • 带认证的请求: 如果启用了 OAuth 2.1 认证,客户端需要在 HTTP 请求头中包含有效的 Bearer Token:
      Authorization: Bearer YOUR_ACCESS_TOKEN
  4. 接收响应: 服务器将处理请求,调用 Alpha Vantage API 获取数据,并返回包含新闻摘要的 JSON-RPC 响应。

信息

分类

AI与计算