使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM 应用提供金融市场数据的访问能力和金融计算工具。通过此服务器,LLM 可以获取实时的股票价格、加密货币价格、外汇汇率以及进行复利计算,从而增强 LLM 在金融领域的应用能力。

主要功能点

  • 股票价格查询: 获取指定股票代码的实时价格、涨跌幅和成交量等信息。数据来源于 Alpha Vantage API。
  • 加密货币价格查询: 获取指定加密货币代码的实时价格、24小时价格变动和交易量等信息。数据来源于 CoinGecko API。
  • 外汇汇率查询: 获取指定货币对的实时汇率。数据来源于 Exchange Rate API。
  • 复利计算: 根据本金、利率、时间和复利频率计算复利终值和利息收入。
  • 金融新闻: 获取指定类别的最新金融新闻。数据来源于 GNews API。

安装步骤

  1. 克隆仓库: 将 GitHub 仓库 'https://github.com/Prayag2003/mcp-sample-financial-tool' 克隆到本地。
  2. 安装依赖: 在项目根目录下,使用 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' (标准输入输出)。

基本使用方法

  1. 启动服务器: 在项目根目录下运行 'npm run dev' 命令启动 MCP 服务器。

  2. 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 响应。

信息

分类

商业系统