MCP Python 快速上手指南
MCP Python 快速上手指南
1. MCP Excel/Python 结构概览

MCP Excel/Python,其核心模块包括核心构造函数(mcp.tool.tools_main)、参数定义(mcp.tool.args_def)以及服务器版本管理(mcp.server_version)等。
该框架支持多种金融工具的建模与分析,涵盖远期曲线、收益率曲线、债券曲线等曲线建模工具,以及外汇波动率、利率波动率等波动率曲面工具,同时提供债券和利率互换等金融产品对象的支持。
在数据访问方面,MCP既支持本地数据构造,也提供远程市场数据服务。
其显著特点包括灵活的多态参数输入、通过C++编译的高性能计算核心(mcp.pyd)以及标准化的金融枚举类型管理。开发者可以通过简洁的API快速构建金融模型,如本地创建收益率曲线或远程获取波动率曲面数据,适用于各类金融量化分析和衍生品定价场景。
2. 安装
只写 Python(推荐) — 不要 Excel、不要设 PYTHONPATH:
pip install mathema-mcpPyPI:mathema-mcp。Windows / Linux,64 位 CPython 3.9–3.13。装完即可 from mcp.tools import McpCalendar。表格类 API(FixedLegs / McpPayoff 等)再装 pip install "mathema-mcp[data]"。公开 wheel 不含 CUDA。
还要 Excel 时,再走压缩包:
- 安装 Python 环境(同上,64 位 CPython 3.9–3.13):Anaconda 或 python.org,参考 安装指南。
- 下载
mcp_excel压缩包,解压后运行install.bat(写pyxll.cfg、注册加载项)。 - 配置开发环境(不要设置用户 PYTHONPATH):
- pip 安装:任意工作目录即可。
- 压缩包安装:用目标 Python 打开解压根目录;
import mcp会按 ABI 加载lib/X64/_mcp.cp3xx-win_amd64.pyd。 - VSCode / PyCharm:选择上述 64 位解释器。仅支持 64 位,没有
lib/win32。
3. MCP Excel/Python 目录结构
mcp_excel/
├── lib/X64/ # 64 位核心:tagged pyd、pyxll.xll、CUDA 运行时
├── example/ # 示例代码
│ ├── calendar/ # 日历模块示例
│ ├── curve/ # 收益率曲线示例
│ └── ... # 其他示例
├── mcp/ # Python 核心模块
│ ├── tool/ # 工具类
│ │ ├── tools_main.py # 主要构造函数(YieldCurve, FXForwardPointsCurve等)
│ │ └── args_def.py # 参数定义(支持多态)
│ ├── mcp.py # 对象函数实现
│ └── utils/
│ └── enums.py # 枚举类型(DayCounter, Frequency等)
├── install.bat # 一键安装(写 pyxll.cfg、注册加载项)
└── test_install.py # 安装自检4. Python 核心模块说明
4.1 构造函数与参数
- 模块路径:
mcp.tool.tools_main和mcp.tool.args_def.py - 特点:支持多态参数输入(如字典或关键字参数)。
- 示例:
from mcp.tool.tools_main import McpYieldCurve # 通过字典构造 args = { "ReferenceDate": "2024-08-20", "Tenors": ["1M", "3M", "6M"], "Rates": [0.05, 0.055, 0.06], "DayCount": "Act365Fixed", ... ... } curve = McpYieldCurve(args) # 通过关键字参数构造 curve = McpYieldCurve( ReferenceDate="2024-08-20", Tenors=["1M", "3M", "6M"], Rates=[0.05, 0.055, 0.06], ... ... )
4.2 对象函数
- 模块路径:
mcp.mcp.py - 功能:提供对象方法(如利率计算、日期调整等)。
- 示例:
from mcp.mcp import McpFXVolSurface fxVol = McpFXVolSurface( ... ... ) # 获取波动率 vol = fxVol.GetVolatility(7.0, "2024-12-31")
4.3 枚举类型
- 模块路径:
mcp.utils.enums - 常用枚举:
from mcp.utils.enums import DayCounter, Frequency print(DayCounter.Act365Fixed) # 日算规则 print(Frequency.Annual) # 付息频率
5. 对象构造方式
5.1 本地构造
- 适用场景:需自行提供市场数据和参数。
- 步骤:
- 准备参数(参考
args_def.py中的定义)。 - 调用构造函数(如
McpYieldCurve)。
- 准备参数(参考
- 示例:
from mcp.tool.tools_main import McpFXForwardPointsCurve args = { "ReferenceDate": "2024-08-20", "FXSpotRate": 7.2, "ForwardPoints": [-50, -100, -150], "Tenors": ["1M", "2M", "3M"] } fwd_curve = McpFXForwardPointsCurve(args)
5.2 从 JSON 快照构造(LiveStore / RawMD)
- 适用场景:用本地
MCP_MARKET_DATA_YYYYMMDD.json得到曲线 / 曲面对象,无需手搓整条曲线。 - 入口:
MLiveMarketDataStore(单日快照)、MRawMarketManager(目录按日)、MMarketDataJsonReader(只读)。 - 示例:
from mcp.mcp import MLiveMarketDataStore store = MLiveMarketDataStore() store.loadSnapshot("data/market_data/MCP_MARKET_DATA_20260810.json") yc2 = store.getYieldCurve2("CNHDEPO_2") print(yc2.ZeroRate("2026/08/10", "MID"))
服务器端按简称拉取对象(函数名尾部带
s)已废弃。Excel 案例请下载 TC31–TC46 完整案例包。详见 Raw Market Data。
6. 快速验证
# 测试导入模块
from mcp.tool.tools_main import McpYieldCurve
from mcp.utils.enums import DayCounter
# 打印枚举值
print("日算规则:", DayCounter.Act365Fixed)
# 简单构造测试
test_curve = McpYieldCurve(
ReferenceDate="2024-08-20",
Tenors=["1M"],
Rates=[0.05]
)
print("测试曲线构建成功!")7. 运行附带的测试例子
在下面目录下找到附带的测试例子,在vscode中执行。
注:带有 xxxx_server.py 的旧测试依赖已废弃的服务器端函数,请改用
example/market_data/下的 LiveStore / RawMD 示例。
mcp_excel/
├── example/ # 示例代码
│ ├── calendar/ # 日历模块示例
│ ├── curve/ # 收益率曲线示例
│ └── ... # 其他示例
└── test_install.py8. 注意事项
- 市场数据:曲线 / 曲面请用本地 JSON 快照(LiveStore / RawMD),不要再调用已废弃的服务器端构造函数。
- 路径问题:不要设置用户 PYTHONPATH。在解压根目录运行,或保证
sys.path含该目录。 - 版本兼容:64 位 CPython 3.9–3.13;
import mcp必须能找到对应的_mcp.cp3xx-win_amd64.pyd。
通过本指南,您可快速完成环境搭建并开始使用MCP Python进行金融计算!
