项目简介
该项目是一个基于 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 认证配置和能力声明。
安装步骤
- 克隆仓库:
git clone https://github.com/Marktechpost/AI-Tutorial-Codes-Included.git - 进入项目目录:
cd AI-Tutorial-Codes-Included/OAuth 2.1 for MCP Servers - 安装依赖:
创建并激活一个虚拟环境(推荐),然后安装所需的 Python 包:
python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows pip install fastapi uvicorn httpx scalekit python-dotenv mcp - 获取 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'。
- 创建 '.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" - 运行服务器:
在 'OAuth 2.1 for MCP Servers' 目录下执行以下命令启动 MCP 服务器:
服务器将默认在 'http://localhost:10000' 监听。python server.py
服务器配置 (供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。
基本使用方法
- 启动服务器: 确保您已按照上述安装步骤成功运行 'python server.py',并且服务器正在 'http://localhost:10000' 监听。
- MCP 客户端连接: 您的 MCP 客户端(例如 LLM 代理或自定义应用)将通过上述配置信息连接到 MCP 服务器。
- 调用工具: 客户端通过 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
- 请求示例 (JSON-RPC):
- 接收响应: 服务器将处理请求,调用 Alpha Vantage API 获取数据,并返回包含新闻摘要的 JSON-RPC 响应。
信息
分类
AI与计算