Skip to main content
Glama

costwright — MCP server

Static worst-case token-budget analysis for LLM-agent workflows. Point it at a Python repo using LangGraph / CrewAI / OpenAI-Agents-SDK and it reports — by pure AST analysis, without running the code — the worst-case budget ceiling of every workflow graph: which units are certifiable / default-dependent / non-certifiable / runaway, and which LLM calls have no token cap. Optionally issues an Ed25519-signed budget certificate logged to a public transparency log. Wraps the hosted costwright API; backed by a Lean 4 cost-soundness theorem.

Use it before deploying an agent workflow to catch missing token caps and while True: runaway drivers — the budget version of a type check.

Tools

Tool

What it does

Key?

costwright_check(repo_path, policy?)

Static budget analysis of a local repo. Returns pass/fail + counts of certifiable/default-dependent/non-certifiable/runaway units.

yes

costwright_certify(repo_path, policy?, label?)

Issues a signed, logged budget certificate. Returns cert_id + signature + verify_url.

yes

costwright_verify(cert_id)

Verify a certificate by id (valid/expired/revoked, signature check).

public

costwright_pubkey()

Active Ed25519 public keys for offline verification.

public

Related MCP server: cycles-mcp-server

Setup

{
  "mcpServers": {
    "costwright": {
      "command": "npx",
      "args": ["-y", "costwright-mcp"],
      "env": { "COSTWRIGHT_API_KEY": "your_rapidapi_key" }
    }
  }
}

The key is sent as X-RapidAPI-Key (RapidAPI channel) by default; set COSTWRIGHT_DIRECT=1 to send it as Authorization: Bearer for the direct channel. verify and pubkey work with no key.

check/certify build a .py-only gzip archive of repo_path client-side (excluding venv, node_modules, tests, etc.) and send it for analysis — your source is uploaded to the hosted API. See https://eleata.io/privacy/. MIT licensed.

Available Tools

4 tools
costwright_certifyA

Issue a tamper-evident, Ed25519-signed budget certificate for an agent repo (re-run server-side, logged to a public transparency log). Same input as costwright_check plus an optional label. Returns the cert_id, the signed certificate and a verify_url. Use to produce an auditable proof of a workflow's worst-case spend ceiling.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional human label for the certificate.
policyNodefault
repo_pathYesAbsolute path to the local Python repo/directory to certify.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key traits: tamper-evident, Ed25519-signed, server-side re-run, logged to public transparency log. With no annotations, description carries burden and does well, though prerequisites (auth, network) are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and key features. No extraneous information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, key features, and return values (cert_id, signed cert, verify_url). No output schema, but description compensates. Missing detail on 'policy' but overall sufficient for a certification tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% but description adds little beyond 'same input as check plus label'. Does not explain 'policy' enum values (default vs strict) or the meaning of 'label'. Relies heavily on schema which is minimal.

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?

Clearly states it issues a tamper-evident Ed25519-signed budget certificate. Distinguishes from siblings by mentioning same input as costwright_check plus optional label and specific returns (cert_id, signed cert, verify_url).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use for auditable proof of spend ceiling and compares to costwright_check, but does not explicitly contrast with costwright_pubkey or costwright_verify. Lacks explicit when-to-use vs when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

costwright_checkA

Statically analyze an LLM-agent repo (LangGraph / CrewAI / OpenAI-Agents-SDK) for runaway-budget risk WITHOUT running it. Builds a .py-only archive of the given local path and returns a worst-case budget summary: counts of certifiable / default_dependent / non_certifiable / runaway graph units and a pass|fail verdict. Use before deploying a workflow to catch missing token caps and while-True runaway drivers.

ParametersJSON Schema
NameRequiredDescriptionDefault
policyNoAnalysis policy.default
repo_pathYesAbsolute path to the local Python repo/directory to analyze.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool builds a .py-only archive, performs static analysis, and returns a summary with counts and verdict. Some details like file size limits or performance are missing, but the key behaviors are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover purpose, operation, and usage context with no fluff. Front-loaded with the core action ('Statically analyze') and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and two simple parameters, the description provides sufficient context: output includes categorized counts and a verdict. Could be slightly more explicit about output format, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters have descriptions. The description does not add additional semantics beyond the schema, but the baseline of 3 is appropriate since it doesn't contradict or confuse.

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 clearly states the tool's purpose: static analysis of LLM-agent repos for runaway-budget risk, specifying supported frameworks and output summary categories. This differentiates well from siblings (certify, pubkey, verify).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('before deploying a workflow') and that it runs without executing code. However, no explicit when-not-to-use or alternative tools are mentioned, so it loses a point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

