Kirk — Unsupervised Structural Change Detection
Server Details
The Kalman filter for the non-Gaussian, non-stationary world. Unsupervised structural change.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Kavara-AI/kirk-mcp
- GitHub Stars
- 0
- Server Listing
- kirk-mcp
TDQS
Scored across 14 tools
Most tools have distinct purposes, but the scoring family (kirk_score_book, kirk_score_l2_book, kirk_score_book_batch, kirk_score_random) overlaps conceptually. Descriptions clarify differences, though an agent might still confuse v1 vs v2 book contracts.
All tools use the kirk_ prefix with snake_case, but the verb/noun order varies (score_book vs billing_checkout) and demo tools use a noun_verb style. Overall readable, but not perfectly uniform.
14 tools is well within the ideal scope for a domain-specific server. Each tool covers a distinct need—scoring, batching, rendering, demos, billing, and verification—without bloat.
The surface covers core scoring workflows (single, batch, legacy, random), billing state, model listing, and engine attestation. Minor gaps exist like no per-model detail endpoint or arbitrary vector shapes, but they don't create dead ends.
Available Tools
14 toolskirk_billing_checkoutCreate Checkout SessionAInspect
Create 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 Checkout.
Capability class(es): Meta (billing).
Path fit: MCP only.
Cost: 0 IU. Callable at balance=0.
| Name | Required | Description | Default |
|---|---|---|---|
| pack | No | one of 'starter' ($500 / 50K IU), 'scale' ($5K / 500K IU), or 'enterprise' ($50K / 5M IU). | starter |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds useful behavioral context: the tool costs 0 IU, is callable at zero balance, and is MCP-only. It also frames the action as a self-serve URL flow, consistent with readOnlyHint=false and openWorldHint=true. No contradictions with annotations, though it could mention potential errors or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses labeled sections to deliver purpose, usage conditions, capability class, path fit, and cost in a compact format. Each section earns its place without redundancy or verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter billing tool with an output schema and basic annotations, the description provides complete operational context: when to use, when not to, cost, balance requirement, and the type of output (a URL). The output schema presumably describes the return value, so no further detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'pack' parameter, including all three options and their pricing. The description's mention of the packs adds little beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a Stripe Checkout Session URL for purchasing credit packs, and lists the three available packs. The verb 'create' plus the specific resource 'Stripe Checkout Session URL' makes the purpose unmistakable and distinguishes it from sibling billing tools like kirk_billing_show and kirk_billing_usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides 'Use when' and 'Do not use when' conditions, including an alternative for enterprise deployments (invoiced directly). This gives the agent clear, actionable guidance on when to invoke this tool versus when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_billing_showShow Billing BalanceARead-onlyInspect
Return 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 use when: You just need per-call cost — the _cost
envelope on every agent-driven tool result carries that inline
without a separate call.
Capability class(es): Meta (account state), not a capability of the scoring engine.
Path fit: MCP only. Enterprise in-process deployments have their own billing surface (invoiced separately).
Cost: 0 IU. Callable at balance=0 so a customer with zero credit can still self-serve to top up.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description adds no contradiction. It enriches this with zero-cost invocation, callable at balance=0, and the specific account state fields returned, which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with labeled sections and every line carries operational information: returns, use cases, exclusions, path fit, and cost. It is thorough without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only tool with an existing output schema and clear annotations, the description covers when to use it, what it returns, cost behavior, and availability. No material gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so there is nothing for the description to explain beyond the empty schema. The baseline of 4 applies because the schema fully covers the parameter surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Return') and enumerates the exact outputs: account_id, IU balance, USD equivalent, frozen flag, and recent ledger entries. This clearly distinguishes it from sibling billing tools and the inline `_cost` envelope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections specify the intended scenarios (checking credit before large batch, debugging charges) and explicitly advise against using it for per-call cost, directing to the `_cost` envelope. It also clarifies the MCP-only path fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_billing_usageGet Usage SummaryARead-onlyInspect
Return 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 agent-driven tool result covers that inline.
Capability class(es): Meta (metering).
Path fit: MCP only.
Cost: 0 IU.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | window size (default 30). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds context: it is historical (not real-time), sourced from an append-only table, and useful for reconciling ledger debits. It also mentions a non-functional 'Cost: 0 IU' which adds mild context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, use when, do not use when) and front-loads the core action. The extra metadata (Capability class, Path fit, Cost) is brief and not overly repetitive, though it could be trimmed without losing essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, read-only, with an output schema), the description fully covers what the tool does, when to use it, when not to, and the underlying data source. No critical behavioral information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single `days` parameter is fully described in the schema ('window size (default 30)') with 100% coverage. The description's 'last N days' simply echoes the schema, adding no new semantic detail beyond the default value already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Return the caller's inference consumption over the last N days from the append-only Gate 2 events table.' It also clarifies the scope (per-tool breakdown) and distinguishes itself from real-time cost tools via the 'Do not use when' clause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections provide clear context for when to invoke this tool versus alternatives like the `_cost` envelope on tool results. This gives direct guidance for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_bulk_howtoGet Bulk Scoring ClientARead-onlyInspect
Return 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 tokens for every book.
Do not use when: You are running a one-off interactive call — a
direct kirk_score_book invocation is simpler; don't route
through the client for a single book.
Capability class(es): Cost-steering / delivery-path tool. Hands the caller a runner that exercises the same C2 / C5 / C6 capabilities as the MCP scoring tools, but at zero per-call LLM token cost.
Path fit: The returned client is an HTTP consumer of the same MCP endpoint. Production integrations run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options.
Cost: 0 IU. Free tool. Once running locally, the returned client bills against the same tools it drives: single-book calls at 1 IU each, and batch calls at 1 IU per 50 books (minimum 1 IU per call). A full 500-book batch → 10 IU. No LLM tokens on top.
Cost comparison (2.7M-book validation rerun via 500-book batches — ~5400 batches, 54000 IU billed either way): MCP via Sonnet 5: $1,968 LLM + $540 IU + ~15 days wall clock MCP via Haiku 4.5: $656 LLM + $540 IU + ~10 days Python client (this tool): $0 LLM + $540 IU + ~55 min
Return structure: { "language": "python", "filename": "kirk_online_client.py", "requirements": str, "usage": str, "code": str (the client source, ~500 LOC), "example": str (2-line copy-paste demo) }
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only indicate read-only, non-destructive, open-world behavior. The description adds substantial behavioral context: zero per-call LLM tokens, 0 IU cost, the return structure, and the fact that the returned client bills against the same underlying tools. This goes well beyond the annotations and gives the agent a clear model of what will happen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but it is well-structured with labeled sections (Purpose, Use when, Do not use when, Cost, Return structure), making it scannable. Some cost-comparison details could be trimmed, but they serve to justify the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool that returns client code, the description is exceptionally complete: it covers purpose, usage thresholds, alternatives, cost behavior, return structure, and even deployment path. No important context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so the baseline is 4. The description doesn't need to explain parameters; instead, it enriches the output contract by listing exact return fields (language, filename, requirements, usage, code, example), which adds practical meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, action-oriented statement: 'Return a self-contained stdlib Python client for scoring at ZERO per-call LLM tokens.' This clearly identifies the deliverable and its value proposition. It also distinguishes itself from sibling tools by naming conditions tied to kirk_score_book_batch and kirk_score_book.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'Use when' and 'Do not use when' sections with concrete thresholds (e.g., more than ~200 books, batch_too_large) and names the alternative simpler tool (kirk_score_book). This is exactly the kind of direct steering guidance expected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_demo_tradingKirk Trading Demo (Free)ARead-onlyInspect
Runs 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-distribution statistics (mean, sd) plus the z-separation between the two distributions in pooled-sd units. Also carries a representative canonical book pair so callers see two concrete scores alongside the distributions.
Use when: You are a first-time caller exploring what Kirk does. You want a zero-friction "what does the output look like" experience against real sealed-engine attestation.
Do not use when: You are scoring your own data — use
kirk_score_book or kirk_score_book_batch. This tool's
input is a fixed synthetic representative pair, not a market
feed.
Capability class(es): C2 (variable-universe cross-section entropy scoring) demonstrated end-to-end against the sealed engine.
Path fit: MCP demonstration surface only.
Cost: 0 IU. Rate-limited 3/hour per IP.
Returns:
Dict with per-regime stationary and stressed blocks
(each: mean, sd, n, kirk_version),
z_separation (pooled-sd distance between the two
regime distributions), representative_pair (canonical
un-jittered stationary_score / stressed_score plus
book_summaries), interpretation_hint, provenance,
and synthetic_representative flag.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, non-destructive behavior. The description adds substantial context: it runs against the sealed engine, uses fixed synthetic jittered L2 snapshots, is rate-limited to 3/hour per IP, and returns per-regime statistics plus a representative pair. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is well-structured with labeled sections (Purpose, Use when, Do not use when, Cost, Returns) and a front-loaded summary. However, there is some redundancy: 'Free' appears both in the first sentence and in the Cost section, and the Purpose section partially restates the opening paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter demo tool with an output schema, the description is complete. It covers when to use it, when not to use it, alternatives, cost, rate limits, behavior, and detailed output structure, leaving no significant gaps for a first-time caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description goes further by explicitly stating 'Zero arguments' and explaining that the input is a fixed synthetic representative pair, not a market feed, which clarifies why no parameters are needed and what the tool actually consumes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Runs a curated demonstration of Kirk on a trading example,' which specifies the verb, resource, and scope. It clearly distinguishes this demo from siblings by naming kirk_score_book and kirk_score_book_batch as the tools for scoring real data, and the trading focus separates it from kirk_demo_uav.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when' and 'Do not use when' sections give explicit guidance: first-time callers exploring Kirk should use this, while those scoring their own data should use alternatives. It also mentions the rate limit and zero cost, providing concrete usage constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_demo_uavKirk UAV Demo (Free)ARead-onlyInspect
Runs 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-distribution statistics plus z-separations for the three class pairs. Demonstrates that the same sealed engine sha handles market microstructure and acoustic spectra with the same primitive.
Use when: You want to see Kirk's cross-domain generalization without needing your own audio dataset.
Do not use when: You have real feature vectors to score — use
kirk_infer_legacy directly (arg: list of 50 floats). This
tool's inputs are fixed synthetic spectra baked into the demo.
Capability class(es): Demonstrates domain-agnostic mathematical primitive — the same engine sha handles kirk_score_book (L2) and kirk_infer_legacy (arbitrary 50-vector).
Path fit: MCP demonstration surface only.
Cost: 0 IU. Rate-limited 3/hour per IP.
Returns:
Dict with per-class drone / bird / helicopter
blocks (each: mean, sd, n, kirk_version),
z_separation (dict of drone_vs_bird / drone_vs_helicopter
/ bird_vs_helicopter in pooled-sd units),
representative_scores (the three single-sample scores
from the canonical un-jittered spectra),
interpretation_hint, provenance, and
synthetic_spectral flag.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by disclosing that the tool is free, rate-limited to 3/hour per IP, uses the same sealed engine, and returns real Kirk output. It also details the synthetic nature of inputs and the return contents, providing rich behavioral context beyond the readOnlyHint/destructiveHint annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with sections (Purpose, Use when, Do not use, Capability class, Cost, Returns). It front-loads the key summary in the first sentence and each subsequent section earns its place, though a slightly tighter presentation could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no input parameters and an output schema exists, the description is highly complete: it covers purpose, usage guidance, cost/rate limits, and details the return object fields (per-class statistics, z-separations, provenance, etc.). This gives the agent all necessary context for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the rubric gives a baseline of 4. The description reinforces this by stating 'Zero arguments' and clarifying that the inputs are fixed synthetic spectra baked into the demo, adding meaningful context about why no parameters are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a curated Kirk demonstration on a UAV example, with zero arguments, and distinguishes it from siblings like kirk_infer_legacy and kirk_demo_trading by emphasizing its demo nature and fixed synthetic inputs. It also conveys the purpose: first-time users can see what Kirk does before signing up.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections tell the agent to use this tool for cross-domain generalization demos without audio data, and to use kirk_infer_legacy directly for real feature vectors. This clearly differentiates from alternatives and prevents misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_infer_legacyScore Legacy Feature VectorARead-onlyInspect
Score 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-shaped path). Also do not use in a tight loop against a large corpus: the MCP round-trip is millisecond-scale, and the LLM tool-call cost accrues per book for agent-driven callers. For bulk work, call kirk_bulk_howto first.
Capability class(es): C2 (cross-section entropy scoring), legacy interface.
Path fit: Validation via MCP (this tool). Production integrations run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options.
Cost: 1 IU per call. For agent-driven callers, per-call LLM tokens accrue on top; the response _cost envelope surfaces both.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | 50 floats. kirk-server renders these internally into the 50-element sample the sealed engine consumes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the readOnlyHint and destructiveHint annotations: it discloses cost (1 IU per call, plus LLM token accrual), performance (millisecond-scale round-trip), and the sealed-engine attestation path. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then organized into labeled sections (Purpose, Use when, Do not use when, Capability class(es), Path fit, Cost). Every section adds distinct information without redundancy, making it efficient despite its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage guidance, alternatives, cost, deployment options, and capability class. With an output schema present and rich annotations, there are no significant gaps for an AI agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the sole parameter 'values' as '50 floats' and explains the internal rendering. The description's first line reiterates '50-value feature vector' but does not add new semantic information. With 100% schema coverage, the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Score a 50-value feature vector against the legacy /v1/infer route on the sealed engine,' which is a specific verb ('Score') and resource ('feature vector','legacy /v1/infer route'). It further distinguishes itself from siblings by explicitly labeling it as 'legacy' and recommending kirk_score_book for fresh integrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'Use when' and 'Do not use when' sections, stating to use it for existing clients wired to /v1/infer and to avoid it for fresh integrations or tight loops, with named alternatives (kirk_score_book, kirk_bulk_howto). This is clear, actionable guidance with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_list_modelsList Kirk ModelsARead-onlyInspect
Enumerate 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: You need per-model hyperparameter detail — those are intentionally not exposed on the customer surface.
Capability class(es): C5 (engine sha attested on every response).
Path fit: Validation via MCP (this tool). Production integrations run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options.
Cost: 0 IU. Free tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly/destructive hints, and the description adds engine-sha attestation, capability class C5, zero cost, and a same-binary-sha guarantee, going well beyond the structured fields. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with short labeled sections, front-loaded purpose, and each line (use cases, exclusions, path fit, cost) carries distinct value. No redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, use vs non-use, attestation behavior, cost, and integration path; output schema explains the return shape, so no gaps. The sibling context reinforces this is the discovery tool for the score_book family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters and the input schema is fully self-contained (100% coverage), so baseline 4 applies; no parameter-level documentation is necessary or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence uses a specific verb ('Enumerate') and resource ('model_ids the sealed engine exposes'), immediately differentiating this catalog tool from inference/billing siblings. It also defines the response's attestation component.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides 'Use when' and 'Do not use when' conditions, including when wiring a client for score_book calls and when hyperparameter detail is needed. The path-fit note distinguishes MCP validation from production in-process use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_render_bookRender Order Book TensorARead-onlyInspect
Render 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, or debug an unexpected entropy value by first confirming the tensor is well-formed.
Do not use when: You need an entropy score — this tool is prep-only. Call kirk_score_book to score.
Capability class(es): Local prep for the C2 (variable-universe cross-section entropy) workflow. No sealed-engine interaction; no capability class is exercised beyond the input-shape convention.
Path fit: Validation via MCP (this tool). The same tensor shape is what production in-process integrations consume under sealed-engine attestation.
Cost: 0 IU. Free tool.
| Name | Required | Description | Default |
|---|---|---|---|
| ask_px | Yes | 10 ask prices, level 1 first. | |
| bid_px | Yes | 10 bid prices, level 1 first. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable context: it is prep-only, has zero cost (0 IU), and does not interact with the sealed engine or exercise any capability class beyond input-shape convention.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than strictly necessary, but it is well-structured with clear sections (Purpose, Use when, Do not use when, Capability class, Path fit, Cost). The front-loaded first sentence carries the core meaning, and each subsequent section provides non-redundant useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 params, output schema, annotations), the description goes beyond minimum requirements by explaining the tool's role in the broader workflow (validation via MCP vs. production attestation), cost implications, and exact exclusions (no scoring). It is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for bid_px and ask_px. The description does not add parameter-level syntax but provides semantic context on how the arrays relate to the tensor convention (e.g., level 1 first, bid/ask levels), which is marginal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Render') and resource ('L2 order-book snapshot into the 20×20 complex128 thermometer tensor') and explicitly notes that it does NOT invoke the sealed engine. This clearly distinguishes it from sibling scoring tools like kirk_score_book.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'Use when' scenarios (sanity-checking bid/ask level convention, inspecting cell patterns, debugging entropy values) and a 'Do not use when' clause naming kirk_score_book as the alternative for scoring. This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_score_bookScore Single Order BookARead-onlyInspect
Score 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 workflow (rate-limited at 60 req/min per account).
Do not use when: You need throughput above interactive scale, or you are in a per-book loop from an LLM. MCP round-trip is millisecond-scale and inappropriate for latency-critical work. For >200 books, call kirk_bulk_howto first — the returned stdlib Python client scores at zero LLM tokens per iteration.
Capability class(es):
C2 (variable-universe cross-section entropy scoring — same model handles any N without retraining).
C5 (sealed engine sha stamped on every response).
C6 (bit-exact reproducibility across substrates; validated by the FY24 252-day reproduction, byte-identical on repeat runs).
Path fit: Validation via MCP (this tool). Production integrations run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options. MCP is a validation and discovery surface, not a latency-critical production path.
Cost: 1 IU per call. LLM tokens accrue on top for agent-driven callers.
| Name | Required | Description | Default |
|---|---|---|---|
| ask_px | Yes | 10 ask prices, level 1 first. Same NaN convention. | |
| bid_px | Yes | 10 bid prices, level 1 first. NaN allowed for missing levels. | |
| model_id | No | Registered single-layer model. Defaults to `kirk-test1-binary-threshold-v1`. | kirk-test1-binary-threshold-v1 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/destructive annotations, the description discloses rate limits (60 req/min), cost (1 IU per call), millisecond-scale latency, bit-exact reproducibility, and sealed-engine attestation. This gives agents a comprehensive understanding of operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with distinct sections (Purpose, Use when, Do not use when, Capability classes, Path fit, Cost). It is somewhat longer than minimal but every section provides relevant operational context, and the front-loaded summary sentence delivers the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's input/output behavior, performance characteristics, cost, limitations, and relationships to sibling tools. It is complete for an interactive single-snapshot scoring use case, and the presence of an output schema means return value detail is not strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add parameter-specific details beyond what the schema already documents, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Score one L2 order-book snapshot through the sealed single-layer path and return a scalar entropy plus engine attestation.' It uses specific verbs and resources, and distinguishes itself from siblings like kirk_score_book_batch by emphasizing single-snapshot scoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections provide clear guidance on when to invoke this tool versus alternatives. It explicitly directs users to kirk_bulk_howto for >200 books and notes that MCP is not for production or latency-critical work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_score_book_batchScore Batch of Order BooksARead-onlyInspect
Score 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 more than 500 books, or you are looping
this tool from an LLM. Batches >500 raise a structured
batch_too_large before any ledger debit. For sustained bulk work,
call kirk_bulk_howto — the stdlib Python client scores at zero LLM
tokens per iteration.
Capability class(es):
C2 (variable-universe cross-section entropy — heterogeneous batch shapes are handled by one model without retraining).
C5 (sealed engine sha stamped on every response).
C6 (bit-exact reproducibility across substrates and runs).
Path fit: Validation via MCP (this tool). Production bulk workloads run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options. The MCP round-trip is inappropriate for high-throughput consumption.
Cost: 1 IU per 50 books (minimum 1 IU per call). n≤50 → 1 IU; n=51..100 → 2 IU; a full 500-book batch → 10 IU. Validation tier — validation-scale limits. LLM-agent-scoped cap at 500 books; use kirk_bulk_howto for anything larger.
| Name | Required | Description | Default |
|---|---|---|---|
| books | Yes | list of book dicts (bid_px, ask_px, sizes...). Max 500 per call — larger batches raise a structured `batch_too_large` error pointing at kirk_bulk_howto. | |
| model_id | No | registered model_id (see kirk_list_models). | kirk-test1-binary-threshold-v1 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations already mark readOnlyHint=true and destructiveHint=false, the description adds substantial behavioral context: cost formula per 50 books, the exact error behavior for batches >500 ('batch_too_large' before any ledger debit), sealed-engine attestation, and reproducibility guarantees. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than typical (about 200 words) but well-structured with clear headings (Purpose, Use when, Do not use when, Capability classes, Path fit, Cost). The main purpose is front-loaded in the first sentence. Each section earns its place given the tool's complexity, though some parts like 'Path fit' could be trimmed for an MCP tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be detailed, but the description covers limits, cost, error handling, alternatives, and reproducibility. It is fully sufficient for an agent to select and invoke the tool correctly, even with the rich set of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some context around the 'books' parameter (e.g., max 500 and cost implications) but the schema already documents the list format and the batch_too_large error. No significant extra parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Score up to 500 L2 order-book snapshots in one MCP call — returns an entropies list plus engine attestation.' This clearly states what the tool does and its scope (batch of up to 500), distinguishing it from siblings like kirk_score_book (single) and kirk_bulk_howto (bulk).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Do not use when' sections provide clear context. The description names alternatives: kirk_bulk_howto for sustained bulk work, and notes the 500-book limit. This is textbook guidance on when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_score_l2_bookScore L2 Order Books (v2 contract)ARead-onlyInspect
Score 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 locked initial state at the first book and carries state forward across the rest, so a book's value depends on the books before it. State is never carried between calls. Sending the same books in a different order is a different measurement and will return different values; scoring N books one-per-call is NOT equivalent to one call of N books.
Use when: You are validating Kirk on full L2 snapshots. For the price-only v1 contract use kirk_score_book — the two are different envelopes and are not interchangeable.
Do not use when: You are looping this tool from an LLM. Call kirk_bulk_howto for bulk work; its v2 mode wraps this same call.
Cost: 1 IU per call.
| Name | Required | Description | Default |
|---|---|---|---|
| books | Yes | 1..500 books, scored in the order given. Each book is an object with exactly eight fields: bid_px and ask_px (10 values each, level 1 = best quote, running outward), bid_quantity, ask_quantity, bid_num_orders, ask_num_orders (8 values each, same ordering), and bid_level_count, ask_level_count (scalars). Every value must be a finite JSON number; this contract does not impute or tolerate gaps. | |
| model_id | No | A v2-contract model id. Defaults to kirk-l2-thermo-v2-e32-v1. | kirk-l2-thermo-v2-e32-v1 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses the stateful chain behavior: books are scored in order as a single fresh chain, state is not carried between calls, and order matters. It also states the cost (1 IU per call) and reiterates non-interchangeability with the v1 contract. The readOnlyHint annotation is consistent with the scoring action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear labeling (Purpose, State Policy, Use when, Do not use when, Cost). Some repetition of the state policy appears in multiple sections, but this is intentional to prevent misuse of the order-sensitive contract. Slightly verbose but acceptable given the critical caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, usage boundaries, stateful behavior, cost, and parameter constraints. It mentions the return type (per-book entropies plus engine attestation) but does not detail the output schema; however, since an output schema exists, this is not a significant gap. The sibling-tool context further clarifies when this tool should be preferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The books parameter is described in detail: 1..500 books, exact field structure (bid_px, ask_px, quantities, order counts, level counts), ordering semantics, and the requirement that every value be a finite JSON number. model_id is defined with its default. Schema coverage is 100% and the description enhances it with concrete usage constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Score a sequence of full L2 order books as one chain and return per-book entropies plus engine attestation.' It explicitly distinguishes this v2 book contract from the price-only v1 contract, making the tool's unique purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('validating Kirk on full L2 snapshots'), when not to use it ('looping this tool from an LLM'), and directs users to kirk_bulk_howto for bulk work. It also contrasts with kirk_score_book, leaving no ambiguity about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_score_randomScore Random Synthetic BooksARead-onlyInspect
Synthesize 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 market data.
Do not use when: You are scoring anything real — feed your own data through kirk_score_book_batch. Synthetic bids/asks are not benchmark input and should not appear in customer-visible results.
Capability class(es): C2 (uses the same variable-universe cross- section entropy path as kirk_score_book_batch, on synthetic input).
Path fit: Validation via MCP (this tool). Not a production surface.
Cost: 1 IU per invocation. Internally routes through kirk_score_book_batch — one metered dispatch, no double-metering.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | RNG seed for reproducibility. | |
| model_id | No | Registered single-layer model. | kirk-test1-binary-threshold-v1 |
| n_samples | No | How many books to synthesize + score. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds valuable behavioral context: cost per invocation (1 IU), internal routing through kirk_score_book_batch with no double-metering, and the caveat that synthetic data should not appear in customer-visible results. This goes beyond what annotations provide and sets clear expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Purpose, Use when, Do not use when, Capability, Path fit, Cost) and front-loaded with the primary purpose. It is slightly longer than strictly necessary but every section provides distinct value, making it efficient rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an output schema and rich annotations, this description is exceptionally complete: it covers purpose, usage alternatives, cost, internal routing, and restrictions. It explains the wrapper relationship and the non-production nature, leaving no critical gaps. The output schema handles return values, so the description's coverage is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (seed, model_id, n_samples) having clear descriptions and defaults. The description mentions 'N' in the text, aligning with n_samples, but adds no additional parameter-specific semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Synthesize N realistic-geometry L2 book snapshots and score them' and explicitly identifies it as a convenience wrapper on kirk_score_book_batch. This distinguishes it from siblings like kirk_score_book_batch (which scores real data) and provides a specific verb+resource+scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'Use when' and 'Do not use when' guidance, including use cases (wiring-check, first-integration walk-through) and exclusions (scoring anything real, synthetic bids/asks not for customer-visible results). It also names the alternative tool (kirk_score_book_batch) directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kirk_verify_engineVerify Kirk Engine IdentityARead-onlyInspect
Verify 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 kirk_list_models identifies its own engine, and every scoring response restates it under engine.sha. For a model bound to a non-default engine (kirk-market-orderbook-v1) these differ. Record the per-model value for provenance, not this one. Secondary role: a cheap liveness probe when wiring up MCP.
Use when: You want to record engine sha in your own provenance log before capturing scoring output, or you want a cheap liveness check ahead of a larger validation batch.
Do not use when: You want a scoring result — this returns identity/liveness only, no entropies.
Capability class(es): C5 (cryptographic attestation of engine identity).
Path fit: Validation via MCP (this tool). Production integrations run in-process under sealed-engine attestation — same binary sha as this endpoint. Contact Kavara for deployment options.
Cost: 0 IU. Free tool. For agent-driven callers, the _cost envelope still reports iu_this_call=0 and the running session totals.
Returns:
Dict with status, engine, env, and kirk_version (the
sealed .so sha). A non-2xx response raises; caller sees a
clean MCP tool error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark read-only and non-destructive, but the description adds crucial behavioral nuance: the returned default engine sha may differ from the per-model engine sha, responses restate engine.sha, and non-2xx responses raise clean MCP errors. This goes well beyond annotation basics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and organized into clear sections. It is longer than strictly necessary, with occasional repetition around liveness probing and cost, but the extra detail about engine sha provenance is valuable enough to justify the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive for a zero-parameter, read-only tool. Covers purpose, liveness role, return fields, cost, error behavior, and the critical distinction between default and per-model engine hashes. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly focuses on return semantics and usage context instead of inventing parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action: verify sealed engine identity and return the sha256 of the running scoring binary. Clearly distinguishes itself from sibling scoring tools by emphasizing this is identity/liveness only and returns no entropies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides 'Use when' and 'Do not use when' guidance, including when to record provenance and when to use it as a liveness check. It also names the scoring-result exclusion, which prevents confusion with kirk_score_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
kirk_score_l2_book4 fields changed- removed
Input schema / properties / bookRemoved value: -{ - "additionalProperties": true, - "description": "One snapshot as a flat mapping of the envelope's columns to\nfloats. Prices are 10 levels per side (level 1 = best quote);\nsizes and order counts are 8 levels per side. Every column must be\npresent and finite — this envelope does not impute or tolerate\ngaps. Call kirk_list_models for the envelope hash.", - "type": "object" -} - added
Input schema / properties / booksAdded value: +{ + "description": "1..500 books, scored in the order given. Each book is an object\nwith exactly eight fields: bid_px and ask_px (10 values each,\nlevel 1 = best quote, running outward), bid_quantity, ask_quantity,\nbid_num_orders, ask_num_orders (8 values each, same ordering), and\nbid_level_count, ask_level_count (scalars). Every value must be a\nfinite JSON number; this contract does not impute or tolerate gaps.", + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" +} - changed
Input schema / properties / model_id / descriptionPrevious value: -"A v2-envelope model id. Defaults to kirk-l2-thermo-v2-e32-v1."New value: +"A v2-contract model id. Defaults to kirk-l2-thermo-v2-e32-v1." - changed
Input schema / requiredPrevious value: -[ - "book" -]New value: +[ + "books" +]
1 tool update
- Added
kirk_score_l2_book
2 tool updates
- Removed
kirk_healthz - Added
kirk_verify_engine
1 tool update
- Changed
kirk_score_book1 field changed- changed
Input schema / properties / model_id / descriptionPrevious value: -"Registered single-layer model. Defaults to the reference\nTest-1 winner (`kirk-test1-binary-threshold-v1`)."New value: +"Registered single-layer model. Defaults to\n`kirk-test1-binary-threshold-v1`."
2 tool updates
- Added
kirk_demo_trading - Added
kirk_demo_uav
1 tool update
- Removed
kirk_sweep_test1_day
1 tool update
- Changed
kirk_score_book1 field changed- changed
Input schema / properties / model_id / descriptionPrevious value: -"Registered single-layer model. Defaults to the Jarett\nTest-1 winner (`kirk-test1-binary-threshold-v1`)."New value: +"Registered single-layer model. Defaults to the reference\nTest-1 winner (`kirk-test1-binary-threshold-v1`)."
Related MCP Connectors
Detect causal dependencies in time series
Market phase transition signals for HS300 and BTC via MCP
Regime-aware ES1/NQ futures trading signals. HMM + 15 quant strategies. x402 USDC micropayments.
Crypto market intelligence: regime detection, funding rates, liquidations, prices, signals.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceFuses five market signals into a five-state regime classifier to determine market conditions and recommend trading postures for risk management.MIT

AletaIndex Narrativeofficial
AlicenseAqualityBmaintenanceReal-time financial narrative tracking for AI agents — clustering news into structured narratives, measuring sentiment momentum, and mapping portfolio risk across 109 US equities.22Apache 2.0- AlicenseNot gradedqualityBmaintenanceReal-time conversation health monitor for AI agents that tracks structural dynamics like semantic drift and information gain using deterministic arithmetic, without calling an LLM.MIT
- AlicenseAqualityAmaintenanceGlass-box statistical analysis for time series and business data: 19 research-grade methods, cited findings, and measured detector false-fire rates shipped as a calibration corpus. Agents cite real math instead of inventing it.769 PyPI5Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.