Skip to main content
Glama

Kirk — Unsupervised Structural Change Detection

Get Bulk Scoring Client

kirk_bulk_howto
Read-only

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) }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.