金融数据服务工具

一个基于FastAPI的金融数据服务工具,提供股票、加密货币、外汇等市场数据的获取和投资组合价值计算功能。

  • by deepaktewari2000
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 deepaktewari2000/Finance-MCP-Server

使用说明

金融与市场MCP服务器(Python)

脚手架 金融与市场 MCP服务器在 python 使用FastAPI。 该项目公开了LLM可以调用的模块化“工具”,以获取市场数据、加密货币价格、, 汇率、历史价格和计算投资组合价值。

功能包括

  • 具有API-key身份验证的基于FastAPI的MCP服务器
  • 动态工具加载 src/tools/
  • 工具包括:
    • stock.quote --最新股票报价(使用 yfinance)
    • stock.history --自动收报机的历史OHLCV数据
    • crypto.price -当前加密货币价格(CoinGecko公共API)
    • forex.rate -透过汇率计算的汇率。邮政公众API
    • portfolio.value --根据持有量计算投资组合市场价值
  • 调用MCP服务器的示例客户端
  • run.sh 在本地启动服务器

快速入门

  1. 创建virtualenv并安装:
    python -m venv .venv
    source .venv/bin/activate   # or .\.venv\Scripts\activate on Windows
    pip install -r requirements.txt
    
  2. 启动服务器:
    export MCP_API_KEY=secret123
    ./run.sh
    ./run.bat
    
  3. 示例:
    python example_client.py --api-key secret123 --tool list_tools
    python example_client.py --api-key secret123 --tool stock.quote --args '{"ticker":"AAPL"}'
    python example_client.py --api-key secret123 --tool crypto.price --args '{"id":"bitcoin"}'
    

测试

运行测试

启动服务器后,您可以使用示例客户端测试所有工具:

# 1. Health check (Windows - use .venv\Scripts\python.exe, Linux/Mac - use .venv/bin/python)
.venv\Scripts\python.exe -c "import requests; r = requests.get('http://localhost:8000/health'); print(r.status_code, r.json())"

# 2. List all available tools
python example_client.py --api-key secret123 --tool list_tools

# 3. Test stock quote
python example_client.py --api-key secret123 --tool stock.quote --args '{"ticker":"AAPL"}'

# 4. Test historical stock data
python example_client.py --api-key secret123 --tool stock.history --args '{"ticker":"MSFT","period":"5d"}'

# 5. Test crypto price
python example_client.py --api-key secret123 --tool crypto.price --args '{"id":"bitcoin"}'

# 6. Test forex rates
python example_client.py --api-key secret123 --tool forex.rate --args '{"base":"USD","symbols":"EUR"}'

# 7. Test portfolio value
python example_client.py --api-key secret123 --tool portfolio.value --args '{"holdings":[{"type":"stock","symbol":"AAPL","qty":10},{"type":"crypto","symbol":"bitcoin","qty":0.5}]}'

预期结果

所有命令都应返回状态 200 JSON响应包含:

  • 库存报价:当前价格、市值、每日高点/低点
  • 股票历史:指定时间段的OHLCV数据数组
  • 密码密码:当前价格、市值、24小时变化
  • 外汇汇率:货币之间的汇率
  • 投资组合价值:总投资组合价值,按持有量细分

注释和安全

  • yfinance 从雅虎金融(没有API密钥)获取数据,CoinGecko是公共的,exchangerate.host是一个免费的API公共费率。
  • 对于生产环境,添加速率限制、缓存,并限制允许使用哪些外部API。
  • 工具在用于查询之前应仔细验证输入。