使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM 应用提供金融市场数据的访问能力和金融计算工具。通过此服务器,LLM 可以获取实时的股票价格、加密货币价格、外汇汇率以及进行复利计算,从而增强 LLM 在金融领域的应用能力。
主要功能点
- 股票价格查询: 获取指定股票代码的实时价格、涨跌幅和成交量等信息。数据来源于 Alpha Vantage API。
- 加密货币价格查询: 获取指定加密货币代码的实时价格、24小时价格变动和交易量等信息。数据来源于 CoinGecko API。
- 外汇汇率查询: 获取指定货币对的实时汇率。数据来源于 Exchange Rate API。
- 复利计算: 根据本金、利率、时间和复利频率计算复利终值和利息收入。
- 金融新闻: 获取指定类别的最新金融新闻。数据来源于 GNews API。
安装步骤
- 克隆仓库: 将 GitHub 仓库 'https://github.com/Prayag2003/mcp-sample-financial-tool' 克隆到本地。
- 安装依赖: 在项目根目录下,使用 npm 或 pnpm 安装项目依赖。
npm install # 或 pnpm install
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到此 MCP 服务器。
{ "serverName": "Financial Data Provider", // MCP 服务器名称,来自 index.js 中的 server.name 属性 "command": "npm", // 启动服务器的命令,这里使用 npm "args": ["run", "dev"], // 启动服务器命令的参数,运行 package.json 中定义的 dev 脚本 "transport": "stdio" // 使用 Stdio 作为传输协议 }
配置说明:
- '"serverName"': MCP 服务器的名称,用于标识服务器。
- '"command"': 启动服务器的可执行命令,通常是 Node.js 环境下的 'npm' 或 'node'。
- '"args"': 传递给启动命令的参数,根据 'package.json' 中的 'scripts' 配置,'npm run dev' 启动开发服务器。
- '"transport"': MCP 服务器使用的传输协议,本项目使用 'stdio' (标准输入输出)。
基本使用方法
-
启动服务器: 在项目根目录下运行 'npm run dev' 命令启动 MCP 服务器。
-
MCP 客户端请求: 配置好 MCP 客户端后,客户端可以向服务器发送 JSON-RPC 请求,调用以下工具 (Tools) 获取金融数据或进行计算:
-
getStockPrice: 获取股票价格。
{ "tool_call_id": "tool_call_1", "tool_name": "getStockPrice", "tool_arguments": { "ticker": "AAPL" // 股票代码,例如 苹果公司 (AAPL) } } -
getCryptoPrice: 获取加密货币价格。
{ "tool_call_id": "tool_call_2", "tool_name": "getCryptoPrice", "tool_arguments": { "symbol": "BTC" // 加密货币代码,例如 比特币 (BTC) } } -
getForexRate: 获取外汇汇率。
{ "tool_call_id": "tool_call_3", "tool_name": "getForexRate", "tool_arguments": { "pair": "EUR/USD" // 货币对,例如 欧元/美元 (EUR/USD) } } -
calculateCompoundInterest: 计算复利。
{ "tool_call_id": "tool_call_4", "tool_name": "calculateCompoundInterest", "tool_arguments": { "principal": 10000, // 本金 "rate": 5, // 年利率 (%) "time": 3, // 投资年限 "compoundFrequency": 12 // 复利频率 (每年复利次数,例如 12 代表每月复利一次) } } -
getFinancialNews: 获取金融新闻。
{ "tool_call_id": "tool_call_5", "tool_name": "getFinancialNews", "tool_arguments": { "category": "stocks" // 新闻类别,例如 "stocks" (股票), "crypto" (加密货币), "forex" (外汇), "economy" (经济), "general" (通用金融) } }
客户端发送以上 JSON-RPC 请求后,服务器会返回包含金融数据的 JSON-RPC 响应。
-
信息
分类
商业系统