使用说明
📘 BookOps MCP+LLM项目
此存储库演示了以下内容的快速设置:
- MCP服务器 使用FastMCP和stdout/stdin传输。
- LLM驱动的业务逻辑 在MCP工具功能内。
- 代理 它处理用户输入并编排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模式)
- 启动MCP服务器(在一个终端中)
python服务器.py
这将等待通过stdin/stdout的客户端调用。
- 运行代理(在另一个终端中)
python代理.py
- 交互示例:
解释2024-06-01 HF123书的PnL LLM选择了explain_pnl… {“book_id”:“HF123”,“date”:“…”,“pnl”:-72500.0,“summary”:“..”}
- 或者问:
HF123的主要暴露是什么? LLM选择了audit_exposure… {“book_id”:“HF123”,“top_exposures”:[…],“summary”:“…”}
⸻
🔄 原理 1.代理使用LLM函数调用从FUNCTIONS中选择工具和参数。 2.代理启动服务器子进程并发送MCP stdio JSON-RPC: •初始化 •通知/初始化 •工具/电话 3.服务器处理请求: •执行商业Python并进行内部LLM调用。 4.服务器返回JSON响应。 5.代理捕获并显示它。
🚧 下一步和未来的改进
-
展开工具集
添加更多BookOps分析工具,如历史PnL比较、VaR(风险价值)计算或交易异常检测。 -
添加会话内存和上下文
为代理实现轻量级会话内存,以跟踪过去的查询(例如,记住上次询问的书/日期,或支持后续问题)。 -
切换到持久HTTP部署
从每次查询启动MCP服务器(STDIO模式)转向基于HTTP的持久部署(通过Flask、FastAPI或fastmcp-HTTP代理)。
