Measured agent costs, a one-page agent summary check, and an offline access map. No sign-in.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Checks the structure of a one-page agent summary written from Agent Blueprint's template (https://agentblueprint.ai/agent-one-page-template): all eight sections present and in order, a stage line, every rule ending in "Enforced by:" or "Not enforced:", every Open item naming who decides, no template placeholders left, and length within one page. It checks shape only, not whether the answers are right. The text is checked and returned findings only; it is not stored.
The full one-page summary as Markdown.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http agent-blueprint https://agentblueprint.ai/mcp
Checks the structure of a one-page agent summary written from Agent Blueprint's template (https://agentblueprint.ai/agent-one-page-template): all eight sections present and in order, a stage line, every rule ending in "Enforced by:" or "Not enforced:", every Open item naming who decides, no template placeholders left, and length within one page. It checks shape only, not whether the answers are right. The text is checked and returned findings only; it is not stored.
| Argument | Type | Description |
|---|---|---|
| markdown* | string | The full one-page summary as Markdown. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"markdown"
],
"properties": {
"markdown": {
"type": "string",
"maxLength": 60000,
"minLength": 1,
"description": "The full one-page summary as Markdown."
}
}
}Estimates the tokens and dollar cost of an AI agent task from the measured benchmark job closest to it. For jobs where cost grows with how much the agent reads, give the size of the real input and it scales the reading part while keeping the agent's fixed overhead. Returns a typical and a budget (worst-case) figure per run and, if runs per month are given, per month. Uses the benchmark-day prices unless current prices are passed. The result is an estimate from small test jobs, not a quote.
| Argument | Type | Description |
|---|---|---|
| job* | string | The closest benchmark job id, from list_benchmark_jobs. |
| agent* | string | Which measured agent to base the estimate on. |
| prices | object | Current model prices in US dollars per million tokens. Leave out to use the benchmark-day prices. |
| your_size | number | Size of the real input in the job's unit (words, or rows for the clean job). Ignored for jobs that don't scale. |
| runs_per_month | integer | How many times a month the job runs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"job",
"agent"
],
"properties": {
"job": {
"enum": [
"sql",
"refactor",
"bughunt",
"analysis",
"clean",
"feature",
"triage200",
"replies",
"corpus",
"longdoc"
],
"type": "string",
"description": "The closest benchmark job id, from list_benchmark_jobs."
},
"agent": {
"enum": [
"claude",
"codex"
],
"type": "string",
"description": "Which measured agent to base the estimate on."
},
"prices": {
"type": "object",
"required": [
"input_per_million",
"cached_input_per_million",
"output_per_million"
],
"properties": {
"input_per_million": {
"type": "number",
"minimum": 0
},
"output_per_million": {
"type": "number",
"minimum": 0
},
"cached_input_per_million": {
"type": "number",
"minimum": 0
}
},
"description": "Current model prices in US dollars per million tokens. Leave out to use the benchmark-day prices."
},
"your_size": {
"type": "number",
"maximum": 1000000000,
"description": "Size of the real input in the job's unit (words, or rows for the clean job). Ignored for jobs that don't scale.",
"exclusiveMinimum": 0
},
"runs_per_month": {
"type": "integer",
"maximum": 10000000,
"description": "How many times a month the job runs.",
"exclusiveMinimum": 0
}
}
}Lists the ten everyday jobs in Agent Blueprint's measured agent cost benchmark (2 November 2026): what each job was, how big its input was, and the typical and worst-case tokens and dollar cost measured over five runs each on Claude Code and Codex. Use it to find the benchmark job closest to a task someone wants an agent to do, before estimating that task's cost.
| Argument | Type | Description |
|---|---|---|
| agent | string | Only show one agent's measurements. Leave out to show both. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"agent": {
"enum": [
"claude",
"codex"
],
"type": "string",
"description": "Only show one agent's measurements. Leave out to show both."
}
}
}Turns an agent's own inventory of its connections into Agent Blueprint's one-page access map: a single offline HTML page showing what the agent can read and change, who has to approve, its riskiest powers, and what could be trimmed. The agent supplies the inventory from its own tool list; this tool only draws it. Returns the HTML for the person to save, such as my-agent-blueprint.html. The inventory is not stored. The field guide is at https://agentblueprint.ai/draw.md.
| Argument | Type | Description |
|---|---|---|
| trim* | array | |
| agent* | object | |
| drawn* | string | |
| checks* | object | |
| unseen* | string | |
| version* | string | |
| connections* | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"version",
"agent",
"drawn",
"connections",
"checks",
"unseen",
"trim"
],
"properties": {
"trim": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"kind",
"tools",
"why"
],
"properties": {
"why": {
"type": "string",
"maxLength": 300
},
"kind": {
"enum": [
"duplicate",
"overlap"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 40
},
"tools": {
"type": "integer",
"maximum": 1000,
"minimum": 0
}
}
},
"maxItems": 30
},
"agent": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"model": {
"type": "string",
"maxLength": 80
},
"product": {
"type": "string",
"maxLength": 80
}
}
},
"drawn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"checks": {
"type": "object",
"required": [
"commands",
"messages",
"delete",
"money",
"secrets"
],
"properties": {
"money": {
"type": "object",
"required": [
"status",
"evidence"
],
"properties": {
"status": {
"enum": [
"yes",
"none_found",
"unsure"
],
"type": "string"
},
"evidence": {
"type": "string",
"maxLength": 300
}
}
},
"delete": {
"type": "object",
"required": [
"status",
"evidence"
],
"properties": {
"status": {
"enum": [
"yes",
"none_found",
"unsure"
],
"type": "string"
},
"evidence": {
"type": "string",
"maxLength": 300
}
}
},
"secrets": {
"type": "object",
"required": [
"status",
"evidence"
],
"properties": {
"status": {
"enum": [
"yes",
"none_found",
"unsure"
],
"type": "string"
},
"evidence": {
"type": "string",
"maxLength": 300
}
}
},
"commands": {
"type": "object",
"required": [
"status",
"evidence"
],
"properties": {
"status": {
"enum": [
"yes",
"none_found",
"unsure"
],
"type": "string"
},
"evidence": {
"type": "string",
"maxLength": 300
}
}
},
"messages": {
"type": "object",
"required": [
"status",
"evidence"
],
"properties": {
"status": {
"enum": [
"yes",
"none_found",
"unsure"
],
"type": "string"
},
"evidence": {
"type": "string",
"maxLength": 300
}
}
}
}
},
"unseen": {
"type": "string",
"maxLength": 600
},
"version": {
"type": "string",
"const": "0.2"
},
"connections": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"icon",
"basis",
"asks",
"risk",
"reads",
"changes",
"unsure"
],
"properties": {
"asks": {
"type": [
"boolean",
"null"
]
},
"icon": {
"enum": [
"mail",
"chat",
"calendar",
"code",
"files",
"terminal",
"web",
"doc",
"data",
"money",
"plug"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 40
},
"risk": {
"enum": [
"normal",
"high"
],
"type": "string"
},
"basis": {
"enum": [
"declared",
"judged"
],
"type": "string"
},
"reads": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 300
},
"unsure": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 300
},
"changes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 300
}
}
},
"maxItems": 60,
"minItems": 1
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.