金融计算服务器

一个基于Rust开发的金融计算服务器,提供八种复杂的金融计算功能,适用于商业智能和战略决策场景。

  • by alpha-hack-program
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 alpha-hack-program/finance-engine-mcp-rs

使用说明

金融引擎MCP服务器

高级模型上下文协议(MCP)服务器,为商业智能和战略决策提供八种复杂的财务计算功能

一个用Rust开发的生产就绪模型上下文协议(MCP)服务器,提供八个强类型的财务计算函数。该项目演示了如何构建具有复杂多步计算的企业级MCP服务器,用于财务分析和商业智能。

为什么选择此金融引擎MCP服务器?

企业需要遵守要求安全、内部数据处理的法规,同时利用人工智能功能。小型语言模型虽然功能强大,但有时在监管环境中难以处理复杂的、多步骤的财务逻辑,这些逻辑需要高可靠性。

此金融引擎提供:

  • 明确、可验证的计算:所有财务逻辑都是透明和可审计的
  • 多步分析:结合多个财务维度的复杂计算
  • 企业就绪:强大的打字、全面的验证和错误处理
  • AI友好:结构化的回答非常适合法学硕士的消费和解释

⚠️ 免责声明

该服务器提供八种计算功能,展示了商业智能应用程序中常用的复杂财务分析模式。所有计算都是明确和透明的。

这只是一个演示/示例项目。 这里实现的计算和逻辑用于教育和演示目的。该软件:

  • 不应用于实际的财务或商业决策
  • 不代表真正的财务建议或计算
  • 不隶属于任何官方金融实体
  • 作为MCP服务器实现的技术示例

对于真正的财务分析或商业决策,请咨询适当的专业服务。

介绍

金融引擎MCP服务器通过模型上下文协议为AI代理提供复杂的财务指标计算能力。它为企业级财务分析实现了八个关键的商业智能功能:

  • 关键业务指标 -公司健康评分、收入质量评估和集中度风险分析
  • 运营指标 -运营杠杆和可扩展性评估
  • 组合分析 -收入加权动量、多元化和有机增长分析
  • 矢量存储集成 -从OpenAI矢量存储中检索财务指标

🎯 特性

  • 8财务计算功能:全面的商业智能指标
  • 矢量存储集成:使用OpenAI的向量存储API查询财务指标
  • 显式多步逻辑:所有计算都是透明和可核查的
  • 稳健的输入验证:JSON模式验证和详细的错误处理
  • 多种传输协议:STDIO和流式HTTP
  • 容器化:生产就绪的Podman/Docker设置
  • Claude桌面集成:MCPB封装实现无缝集成
  • 专业指标:普罗米修斯监控指标
  • CI/CD管道:全面的GitHub操作工作流程

📚 快速参考

任务 命令 描述
🧪 测试 make test 运行所有测试
🧪 测试MCP make test-mcp 使用流式HTTP传输运行MCP服务器
🚀 发布 make release-patch 创建新的补丁版本
📦 包裹 make pack 创建Claude桌面包
🐳 容器 make image-build 构建容器映像
ℹ️ 帮助 make help 显示所有命令

📋 可用功能

关键业务指标

功能 说明 按键输出
计算_公司_健康_核心 0-100健康综合评分(5个维度) 总分、风险水平、成分细分
计算结果质量分数 收入可持续性分析 质量分数(0.0-1.0)、字母等级、建议
计算高度和多样性 收入集中度风险评估(HHI) HHI指数、多元化得分、风险水平

运营指标

功能 说明 按键输出
计算操作平均值 收入与成本增长的可扩展性 运营杠杆率、利润率扩张、效率评级

组合分析

功能 说明 按键输出
计算投资组合时刻 收入加权投资组合增长 投资组合势头%,部门贡献,最大贡献者
计算最小效率 收入集中风险(基尼系数) 基尼系数、多元化得分、集中度
计算有机生长 同比有机增长(不包括并购) 有机增长率、绝对增长、增长评级

矢量存储集成

功能 说明 按键输出
get_metrics_from_vector_store 从OpenAI向量存储中检索财务指标 包含内容、分数和元数据的匹配块数组

备注:这些函数实现了结合多个业务维度的复杂多步计算。

📊 功能详情

功能1:计算_公司_健康_核心

目的: 通过仅使用可直接提取的指标组合三个加权维度来计算公司的综合健康状况。

重量:

  • 收入增长:40%
  • SLA合规性:35%
  • 客户满意度:25%

例子:

{
  "revenue_growth": "0.09",
  "sla_compliance": "0.985",
  "customer_satisfaction": "89"
}

退货:

  • 整体健康评分(0-100)
  • 每个维度的组件得分
  • 加权贡献
  • 风险等级:低(≥80)、中(65-79)、高(50-64)或临界(<50)
  • 人类可读的解释

