MCP Python 快速上手指南
大约 4 分钟
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. 下载并安装 MCP Excel/Python
步骤:
- 安装 Python 环境(推荐 Python 3.9.12/3.9.13):
- 通过 Anaconda 或便携版 Python 安装(参考 安装指南)。
- 下载
mcp_excel
:- 解压
mcp_excel_xxx.zip
到本地目录(如C:\mcp_excel
)。
- 解压
- 配置开发环境:
- VSCode:确保
PYTHONPATH
包含lib/X64
(64位系统)或lib/win32
(32位系统)。 - PyCharm:在项目设置中添加
lib/X64
和项目根目录到解释器路径。
- VSCode:确保
3. MCP Excel/Python 目录结构
mcp_excel/
├── lib/ # 核心库文件
│ ├── X64/ # 64位系统依赖(DLL等)
│ └── win32/ # 32位系统依赖
├── example/ # 示例代码
│ ├── calendar/ # 日历模块示例
│ ├── curve/ # 收益率曲线示例
│ └── ... # 其他示例
├── mcp/ # Python 核心模块
│ ├── tool/ # 工具类
│ │ ├── tools_main.py # 主要构造函数(YieldCurve, FXForwardPointsCurve等)
│ │ └── args_def.py # 参数定义(支持多态)
│ ├── mcp.py # 对象函数实现
│ └── utils/
│ └── enums.py # 枚举类型(DayCounter, Frequency等)
└── .vscode/ # VSCode 配置(含 PYTHONPATH 预设)
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 服务器端构造
- 适用场景:快速获取预置数据(需联网)。
- 特点:通过短名称(ShortName)直接构建,无需输入完整参数。
服务器端函数构造,支持:- 收益率曲线,如:
- CNYFR007SnapSwapCurve, 人民币FR007实时互换曲线
- 外汇远期曲线,如:
- USDCNYFwdRevCurve: 美元对在岸人民币远期曲线(日终数据)。
- USDCNYFwdSnapCurve: 美元对在岸人民币远期曲线(实时数据)。
- 外汇波动率曲面,如:
- USDCNYRSnapVolSurface: 美元对在岸人民币(实时波动率曲面)。
- 利率互换对象,如:
- FR007-1M、FR007-3M、SHIBOR3M_1Y等
- 债券对象,如:
- 200215.IB, 220023.IB等
- 利率上下限曲面
- 利率波动率立方体
- 本地波动率(LocalVol/Dupire/Heston,多个资产,包括:利率、汇率和商品)
- 收益率曲线,如:
这样做的好处在于避免复杂的构造程序,确保构造的一致性、并可以辅助对生产环境的验证和测试。
- 示例:
from mcp.tool.tools_main import McpYieldCurve # 从服务器加载预定义的收益率曲线 curve = McpYieldCurves("CNY_IRS_CURVE")
注意:通常服务器端构造函数,在函数尾部有“s”
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的测试程序,是需要在互联网环境下可以运行,并可以访问到https://fxo.mathema.com.cn
mcp_excel/
├── example/ # 示例代码
│ ├── calendar/ # 日历模块示例
│ ├── curve/ # 收益率曲线示例
│ └── ... # 其他示例
└── .vscode/ # VSCode 配置(含 PYTHONPATH 预设)
8. 注意事项
- 网络依赖:如果需要服务器端构造对象支持,则需保证网络通畅(可访问MCP服务器https://fxo.mathema.com.cn)。
- 路径问题:确保
PYTHONPATH
包含lib/X64
或lib/win32
。 - 版本兼容:Python 3.9.x 推荐,其他版本可能需调整。
通过本指南,您可快速完成环境搭建并开始使用MCP Python进行金融计算!