金融分析工具

一个结合MCP服务器和LLM技术的金融分析工具,用于解释损益和审计风险暴露。

  • by marcusjhang
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 marcusjhang/mcp_server

使用说明

📘 BookOps MCP+LLM项目

此存储库演示了以下内容的快速设置:

  1. MCP服务器 使用FastMCP和stdout/stdin传输。
  2. LLM驱动的业务逻辑 在MCP工具功能内。
  3. 代理 它处理用户输入并编排LLM函数调用+MCP工具调用。

📁 文件结构

/ ├── agent.py#LLM代理,通过子进程处理查询和调用MCP ├── server.py#FastMCP服务器定义工具explain_pnl和audit_exposure ├── dummy_data/ │ ├── trades.sv#包含book_id、日期、符号、数量、边、价格 │ └── positions.csv#包含book_id、符号、扇区、数量 └── README.md#本文档


🛠️ 需求

  • Python 3.10+(推荐版本:3.12)
  • 安装依赖项:
  pip install fastmcp openai pandas python-dotenv
•	Ensure your .env includes:

OPENAI_API_KEY=sk-xxx

⸻

🚀 运行系统(STDIO模式)

  1. 启动MCP服务器(在一个终端中)

python服务器.py

这将等待通过stdin/stdout的客户端调用。

  1. 运行代理(在另一个终端中)

python代理.py

  1. 交互示例:

解释2024-06-01 HF123书的PnL LLM选择了explain_pnl… {“book_id”:“HF123”,“date”:“…”,“pnl”:-72500.0,“summary”:“..”}

  1. 或者问:

HF123的主要暴露是什么? LLM选择了audit_exposure… {“book_id”:“HF123”,“top_exposures”:[…],“summary”:“…”}

⸻

🔄 原理 1.代理使用LLM函数调用从FUNCTIONS中选择工具和参数。 2.代理启动服务器子进程并发送MCP stdio JSON-RPC: •初始化 •通知/初始化 •工具/电话 3.服务器处理请求: •执行商业Python并进行内部LLM调用。 4.服务器返回JSON响应。 5.代理捕获并显示它。


🚧 下一步和未来的改进

  1. 展开工具集
    添加更多BookOps分析工具,如历史PnL比较、VaR(风险价值)计算或交易异常检测。

  2. 添加会话内存和上下文
    为代理实现轻量级会话内存,以跟踪过去的查询(例如,记住上次询问的书/日期,或支持后续问题)。

  3. 切换到持久HTTP部署
    从每次查询启动MCP服务器(STDIO模式)转向基于HTTP的持久部署(通过Flask、FastAPI或fastmcp-HTTP代理)。