MCP.so
Sign In
Servers

Shikamaru: Day-Count and Accrued Interest Engine

@JayOfemi

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.

Overview

What is Shikamaru: Day-Count and Accrued Interest Engine?

Shikamaru is a small, dependency-light TypeScript library and MCP server that provides provably correct day-count, holiday-calendar, business-day, and payment-schedule calculations. It is designed for AI agents that need exact dates or numbers instead of guessing.

How to use Shikamaru: Day-Count and Accrued Interest Engine?

Install the npm package (npm install @jayofemi/shikamaru), then build and run the MCP server from source (npm run build && node dist/server.js) or launch it directly via npx @jayofemi/shikamaru. Any MCP client (Claude Desktop, IDE, etc.) can connect over stdio.

Key features of Shikamaru: Day-Count and Accrued Interest Engine

  • Day-count fraction under seven market conventions (30/360, ACT/360, etc.)
  • Simple accrued interest: notional × rate × day-count fraction
  • Holiday calendars: us-federal, nyse, sifma-us, target, uk
  • Business-day math: is-business-day, next/previous, ISDA adjustments, T+N settlement
  • Payment schedules: monthly to annual, backward or forward roll, short/long stubs
  • Continuous correctness verification against QuantLib via CI

Use cases of Shikamaru: Day-Count and Accrued Interest Engine

  • Get exact day-count fractions for bond or swap pricing
  • Compute accrued interest for a given notional, rate, and date range
  • Determine settlement dates (e.g., T+2) respecting market holidays
  • Generate periodic payment schedules with proper business-day adjustments

FAQ from Shikamaru: Day-Count and Accrued Interest Engine

What day-count conventions does it support?

It supports seven conventions: 30/360, 30E/360, 30E/360 ISDA, ACT/360, ACT/365F, ACT/ACT ISDA, and ACT/ACT ICMA (with reference periods and stub decomposition).

How are holiday calendars maintained?

Calendars are implemented as rules in code plus a pinned table of historical one-off closures. A scheduled CI run checks every calendar against the latest QuantLib weekly to detect drift.

What are the runtime requirements?

The server requires Node.js and npm. It is a dependency-light TypeScript package with no external data feeds.

How is correctness verified?

The library tests against published reference vectors (ISDA worked examples, official holiday lists) and differential batteries against QuantLib. CI regenerates these batteries from the latest QuantLib on every push and weekly.

How can I test the MCP server?

Use the official MCP Inspector: after building, run npx @modelcontextprotocol/inspector node dist/server.js. It opens a local UI that lists tools and allows calling them, e.g., day_count_fraction with start 2003-11-01, end 2004-05-01, convention ACT/ACT ISDA returns about 0.4977.

Tags

More from Other