costwright_pubkeyA

Fetch costwright's active Ed25519 public keys (PEM) for offline signature verification of any certificate (public, no key).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It mentions 'active Ed25519 public keys (PEM)' and 'public, no key' indicating no authentication. It does not specify number of keys or format details, but for a simple fetch it is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence with no filler. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description covers purpose, format, and usage. It could be more specific about the return structure, but is adequate for a simple public key fetch tool.

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?

There are no parameters, and schema description coverage is 100% trivial. The description adds no parameter info, but that is appropriate given no parameters exist. Baseline for 0 params is 4.

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 clearly states the verb 'Fetch', resource 'costwright's active Ed25519 public keys (PEM)', and purpose 'for offline signature verification'. It distinguishes itself from sibling tools (e.g., costwright_verify) by indicating it provides the keys needed for verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing public keys for offline verification, and contrasts with siblings (certify, check, verify). However, it does not explicitly state when not to use it or provide alternative scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

costwright_verifyA

Verify a previously issued costwright certificate by id (public, no key). Returns its state (valid|expired|revoked|signature_invalid), whether the signature checks out, and the certified result.

ParametersJSON Schema
NameRequiredDescriptionDefault
cert_idYesThe certificate id to verify.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully covers behavior. It clearly states the operation is a read-only verification (no key needed), returns state, signature check, and certified result. It does not mention idempotency or error handling, but for a simple verification tool, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-structured sentence that efficiently conveys purpose, scope, and output. No extraneous words; every part contributes value.

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 simple verification tool with one parameter and no output schema, the description provides sufficient context: what the tool does, how it is used (public, by ID), and what it returns (state, signature, result). It is complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description 'The certificate id to verify.' The tool's description adds no additional meaning to the parameter beyond what the schema provides, thus baseline score of 3 is appropriate.

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 clearly states the verb 'verify', the resource 'costwright certificate by id', and adds context 'public, no key'. It distinguishes from sibling tools like costwright_certify (issuance) and costwright_pubkey (key retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates this tool is for verifying a specific certificate ID and notes it is public without a key, implying no authentication needed. However, it does not explicitly state when to use this tool versus its sibling 'costwright_check', which might have overlapping functionality.

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. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.1
    • First observedcostwright_certify
    • First observedcostwright_check
    • First observedcostwright_pubkey
    • First observedcostwright_verify

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: check analyzes budget risk, certify issues a certificate, pubkey retrieves public keys, and verify validates a certificate. No overlap in functionality.

Naming Consistency5/5

All tools follow the consistent pattern 'costwright_' plus a verb or noun suffix (check, certify, pubkey, verify), making them easy to distinguish and predict.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose of budget certification. Each tool is necessary and sufficient for the core workflow.

Completeness4/5

The set covers the essential operations: checking, certifying, verifying, and key retrieval. Minor gaps like revocation or listing are not critical for the primary use case.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    TACIT (Tracked Agent Capabilities In Types) is a safety harness for AI agents. Instead of calling tools directly, agents write code in Scala 3 with capture checking: a type system that statically tracks capabilities and enforces that agent code cannot forge access rights, cannot perform effects beyond its budget, and cannot leak information from pure sub-computations. It provides an MCP interface,
    77
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Runtime budget authority for autonomous agents - a set of tools to check, reserve, spend, and release budget before and after every costly, risky operation. The agent asks "can I afford this?" before acting, and reports what it actually used afterward.
    9
    90
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A deterministic AST evidence engine that forces AI agents to debug using verified execution facts instead of pattern-matching symptoms, enabling hallucination-free debugging for MCP-compatible agents.
    11
    Business Source 1.1
  • A
    license
    Not graded
    quality
    A
    maintenance
    A runtime gate for coding agents. Blocks the tool calls that wreck a repo (force-push main, rm -rf, secret exfiltration, CI wipe) and lets normal build and commit work through. Machine-checked git-branch core (z3); the rest is high-precision heuristics. Tested on 3,790 real CI commands, 0 false blocks.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hernaninverso/costwright-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server