Fixed Income MCP server
io.github.joselillotrax-cell/fixed-income-mcp·v0.1.3·1 starsBond pricing, duration, DV01 and convexity for AI agents, with numerical cross-checks built in.
1 stars35 downloads/wk
Reviews
Write oneNobody has reviewed Fixed Income yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Fixed Income tools (6)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
bond_analytics_toolMacaulay duration, modified duration, DV01 and convexity.
cashflow_schedule_toolRemaining payments, with discount factors when a yield is supplied.
check_consistency_toolTest a yield someone has already produced against the required bounds.
price_from_yield_toolValue a fixed-coupon bond at a given yield to maturity.
scenario_shock_toolCompare an exact repricing against first- and second-order estimates.
yield_from_price_toolSolve for the yield to maturity implied by a market price.
Public scan report
scanner v0.1.10 · 2026-10-03 · same rubric, same numbers if you re-run it
- Code scan10 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 17 days ago15/15
- Maintainer identityregistry namespace matches repository owner6/10
How Fixed Income compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 89/100
- higher than 80% of 48,255 servers
- Tools
- 6
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
- Downloads a week
- 35
- more than 25% of 12,191 servers with a package
What its tools let an agent do: 6 read
Install Fixed Income in Claude Code, Cursor or VS Code
claude mcp add fixed-income-mcp -- uvx bondmath
What the publisher says
From the Fixed Income repository's README, as published. We do not edit it. Read it on GitHub
fixed-income-mcp
<!-- mcp-name: io.github.joselillotrax-cell/fixed-income-mcp -->
Fixed-income analytics for AI agents, with the checks that catch the errors models actually make.
Prices fixed-coupon bonds and measures their interest-rate sensitivity. Two things separate it from a calculator: every analytic duration is validated against a convention-free numerical one, and every valuation is tested against the bounds a correct answer has to satisfy.
The pricing and analytics core (bondmath.bond, .pricing, .analytics, .checks, .daycount, .schedule) is pure standard library. The package as distributed also installs the MCP SDK, required by bondmath.server — see As an MCP server for why that dependency isn't optional.
Why
A language model asked for the modified duration of an ordinary bond returned 3.0942 years. The correct value is 3.1686. It had divided Macaulay duration by one plus the annual yield instead of one plus the periodic yield — the wrong divisor for a bond paying twice a year.
Then it did something more interesting. Its own duration-plus-convexity approximation stopped matching an exact repricing, and it explained the gap as "third-order terms of the Taylor series." For a bond of that maturity and a 100 bp move, the genuine third-order term is 0.09 bp. The residual it was explaining came from its own miscalculated duration, handed back as theory.
A separate session returned a 4.01% yield for a bond trading at 97.80% of par — below the 4.09% current yield, and therefore outside the range of possible answers.
The full write-up is at joselillotrax-cell/bond-desk.
This library is the answer to it: give the agent a tool that does the arithmetic correctly, and have the tool say so out loud.
Design
Bisection, not Newton-Raphson. Newton converges faster but can diverge, or settle on a value that satisfies the iteration without solving the pricing equation. That is exactly the 4.01% failure. Bisection cannot do it.
Effective duration ships alongside the analytic one. Central differences on the pricing function involve no annualisation, so the numerical figure cannot inherit a convention error. When the two disagree, the analytic one is wrong.
The wrong answer is computed on purpose. Analytics.naive_modified carries the figure the bad divisor produces. Unusual for a library, but it is what lets the tools flag the error rather than silently avoid it.
Use
from datetime import date
from bondmath import Bond, DayCount, yield_from_price, analytics, check_consistency
bond = Bond(
face=1000,
coupon_rate=0.04,
frequency=2,
issue=date(2024, 3, 15),
maturity=date(2029, 3, 15),
basis=DayCount.ACT_ACT_ICMA,
)
settle = date(2025, 9, 11)
quote = yield_from_price(bond, settle, 978.00) # 97.80% of par
print(f"{quote.dirty:.4f}") # 997.5652
print(f"{quote.ytm:.4%}") # 4.6867%
metrics = analytics(bond, settle, quote.ytm)
print(f"{metrics.modified:.4f}") # 3.1686 <- correct
print(f"{metrics.naive_modified:.4f}") # 3.0976 <- the common error
print(f"{metrics.effective:.4f}") # 3.1694 <- numerical arbiter
print(check_consistency(bond, settle, quote, metrics))
# [PASS] below_par_ordering: trading below par at 97.8000%, so
# coupon < current yield < YTM must hold: 4.0000% < 4.0900% < 4.6867%
# ...Scenario analysis isolates the true higher-order residual:
from bondmath import scenario
s = scenario(bond, settle, quote.ytm, shock_bp=100)
print(f"{s.exact:.2f}") # 966.55
print(f"{s.residual_bp:+.2f}") # +0.09 bp, not the six the model claimedConventions
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Fixed Income: common questions
- Is Fixed Income MCP server safe?
- Yes, by our scan: it is graded A (89/100). Read the Fixed Income safety report
- How do I install Fixed Income?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Fixed Income need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Fixed Income maintained?
- The last commit was 49 days ago (2026-09-16). The latest release is v0.1.3.
- How does Fixed Income compare with other MCP servers?
- safety score 89/100 (higher than 80% of 48,255 servers); tools 6 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.