Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Beschreibung vom Entwickler (englisches Original)
Exact math execution layer for AI agents: fractions, finance, units, dates. 19 packs.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"jiheng": {
"command": "uvx",
"args": [
"jiheng-mcp"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add jiheng -- uvx jiheng-mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"jiheng": {
"command": "uvx",
"args": [
"jiheng-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"jiheng": {
"type": "stdio",
"command": "uvx",
"args": [
"jiheng-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto CQQOOQ123 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.9) kam vor 3 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
English | 中文
不是让计算器替 AI 思考,而是让 AI 不必自己心算。
模型擅长推理,却不擅长算术。一个被静默舍入的数字,可能一路传进报价、报表或仓位里。
玑衡只做一件事:要么给出精确值,要么明确告诉你为什么给不了。
给 AI Agent / MCP 客户端使用的精确数学执行层:分数、根号、符号、统计、金融、单位、日期。 既可以作为 MCP 服务器,也可以作为 DSH 插件 接入。
1/3 保留分数,sqrt(2) 保留根号,2^200 逐位精确{
"mcpServers": { "jiheng": { "command": "uvx", "args": ["jiheng-mcp"] } } }
DSH 插件:@local/jiheng,设置页可查看状态与策略。
uv pip install jiheng-mcp==x.y.z若报 unsatisfiable,但 PyPI 页面已有该版本:
执行
uv cache clean jiheng-mcp后重试;仍失败则执行完整uv cache clean。通常是 uv 本地缓存了旧索引。
不同工具优化的目标不同。Jiheng 只专注一件事: 给 AI 代理一个快、准、本地、接口干净的精确计算器。
| Jiheng | Wolfram(Alpha / Cloud) | SymPy MCP | Code Interpreter | |
|---|---|---|---|---|
| 精确分数/根号 | ✅ 始终(1/3、sqrt(2)) | ✅ | ✅ 但接口偏底层 | ⚠️ 不写代码就是浮点 |
| AI 原生接口 | ✅ steps、functions()、help()、教学式错误 | ⚠️ 偏文档 | ❌ 原始 API | ✅ 通用 |
| 本地、无需 API key | ✅ uvx jiheng-mcp | ❌ 云端/付费 | ✅ 本地 | ❌ 托管 |
| 热延迟 | 约 3ms/次 | 网络往返 | 每次起 Python | 秒级 |
| 领域覆盖 | 19 个包:统计、金融、工程、单位、日期、分布、ODE、线代… | ✅ 很广 | 只有基础数学 | ⚠️ 靠库 |
| 一次调用多步 | ✅ 命名 steps | ⚠️ | ❌ | ✅ 写代码 |
| 并行拆题 | ✅ calc_shard + worker 池 | ❌ | ❌ | ⚠️ 手动 |
| 符号深度 | ⚠️ 够用,非 Wolfram 级 | ✅ 最强 | ✅ 强 | ⚠️ 靠 SymPy |
| 难数值积分 | ⚠️ 已改进,非 Wolfram 级 | ✅ | ⚠️ | ✅ SciPy |
| 中文口径 | ✅ 折扣/税/日期/单位模板 | ⚠️ | ❌ | ⚠️ |
| 许可/成本 | MIT,免费 | 付费/云端 | BSD,免费 | 免费但托管 |
| 可测量基准 | ✅ 1000 题混合基准 97.6% | — | — | — |
适合用 Jiheng:
不适合用 Jiheng:
Jiheng 是计算层,不是数据层。它不连接数据库、不抓网页、不读文件, 只负责把“已经拿到的数字”算准。数据获取交给专门的 MCP 工具,两者组合使用:
| 需要做什么 | 用什么 |
|---|---|
| 从数据库/CSV 取数 | 数据库 MCP、文件 MCP、代码解释器 |
| 统计、金融、单位、日期计算 | Jiheng |
| 大表 join / ETL | DuckDB / 代码执行 |
| 画图 | 图表 MCP |
典型链路:
数据库 MCP:SELECT month, revenue FROM finance
↓ [120000, 135000, 149000, 162000] ↓ Jiheng:cagr(162000, 120000, 3) → 0.105... Jiheng:mean([...]) → 141500 Jiheng:npv(0.08, [...], 1) → 折现值
为什么不在 calc 里内置数据库连接:
如果你需要“只读 SQLite / DuckDB / CSV”,建议用独立的数据工具或 MCP, 把结果数字交给 Jiheng 计算。
1. 安装 uv(已装可跳过)
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
irm https://astral.sh/uv/install.ps1 | iex
2. 让客户端启动 Jiheng
在 Claude Desktop、Cursor、Codex 等 MCP 客户端配置里加入:
{
"mcpServers": { "jiheng": { "command": "uvx", "args": ["jiheng-mcp"] } } }
第一次启动时 uvx 会自动下载 jiheng-mcp,之后走本地缓存。
3. 重启客户端,直接提问
用 calc 算 1/3 + 1/6
用 calc 算 mean([12,15,9,22]) 用 calc 算 npv(0.08, [623,644,431,286], 1) 用 calc 算 sqrt(2)*sqrt(2)
| 方式 | 命令 |
|---|---|
| PyPI(pip) | pip install jiheng-mcp |
| 本地目录开发 | uvx --from ./dsh-calc jiheng-mcp |
| 直接从 git | uvx --from git+https://github.com/CQQOOQ123/jiheng jiheng-mcp |
plugin_manager install_bundle target="D:\AI\DeepSeek-workplace\创造模式\dsh-calc"
plugin_manager set_bundle target="@local/jiheng" enabled=true
装载后工具表出现 calc;设置 → 计算器 出现配置页。
cd dsh-calc
python -u mcp_server.py # 读取 stdin 的 JSON-RPC
{
"expr": "最终表达式(可省略,若 steps 已给出结果)", "steps": [{"name": "中间变量名", "expr": "子表达式"}], "defs": {"const": {"k": 1.05}, "fn": {"f": {"p": ["x"], "e": "x^2"}}} }
返回:content[0].text 为十进制优先的结果(附精确形式);错误时 isError: true, 文本中包含可修正的提示。
calc(expr="1/3 + 1/6") → 1/2
calc(expr="sqrt(2)*sqrt(2)") → 2 calc(expr="mean([12,15,9,22])") → 14.5 calc(expr="loan_pmt(1000000, 0.049, 20)") → 月供 calc(expr="black_scholes_call(115,113,1,0.05,0.30)") calc(expr="npv(0.08, [623,644,431,286], 1)") → start=1 表示首笔第 1 年末 calc(expr="functions()") → 全部函数名 calc(expr="help(\"norm_cdf\")") → norm_cdf(x, mu, sigma) — 正态累积分布
多步一次提交(推荐,减少往返):
{
"steps": [ {"name": "d1", "expr": "(ln(115/113)+(0.05+0.3^2/2)*1)/(0.3*sqrt(1))"}, {"name": "d2", "expr": "d1-0.3*sqrt(1)"}, {"name": "C", "expr": "115*norm_cdf(d1)-113*exp(-0.05)*norm_cdf(d2)"} ] }
⚠️
N(expr, digits)是数值求值,不是正态 CDF;CDF 用norm_cdf(x)。
+ - * / % ** ^、pi、esum mean std std_pop std_sample var_pop var_sample median quantile min max count corr cov regressionloan_pmt npv(rate, flows[, start]) annuity_pv discount_factor irr bond_price bond_duration black_scholes_call black_scholes_put irr_allunit_convert unit_add unit_mul unit_div unit_pow unit_eval + convertdays_between date_add weekdaysolve diff integrate simplify expand factor subs limit series taylorstress strain bending_stress beam_cantilever_point heat_flux thermal_resistancenorm_pdf norm_cdf norm_quantile t_pdf chi2_pdffunctions()、help("name")完整 61+ 函数见 AI-USAGE.md。
设置页可选,或 cordis.patch.yml 的 config.policy:
| policy | 行为 |
|---|---|
always | 任何计算都调工具 |
complex | 只在数组统计、金额、单位、符号、3+ 步、大数时调(默认) |
auto | 模型自判 |
never | 不注册工具 |
custom | 用 customRules 自然语言规则 |
设置 → 计算器 → 限额(存 /settings.json,立即生效):
| 限额 | 默认 | 超限 |
|---|---|---|
max_series | 10000 | 报错 |
max_output_items | 200 | 列表转摘要 |
max_expr_chars | 2000 | 报错 |
max_steps | 50 | 报错 |
max_symbol_len / max_decimal_len | 120 / 4000 | 降级为数值 + exact=false |
exact_only | 1 | 长符号表达式保留精确形式(同时给 d) |
strict_numeric | 0 | 1=无法精确表示时报错 |
默认 1 个常驻进程(单次约 3ms);高并发/重符号任务可开池:
# cordis.patch.yml
workers: 1 # 1..maxWorkers,或 auto maxWorkers: 8 # 硬上限 16;每个约 52MB
auto:起始 1 个,忙时自动扩到 maxWorkersGET/POST /calc/workers、POST /calc/batch(1..200 条表达式并行){"ready":true} 握手;扩容后等全部就绪再返回| 变量 | 默认 | 说明 |
|---|---|---|
DSH_CALC_PYTHON | 自动探测 | worker 解释器 |
DSH_CALC_HOME | ./.calc 或 ~/.calc | 公式/设置目录 |
DSH_CALC_TIMEOUT_MS | 8000 | 单次求值超时 |
DSH_CALC_DEBUG | 空 | 透传 worker stderr |
DSH_CALC_POLICY | 空 | 临时覆盖策略 |
DSH_CALC_BUILTIN_PACKS | 包内 packs/ | 内置能力包目录 |
DSH Host (Node, 常驻)
└─ index.js ──注册 calc / calc_shard 工具──▶ ctx.tools.register │ spawn(1..N 个) ▼ worker.py(常驻,JSON 行协议,~3ms/次) └─ calc_core.py AST 白名单 + Fraction + SymPy └─ packs/*.py 能力包(热加载)
MCP 客户端 ──stdio JSON-RPC──▶ mcp_server.py ──▶ calc_core.py + packs/
eval:AST 白名单,只允许数字/字符串/列表/四则/幂/白名单函数1/7*7 = 1、2^200 精确d 字段(30 位小数)sin(pi/6)=1/2、log(1000,10)=3)exact=false{"e":"ValueError","msg":"unknown function 'norm_cdf'... did you mean ..."}
{"e":"ValueError","msg":"invalid date '2026-02-30': 2026-02 has 28 days ... Do not roll over."} {"e":"ValueError","msg":"dimension mismatch: GB (data) vs kg (mass)"} {"e":"ValueError","msg":"not an expression (hint: multiple statements are not supported ...)"}
/calc/status:版本、策略、注册状态、worker/就绪数、目录POST /calc/policy:{policy, customRules}GET/POST /calc/limits:限额;{"reset":true} 恢复默认GET/POST /calc/workers:worker 池POST /calc/batch:{exprs:[...]} 并行求值GET/POST /calc/packs:公式包/能力包.calc/plugins/*.py(或包内 packs/):
NAME = "stats"
def register(reg): reg.func("corr", ["x", "y"], corr_impl, doc="Pearson 相关系数")
PACKS.mdcalc_shard(expr="x*exp(x)", var="x", from=0, to=1, shards=4, mode="integrate", op="sum")
→ sum(nintegrate) = 1
mode: integrate / sum;op: sum / mean / max / minpython dsh-calc/test_cases.py # 63 项:精度/统计/语义/错误/安全
python dsh-calc/test_packs.py # 169 项:能力包 python dsh-calc/test_worker.py # 12 项:worker 协议/热加载/ready node dsh-calc/test_client_contract.mjs # 8 项:客户端契约 node dsh-calc/test_routes.mjs http://127.0.0.1:3379 # 26 项:HTTP 路由 python research/bench/mcp_smoke.py # 7 项:MCP 冒烟
质量审计记录见 QUALITY.md。
基准(1000 题混合题集,deepseek-v4-flash,自然使用模式):97.6%(976/1000)。
| 项目 | 结果 |
|---|---|
| 综合任务银行 | 1,000/1,000 |
| 按能力包 | 19 包 × 1,000 = 19,000/19,000 |
| 真值来源 | Fraction / mpmath dps=50 / 日历事实;不调用插件自身算答案 |
| 调用方式 | 通过 MCP stdio 黑盒调用,只看输入/输出 |
| 难度分布(综合集) | easy 639 / medium 131 / hard 130 / adversarial 100 |
| 构建产物性能 | 冷启动 ~4.2 ms,p50 ~1.8 ms,p95 ~42 ms,p99 ~45 ms,~119 calls/s |
说明:这是生成式验收集,覆盖行为一致性、精确契约和 fail-loud 边界;难度以工程/量化计算为主,不等同于竞赛数学。
Q:`std` 是样本还是总体? A:std/std_pop/var/var_pop 是总体;std_sample/var_sample 是样本。 sharpe、zscore、cov 内部使用样本口径(ddof=1);max_drawdown 默认要求价格严格 >0,allow_leading_zeros=1 时允许前导 0。
Q:为什么 `N(...)` 不等于正态 CDF? A:N(expr, digits) 是数值求值;正态 CDF 用 norm_cdf(x)。
Q:`npv` 第一笔为什么不折现? A:默认 start=0(flows[0] 在 t=0);年末现金流用 npv(rate, flows, 1)。
Q:非法日期会怎样? A:明确报错(如 2026-02-30),不会顺延到 3 月 2 日。
Q:`api retries exhausted` 是什么? A:模型 API 连续重试 6 次仍失败(限流/网络),不是计算器错误;用 --resume 补跑。
.github/workflows/test.yml 在 push / PR 时跑核心、能力包、文档、客户端、MCP 冒烟测试.github/workflows/publish.yml 在 GitHub Release 发布时自动构建并上传 PyPI (Trusted Publishing:GitHub OIDC,无需长期 token)发布流程:
# 1. 改版本号(同步 package.json / pyproject / mcp_server)
python scripts/bump_version.py 0.3.2
PyPI 项目需在 Publishing 里配置 GitHub publisher:
Owner: CQQOOQ123
Repository: jiheng Workflow: publish.yml Environment: (留空)
手动发布(备用):
$env:UV_PUBLISH_TOKEN = "pypi-..."
uv build --directory dsh-calc uv publish dsh-calc/dist/*
exact=false 标记)calc_shard 切分index.js 不热更新;calc_core.py 在 worker 重启后生效uv build --directory dsh-calc
Do
Nur der Anfang wird gezeigt; den Rest findest du im Repo