例子:

{
  "revenue_growth": 0.09,
  "sla_compliance": 0.985,
  "modern_revenue_pct": 0.377,
  "customer_satisfaction": 89,
  "pipeline_coverage": 0.849
}

退货:

  • 总得分(0-100)
  • 组件得分
  • 加权贡献
  • 风险等级:低(80+)、中(65-79)、高(50-64)、严重(<50)
  • 诠释

函数2:计算结果质量分数

目的: 通过将收入分为高增长、稳定和下降三个部分来评估收入质量。

质量权重:

  • 高增长(年环比>15%):1.0
  • 稳定(同比0-15%):0.7
  • 下降(同比<0%):0.0

例子:

{
  "high_growth_revenue": 15.0,
  "stable_revenue": 25.0,
  "declining_revenue": 10.0,
  "total_revenue": 50.0
}

退货:

  • 质量分数(0.0-1.0)
  • 分销细分
  • 字母等级(A-F)
  • 战略建议
  • 目标差距(0.75基准)

功能3:计算高度和多样性

目的: 计算收入集中风险的赫芬达尔-赫希曼指数。

HHI公式: 市场份额平方和

风险阈值:

  • 低:HHI<0.15
  • 介质:HHI 0.15-0.25
  • 高:HHI>0.25

例子:

{
  "revenues": [15.0, 25.0, 5.0, 8.0]
}

退货:

  • HHI值
  • 多样化得分(1-HHI)
  • 有效段数(1/HHI)
  • 风险分类
  • 市场份额
  • 浓度警告

功能4:计算_操作_平均值

目的: 衡量收入增长和成本增长之间的关系,以评估运营可扩展性。

公式: 经营杠杆=收入增长率/成本增长率

效率等级:

  • 优秀:≥1.5
  • 良好:1.2-1.5
  • 足够:1.0-1.2
  • 差:<1.0

例子:

{
  "revenue_growth_rate": 0.09,
  "cost_growth_rate": 0.06
}

退货:

  • 营业杠杆比率
  • 收入/成本增长百分比
  • 利润率扩大(基点)
  • 效率等级
  • 诠释

功能5:计算_投资组合_时刻

目的: 计算各业务部门的收入加权增长率,以衡量整体投资组合的势头。

公式: ∑(部门收入/总收入×增长率)

动量评级:

  • 强劲:>10%
  • 中等:5%-10%
  • 弱:0%-5%
  • 下降:<0%

例子:

{
  "segments": {
    "subscription": {"revenue": 15.0, "growth_rate": 0.20},
    "enterprise": {"revenue": 25.0, "growth_rate": 0.14},
    "upsell": {"revenue": 5.0, "growth_rate": 0.19},
    "legacy": {"revenue": 8.0, "growth_rate": -0.20}
  }
}

退货:

  • 投资组合动量(小数和百分比)
  • 总收入
  • 按细分市场贡献
  • 主要贡献者
  • 动量评级

函数6:计算最小效率

目的: 使用基尼系数进行集中风险评估来衡量收入分配不平等。

