公司财务MCP-Rust/TypeScript堆栈
一个高精度的公司财务MCP(模型上下文协议)服务器,用Rust构建用于计算,用TypeScript构建用于接口层。
建筑
┌─────────────────────────────────────────────────────────┐
│ MCP Client (Claude) │
└────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ TypeScript MCP Server │
│ (@modelcontextprotocol/sdk) │
└────────────────────┬────────────────────────────────────┘
│
▼ Zod Validation
┌─────────────────────────────────────────────────────────┐
│ napi-rs Bindings │
│ (packages/bindings/) │
└────────────────────┬────────────────────────────────────┘
│
▼ JSON Serialization
┌─────────────────────────────────────────────────────────┐
│ Rust Core Calculations │
│ (crates/corp-finance-core/) │
│ Using rust_decimal │
└─────────────────────────────────────────────────────────┘结构
corp-finance-mcp/
├── crates/
│ └── corp-finance-core/ # Rust calculations (rust_decimal for precision)
│ ├── src/
│ │ ├── wacc.rs # WACC calculator
│ │ ├── credit_metrics.rs # Credit analysis
│ │ ├── dcf.rs # DCF model
│ │ ├── debt_capacity.rs # Debt capacity analysis
│ │ ├── covenant.rs # Covenant compliance
│ │ ├── fundamentals/ # Phase 2: Fundamentals
│ │ │ ├── three_statement_model.rs
│ │ │ ├── equity_enterprise_bridge.rs
│ │ │ ├── diluted_shares.rs
│ │ │ └── accounting_flows.rs
│ │ └── valuation/ # Phase 2: Valuation
│ │ ├── football_field.rs
│ │ └── paper_lbo.rs
│ └── Cargo.toml
├── packages/
│ ├── bindings/ # napi-rs to expose Rust to Node
│ │ ├── src/lib.rs
│ │ └── Cargo.toml
│ └── mcp-server/ # TypeScript MCP server
│ ├── src/
│ │ ├── index.ts # MCP server entry point
│ │ ├── tools.ts # Tool handlers
│ │ └── schemas.ts # Zod validation schemas
│ └── package.json
├── Cargo.toml # Workspace root
└── package.json # npm workspace root第一阶段工具(估值和分析)
- wacc_calculator -计算加权平均资本成本
- 信用信息 -分析信用指标(杠杆率、覆盖率)
- dcf模型 -贴现现金流估值
- 债务容量 -根据息税折旧摊销前利润倍数计算债务能力
- 契约_遵守 -检查债务契约合规性
第二阶段工具(基础和高级估值)
基础
- 三阶段模型 -建立关联的损益表、资产负债表和现金流预测
- 股权_企业_桥梁 -用桥梁项目转换股权价值和企业价值
- 稀释股份 -使用库存股法计算完全稀释的股份(期权、RSU、可转换债券)
- 会计流量 -分析所有三个财务报表中的交易影响(“引导我完成”问题)
估值
- 足球场 -创建跨DCF、Comps和Precedents的估值范围摘要
- paper_lbo -快速心算LBO分析与IRR计算
数据流
MCP Request → Zod Validation → napi Binding → Rust Calculation → JSON → MCP Response关键依赖关系
锈
rust_decimal-高精度十进制算术serde-序列化/反序列化thiserror-错误处理
绑定
napi-rs-Rust-Node.js绑定
TypeScript
@modelcontextprotocol/sdk-MCP协议实现zod-运行时类型验证
原则
Rust拥有所有的数学,TypeScript拥有接口。
所有财务计算都是在Rust中使用 rust_decimal 为了精确。TypeScript层使用Zod验证输入,并通过MCP公开工具。
安装
# Install dependencies
npm install
# Build everything (Rust → Bindings → TypeScript)
npm run build发展
# Run tests
npm test
# Watch mode for TypeScript
npm run dev用法
MCP服务器在stdio上运行,可以与任何MCP客户端一起使用:
node packages/mcp-server/dist/index.js示例工具调用(WACC)
{
"equity_value": "700000",
"debt_value": "300000",
"cost_of_equity": "12.5",
"cost_of_debt": "6.0",
"tax_rate": "25.0"
}答复:
{
"wacc": "10.1",
"equity_weight": "0.7",
"debt_weight": "0.3",
"after_tax_cost_of_debt": "4.5"
}从源头构建
先决条件
- 锈蚀1.70+
- Node.js 18+
- npm或pnpm
构建步骤
# 1. Build Rust core
cargo build --release
# 2. Build napi bindings
cd packages/bindings
npm run build
cd ../..
# 3. Build TypeScript server
cd packages/mcp-server
npm run build
cd ../..或者使用workspace命令:
npm run build许可证
麻省理工学院
