Kirk — Unsupervised Structural Change Detection
The Kalman filter for the non-Gaussian, non-stationary world. Unsupervised structural change.
Connect it
Settings → Connectors → Add custom connector
URL: https://kirk-mcp.kavara.ai/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://kirk-mcp.kavara.ai/mcp{
"mcpServers": {
"kirk-mcp": {
"url": "https://kirk-mcp.kavara.ai/mcp",
"headers": {
"CF-Access-Client-Id": "<YOUR_CF_ACCESS_CLIENT_ID>",
"CF-Access-Client-Secret": "<YOUR_CF_ACCESS_CLIENT_SECRET>"
}
}
}
}claude mcp add --transport http kirk-mcp https://kirk-mcp.kavara.ai/mcp --header "CF-Access-Client-Id: <value>" --header "CF-Access-Client-Secret: <value>"{
"servers": {
"kirk-mcp": {
"type": "http",
"url": "https://kirk-mcp.kavara.ai/mcp",
"headers": {
"CF-Access-Client-Id": "<YOUR_CF_ACCESS_CLIENT_ID>",
"CF-Access-Client-Secret": "<YOUR_CF_ACCESS_CLIENT_SECRET>"
}
}
}
}14 tools, verified live
kirk_billing_showread-onlyReturn the caller's account_id, IU balance, USD equivalent at list, frozen flag, and recent ledger entries. Purpose: Surface the caller's current billing state â what they can spend, whether the account is frozen, and how recent entries landed. Use when: The caller wants to check available credit before committing to a large batch, or you are debugging a "why-was-I-charged" question. Do not u
kirk_billing_checkoutCreate a Stripe Checkout Session URL for buying a credit pack (starter / scale / enterprise). Purpose: Hand the caller a self-serve URL to purchase IU credits. Use when: The caller's balance is low, or you want to route to a self-serve top-up flow before a larger validation batch. Do not use when: The caller is on an enterprise in-process deployment â those are invoiced directly, not via Chec
kirk_billing_usageread-onlyReturn the caller's inference consumption over the last N days from the append-only Gate 2 events table. Purpose: Historical usage summary + per-tool breakdown for the caller's account. Use when: You need a usage report for the caller or an admin, or you are reconciling ledger debits against actual inference events. Do not use when: You need real-time cost â the `_cost` envelope on every agen
kirk_bulk_howtoread-onlyReturn a self-contained stdlib Python client for scoring at ZERO per-call LLM tokens. Purpose: Hand the caller an HTTP consumer that runs locally so bulk scoring doesn't burn LLM tokens per book. Use when: You need to score more than ~200 books, or `kirk_score_book_batch` returned `batch_too_large`, or the caller is running an autonomous bulk workload that would otherwise pay per-tool-call LLM t
kirk_demo_tradingread-onlyRuns a curated demonstration of Kirk on a trading example. Zero arguments. Returns real Kirk output against the same sealed engine that customer callers hit. Free, rate-limited. First-time users: call this to see what Kirk does before signing up. Purpose: Score n=30 jittered L2 snapshots per market regime (stationary vs stressed) through the sealed engine and surface the per-regime score-distribu
kirk_demo_uavread-onlyRuns a curated demonstration of Kirk on a UAV example. Zero arguments. Returns real Kirk output against the same sealed engine that customer callers hit. Free, rate-limited. First-time users: call this to see what Kirk does before signing up. Purpose: Score n=30 jittered 50-element spectra per acoustic class (drone / bird / helicopter) through the sealed engine and surface per-class score-distrib
kirk_verify_engineread-onlyVerify sealed engine identity â returns the sha256 of the running scoring binary. Also serves as a liveness probe against the sealed backend. Purpose: Attest which Kirk build is currently serving scoring calls. Response carries the HOST DEFAULT engine sha (kirk_version). That is the legacy default and is NOT necessarily the engine that will stamp a given kirk_score_* result: each model row in k
kirk_list_modelsread-onlyEnumerate the model_ids the sealed engine exposes, with the engine sha stamped in-response. Purpose: Discover the model catalog and record the sealed engine sha alongside your inference results. Use when: You are wiring a client for the first time and need model_id values for kirk_score_book / kirk_score_book_batch calls, or you want a machine-readable catalog with attestation. Do not use when:
kirk_infer_legacyread-onlyScore a 50-value feature vector against the legacy /v1/infer route on the sealed engine. Purpose: Backwards-compatible scoring surface for callers that were already targeting the legacy path. Use when: You have an existing client wired to /v1/infer and need continued MCP access without refactoring. Do not use when: You are on a fresh integration â prefer kirk_score_book (single-layer, cascade
kirk_score_bookread-onlyScore one L2 order-book snapshot through the sealed single-layer path and return a scalar entropy plus engine attestation. Purpose: Score one snapshot end-to-end through the sealed engine and surface the result plus the engine sha that produced it. Use when: You are validating Kirk on your own data before committing to a production path, or you are scoring a single snapshot inside an interactive
kirk_score_l2_bookread-onlyScore a sequence of full L2 order books as one chain and return per-book entropies plus engine attestation. Purpose: Score complete books â prices, sizes and order counts â rather than prices alone. This is the v2 book contract; it carries information the price-only contract cannot. STATE POLICY, and it matters: the books are scored IN ORDER as a single fresh chain. The model starts from its
kirk_score_book_batchread-onlyScore up to 500 L2 order-book snapshots in one MCP call â returns an entropies list plus engine attestation. Purpose: Batch-score up to 500 snapshots through the sealed engine in a single MCP dispatch. Use when: You are validating batch behaviour, comparing entropy distributions across small book sets, or running interactive experiments up to 500 books at a time. Do not use when: You have mor
kirk_render_bookread-onlyRender an L2 order-book snapshot into the 20Ã20 complex128 thermometer tensor WITHOUT invoking the sealed engine. Purpose: Local tensor prep and inspection â see what shape the sealed engine will receive without paying for a scoring call. Use when: You want to sanity-check bid/ask level convention against the model's canonical input convention, inspect the non-zero cell pattern for a snapshot
kirk_score_randomread-onlySynthesize N realistic-geometry L2 book snapshots and score them â convenience wrapper on kirk_score_book_batch. Purpose: Produce a live entropy series with no external data â the fastest way to confirm a new integration is wired end-to-end. Use when: You want a wiring-check, a first-integration walk-through, or a quick reference for the response shape without needing to supply your own mark
Alternatives in Developer Tools
Compare →PMPostHog MCP ServerOfficialA
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
MAMakeOfficialA
Build, run and debug Make automation scenarios.
ClerkOfficialA
Access Clerk authentication docs, SDK snippets, and quickstart guides
MUMuxOfficialA
The official MCP Server for the Mux API
SMSentry MCPOfficialA
MCP server for Sentry - error monitoring, issue tracking, and debugging for AI assistants
Compiler ExplorerA
Compile code with thousands of compilers, inspect the assembly, and share godbolt.org links