costwright
Provides static worst-case token-budget analysis for CrewAI workflows in Python repos, identifying certifiable, default-dependent, non-certifiable, and runaway units.
Provides static worst-case token-budget analysis for LangGraph workflows in Python repos, identifying certifiable, default-dependent, non-certifiable, and runaway units.
Provides static worst-case token-budget analysis for OpenAI Agents SDK workflows in Python repos, identifying certifiable, default-dependent, non-certifiable, and runaway units.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@costwrightcheck my LangGraph project for token budget issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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? |
| Static budget analysis of a local repo. Returns pass/fail + counts of certifiable/default-dependent/non-certifiable/runaway units. | yes |
| Issues a signed, logged budget certificate. Returns cert_id + signature + verify_url. | yes |
| Verify a certificate by id (valid/expired/revoked, signature check). | public |
| 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 toolscostwright_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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional human label for the certificate. | |
| policy | No | default | |
| repo_path | Yes | Absolute path to the local Python repo/directory to certify. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| policy | No | Analysis policy. | default |
| repo_path | Yes | Absolute path to the local Python repo/directory to analyze. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cert_id | Yes | The certificate id to verify. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.1.1- First observed
costwright_certify - First observed
costwright_check - First observed
costwright_pubkey - First observed
costwright_verify
TDQS
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.
All tools follow the consistent pattern 'costwright_' plus a verb or noun suffix (check, certify, pubkey, verify), making them easy to distinguish and predict.
With 4 tools, the server is well-scoped for its purpose of budget certification. Each tool is necessary and sufficient for the core workflow.
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
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
An effect gate for AI agents: at-most-once side effects, spend limits, and signed receipts.
Codebase intelligence for agents: 152 structured artifacts across 21 programs, one call.
Formally-verified injection/exfiltration detector for AI agents (MCP-02).
Decision-assurance for AI agents: an auditable action boundary + receipt before it acts.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceTACIT (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,77Apache 2.0
- AlicenseAqualityAmaintenanceRuntime 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.990Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA 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.11Business Source 1.1
- AlicenseNot gradedqualityAmaintenanceA 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.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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