
Security News
White House Authorizes Private Companies to Conduct Offensive Cyber Operations
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.
@jayofemi/shikamaru
Advanced tools
Provably correct day-count and accrued-interest calculations, as a TypeScript library and an MCP server.
Provably correct day-count and accrued-interest calculations. A small, dependency-light TypeScript library and an MCP server, so an AI agent can get the exact number instead of guessing.
LLMs are unreliable at date and money math: they pick the wrong day-count convention and miscompute accrued interest. shikamaru does it deterministically and proves it against published reference values. Do not let a model guess your interest accrual.
day_count_fraction, accrued_interest, list_conventions).Holiday calendars, business-day adjustment, schedules, and ACT/ACT ICMA arrive in v2.
npm install @jayofemi/shikamaru
import { dayCountFraction, accruedInterest } from "@jayofemi/shikamaru";
dayCountFraction("2003-11-01", "2004-05-01", "ACT/ACT ISDA"); // 0.4977...
accruedInterest({
notional: 1_000_000,
rate: 0.05,
start: "2024-01-01",
end: "2024-04-01",
convention: "ACT/365F",
});
Dates are strict ISO YYYY-MM-DD. Rate is an annual decimal (0.05 = 5%).
From source (local dev):
npm install
npm run build
node dist/server.js
Once published, an MCP client can launch it directly:
npx @jayofemi/shikamaru
Point any MCP client (Claude Desktop, an IDE, etc.) at that command over stdio.
The standard way to test shikamaru's server is the official MCP Inspector. The unit tests cover the library; the Inspector covers the server layer they do not touch.
npm run build
npx @modelcontextprotocol/inspector node dist/server.js
It opens a local UI, connects over stdio, lists the tools, and lets you call them. Sanity check: day_count_fraction with start 2003-11-01, end 2004-05-01, convention ACT/ACT ISDA returns about 0.4977.
Conventions follow the ISDA 2006 definitions. The test suite checks published reference vectors (ISDA worked examples, the OpenGamma conventions guide), property checks, and a differential battery against QuantLib, the de-facto reference.
To (re)generate the QuantLib battery (needs Python + pip):
pip install QuantLib
npm run vectors
This writes test/vectors/quantlib.json (commit it). npm test then checks shikamaru against every QuantLib value. CI regenerates the battery from QuantLib (setup-python + pip) and runs it on every push, so drift is caught. The proof is the product.
npm install
npm run build
npm test
MIT. Copyright (c) 2026 Jay Ofemi.
FAQs
Provably correct day-count, holiday-calendar, business-day, and payment-schedule calculations, as a TypeScript library and an MCP server.
The npm package @jayofemi/shikamaru receives a total of 92 weekly downloads. As such, @jayofemi/shikamaru popularity was classified as not popular.
We found that @jayofemi/shikamaru demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.