公式: 基尼系数=(2×∑(i×收入i))/(n×∑(收入i)-(n+1)/n

浓度水平:

  • 低:基尼系数<0.25(多样化程度高)
  • 中等:基尼系数0.25-0.40(可接受)
  • 高:基尼系数>0.40(风险)

例子:

{
  "revenues": [15.0, 25.0, 5.0, 8.0]
}

退货:

  • 基尼系数(0-1)
  • 多样化得分(1-基尼系数)
  • 专注度
  • 最大/最小细分市场份额
  • 有效分段数
  • 分类收入

函数7:计算有机物生长

目的: 计算不包括收购、资产剥离和其他无机因素的同比有机收入增长。

公式: (当期收入-前期收入)/前期收入

增长评级:

  • 特殊:>15%
  • 强:10%-15%
  • 中等:5%-10%
  • 弱:0%-5%
  • 下降:<0%

例子:

{
  "revenue_prior": 48.7,
  "revenue_current": 53.0
}

退货:

  • 有机增长率(小数和百分比)
  • 美元绝对增长
  • 以前/当前收入值
  • 增长评级
  • 年复合年增长率

函数8:get_metrics_from_vector_store

目的: 通过基于目标财务计算函数自动生成适当的查询,从向量存储中智能检索财务指标。通过特定功能的查询模板支持所有7个计算功能。

所需的环境变量:

  • VECTOR_STORE_API_URL:包括矢量存储ID的完整端点URL(例如。, https://your-server.com/v1/openai/v1/vector_stores/vs_abc123/search)

参数:

  • function_name (字符串,必填):财务函数的名称(例如,“calculate_organic_growth”、“calculite_company_health_score”)
  • company_name (字符串,必填):用于查询指标的公司名称
  • max_num_results (number,可选):返回的最大结果数(默认值:10,范围:1-100)
  • score_threshold (数字,可选):结果的最小相似性得分(默认值:0.5,范围:0.0-1.0)
  • ranker (字符串,可选):要使用的排名算法(默认值:“默认”)
  • rewrite_query (boolean,可选):是否重写查询(默认值:false)

例子:

{
  "function_name": "calculate_organic_growth",
  "company_name": "Parasol",
  "max_num_results": 10,
  "score_threshold": 0.5
}

自动生成的查询: “Parasol公司的当前收入和上期收入是多少?”

支持的功能:

  • calculate_company_health_score → 查询:收入增长、SLA合规性、现代收入百分比、客户满意度、渠道覆盖率
  • calculate_revenue_quality_score → 查询:高增长、稳定、下降和总收入
  • calculate_hhi_and_diversification → 查询:按业务部门划分的收入
  • calculate_operating_leverage → 查询:收入和成本增长率
  • calculate_portfolio_momentum → 查询:部门收入和增长率
  • calculate_gini_coefficient → 查询:按部门划分的收入值
  • calculate_organic_growth → 查询:本期和上期收入

退货:

  • 匹配的度量块数组,每个块包含:
    • file_id:源文件标识符
    • filename:源文档名称
    • content:包含文本的内容项数组
    • score:相似性得分(0.0-1.0)
    • attributes:文档属性(令牌计数等)
  • 返回的块总数
  • 生成的查询字符串

使用案例:

  • 自动检索特定计算功能的指标
  • 跨不同公司生成一致的查询
  • 简化AI代理的度量收集
  • 与财务计算管道直接集成

错误处理:

  • 根据支持的函数验证函数名称
  • 验证max_num_results是否在1到100之间
  • 验证score_threshold是否在0.0和1.0之间
  • 返回缺少环境变量的描述性错误
  • 如果API调用失败,则返回HTTP错误详细信息

🚀 快速开始

先决条件

  • 锈蚀1.70+(安装Rust)
  • 货物(含铁锈)
  • jq 用于JSON处理(安装jq)
  • cargo-release 对于版本管理: cargo install cargo-release
  • NodeJS 19+如果测试 MCP 检查员

环境变量(可选)

对于 get_metrics_from_vector_store 函数,设置这些环境变量:

# Vector Store Name
export VECTOR_STORE_NAME=rag-store

# LlamaStack Host (without protocol)
export LLAMA_STACK_HOST=llama-stack-demo-route-llama-stack-demo.example.com

# LlamaStack Port
export LLAMA_STACK_PORT=443

# Use HTTPS/secure connection
export LLAMA_STACK_SECURE=true

备注:只有当您计划使用矢量存储集成功能时,才需要这些环境变量。更新这些值以匹配您的LlamaStack部署。

📥 安装

# Clone the repository
git clone https://github.com/alpha-hack-program/finance-engine-mcp-rs.git
cd finance-engine-mcp-rs

🏗️ 构建

# Build all servers
make build-all

# Or build individually
make build-mcp      # MCP HTTP Server
make build-stdio    # STDIO Server for Claude

🧪 单元测试

# Run all tests
make test

🏃‍♂️ 跑步

注: 默认情况下 BIND_ADDRESS=127.0.0.1:8001 为了 流式HTTP

# MCP Streamable HTTP Server
make test-mcp

# Or directly with custom address
RUST_LOG=info BIND_ADDRESS=127.0.0.1:8001 ./target/release/mcp_server

🧪 使用MCP检验员进行测试

使用StreamableHTTP传输运行MCP服务器:

make test-mcp

在另一个终端中,运行MCP检查器:

make inspector

打开浏览器中提供的URL,然后:

  1. 集 运输类型: StreamableHTTP
  2. 集 网址: http://localhost:8002/mcp
  3. 点击 Connect
  4. 点击 List Tools 查看所有七个功能
  5. 选择任何函数,填写参数,然后单击 Run tool

📦 Claude桌面集成

包装

# Create MCPB package for Claude Desktop
make pack

这创造了 finance-engine-mcp-server.mcpb 文件。

安装

  1. 打开克劳德桌面
  2. 转到“设置”→ 开发者→ 编辑配置
  3. 添加服务器配置或拖放 finance-engine-mcp-server.mcpb 文件
  4. 重新启动克劳德桌面

查询示例

试着问克劳德:

公司健康状况:

“计算收入增长9%、SLA合规性98.5%、现代收入37.7%、客户满意度89、渠道覆盖率0.849的企业的公司健康评分。他们的风险水平是多少?"

经营杠杆:

“我们的收入增长了9%,而成本仅增长了6%。计算一下我们的运营杠杆率,告诉我利润率增长的基点是多少。”

投资组合分析:

“计算这些细分市场的投资组合势头:订阅(1500万美元,增长20%)、企业(2500万美元,发展14%)、追加销售(500万美元,上升19%)和传统(800万美元,下降20%)。哪个细分市场对势头贡献最大?”

集中风险:

“我们在四个细分市场的收入分别为1500万美元、2500万美元、500万美元和800万美元。计算基尼系数,告诉我我们是否存在危险的集中风险。”

有机增长:

“收入从4870万美元同比增长到5300万美元,没有收购。我们的有机增长率是多少?”

🔧 配置

环境变量

# Logging level
RUST_LOG=info           

# Server bind address
BIND_ADDRESS=127.0.0.1:8000

🐳 容器化

构建并运行

# Build container image
scripts/image.sh build

# Run locally
scripts/image.sh run

# Run from remote registry
scripts/image.sh push
scripts/image.sh run-remote

# Show container information
scripts/image.sh info

生产配置

podman run -p 8001:8001 \
  -e BIND_ADDRESS=0.0.0.0:8001 \
  -e RUST_LOG=info \
  quay.io/yourorg/finance-engine-mcp-server:latest

🛠️ 发展

可用命令

🏗️ 构建命令

make build-all              # Build all servers
make build-mcp              # Build MCP server
make build-stdio            # Build stdio server
make pack                   # Pack for Claude Desktop

🚀 放行命令(货物放行)

make release-patch          # Patch release (1.0.0 → 1.0.1)
make release-minor          # Minor release (1.0.0 → 1.1.0)
make release-major          # Major release (1.0.0 → 2.0.0)
make release-dry-run        # Preview release changes
make sync-version           # Manually sync version

🧪 测试命令

make test                   # Run all tests
make test-mcp               # Test MCP server

🔧 开发命令

make clean                  # Clean build artifacts
make help                   # Show all commands

项目结构

├── src/                                    # Source code
│   ├── common/
│   │   ├── finance_engine.rs              # Core financial logic
│   │   ├── metrics.rs                     # Prometheus metrics
│   │   └── mod.rs
│   ├── mcp_server.rs                      # MCP HTTP Server
│   └── stdio_server.rs                    # STDIO Server
├── scripts/                               # Utility scripts
│   ├── sync-manifest-version.sh           # Version sync
│   └── image.sh                           # Container management
├── mcpb/
│   └── manifest.json                      # Claude Desktop manifest
├── .github/workflows/                     # CI/CD pipelines
├── Containerfile                          # Container definition
├── Cargo.toml                             # Rust package manifest
└── Makefile                               # Build commands

💡 LLM集成的使用技巧

使用此MCP代理查询LLM时:

  1. 具体数字 -提供准确的财务数据
  2. 包括上下文 -提及会计期间、业务部门等。
  3. 要求解释 -功能提供详细的细分
  4. 合并计算 -使用多种功能进行综合分析
  5. 使用自然语言 -无需知道确切的API参数
  6. 组合分析 -使用投资组合函数进行多样化和集中化风险分析

🔒 安全

  • 输入验证:严格的JSON模式和范围检查
  • 非root用户:容器以用户身份运行 1001
  • 安全审计: cargo audit 在CI/CD中
  • 最小图像:基于UBI 9最低标准
  • 山宁泰错误:输入净化可防止注射攻击

🤝 贡献

开发流程

  1. 分叉项目
  2. 创建特征分支: git checkout -b feature/new-metric
  3. 进行更改和测试: make test
  4. 提交更改: git commit -am 'Add new metric'
  5. 推送到分支: git push origin feature/new-metric
  6. 创建拉取请求

指南

  • 代码质量:关注 cargo fmt 并通过 cargo clippy
  • 测试:添加新功能的测试
  • 版本管理:让货物放行处理版本控制
  • CI/CD:确保所有GitHub操作都通过
  • 文档:根据需要更新README

⚙️ 版本管理

此项目使用 货物放行 用于自动同步的专业版本管理。

发布工作流

# 1. Make your changes and commit them
git add -A && git commit -m "feat: your changes"

# 2. Create a release
make release-patch     # Bug fixes: 1.0.0 → 1.0.1
make release-minor     # New features: 1.0.0 → 1.1.0  
make release-major     # Breaking changes: 1.0.0 → 2.0.0

# 3. Build and package
make pack
make image-build
make image-push

# 4. Push to repository
git push && git push --tags

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 了解详情。

🙋 支持

🏷️ 标签

mcp model-context-protocol rust finance-engine financial-analysis business-intelligence explicit-logic claude multi-step-calculations cargo-release enterprise-rust containerization ci-cd


与开发❤️ 通过 阿尔法黑客集团