Nanotoll MCP
7 agent tools (prune, convert, estimate, diff, patch, generate, validate). USDC on Base L2.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"nanotoll-mcp": {
"url": "https://mcp.nanotoll.dev/mcp"
}
}
}Remote-Endpunkte
https://mcp.nanotoll.dev/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (8)
🟢prune(comment_prefix, payload, remove_empty_lines)
Strip comments and empty lines from text to reduce token count before sending to an LLM. Returns the pruned text and character metrics. Requires a valid API key (Bearer token); billing is per input character — insufficient balance returns HTTP 402. For format conversion use `convert`, for generating llms.txt use `generate`.
Eingabe-Schema
{
"type": "object",
"properties": {
"comment_prefix": {
"description": "Optional. Explicit comment-line prefix to strip outside code fences (e.g. '//' for C-style code). Omit for format-aware pruning: markdown '#' headings are preserved (v101 #12 note), no line stripping on plain text. Max 64 bytes, no control chars.",
"type": "string"
},
"payload": {
"description": "Text to prune (1 char min, 10 MiB max).",
"type": "string"
},
"remove_empty_lines": {
"default": true,
"description": "If true, empty lines outside code fences are removed.",
"type": "boolean"
}
},
"required": [
"payload"
]
}🟢convert(from_format, payload, to_format)
Transform text between JSON, YAML, TOML, and CSV formats. Returns the converted text and input/output character metrics. Note some conversions can be lossy (e.g. JSON to CSV flattens nested structures). Requires a valid API key (Bearer token); billing is per input character — insufficient balance returns HTTP 402. For removing comments use `prune`, for generating llms.txt use `generate`.
Eingabe-Schema
{
"type": "object",
"properties": {
"from_format": {
"description": "Source format of the input payload.",
"enum": [
"json",
"yaml",
"toml",
"csv"
],
"type": "string"
},
"payload": {
"description": "Text to convert (1 char min, 10 MiB max).",
"type": "string"
},
"to_format": {
"description": "Target format to convert into.",
"enum": [
"json",
"yaml",
"toml",
"csv"
],
"type": "string"
}
},
"required": [
"payload",
"from_format",
"to_format"
]
}🟢estimate(input_tokens, model, output_tokens)
Estimate the USD cost of an LLM API call using the CWEP four-flow model (request generation, request processing, response generation, response reception). Returns a JSON object with the per-flow cost breakdown, the total, and the pricing source date. Unknown model names return HTTP 422 — check GET /api/v1/pricing on costa.nanotoll.dev for the supported list (no auth needed). Requires a valid API key (Bearer token); billing is per input character.
Eingabe-Schema
{
"type": "object",
"properties": {
"input_tokens": {
"description": "Number of input (prompt) tokens.",
"minimum": 0,
"type": "integer"
},
"model": {
"description": "Model name (e.g. gpt-4o).",
"type": "string"
},
"output_tokens": {
"description": "Number of output (completion) tokens.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"model",
"input_tokens",
"output_tokens"
]
}🟢diff(text_a, text_b)
Generate a unified diff between two text versions (the before and after). Returns the diff text plus metrics (lines added, lines removed, output chars). Requires a valid API key (Bearer token); billing is per combined input characters. To apply a diff, use `patch`.
Eingabe-Schema
{
"type": "object",
"properties": {
"text_a": {
"description": "First text version (the \"before\" text).",
"type": "string"
},
"text_b": {
"description": "Second text version (the \"after\" text).",
"type": "string"
}
},
"required": [
"text_a",
"text_b"
]
}🟡patch(patch, text)
Apply a unified diff patch to text, producing the transformed output. Returns the patched text. Requires a valid API key (Bearer token); billing is per combined input characters. To generate a diff, use `diff`.
Eingabe-Schema
{
"type": "object",
"properties": {
"patch": {
"description": "Unified diff patch text.",
"type": "string"
},
"text": {
"description": "Original text to apply the patch to.",
"type": "string"
}
},
"required": [
"text",
"patch"
]
}🟢generate(endpoints, links, name, overview, pricing, ...)
Generate an llms.txt agent-discovery file from structured service metadata (name, endpoints, overview, links, pricing). Returns the llms.txt content and output metrics. Requires a valid API key (Bearer token); billing is per input character. To check an existing llms.txt for spec compliance, use `validate`.
Eingabe-Schema
{
"type": "object",
"properties": {
"endpoints": {
"description": "API endpoints to list in the llms.txt. Each item has method, path, and description.",
"items": {
"properties": {
"description": {
"description": "What the endpoint does.",
"type": "string"
},
"method": {
"description": "HTTP method (GET, POST, etc.).",
"type": "string"
},
"path": {
"description": "Endpoint path (e.g. /api/v1/squeeze).",
"type": "string"
}
},
"required": [
"method",
"path",
"description"
],
"type": "object"
},
"type": "array"
},
"links": {
"description": "Optional related links (docs, source, etc.). Each item has title and url.",
"items": {
"properties": {
"title": {
"description": "Display text for the link.",
"type": "string"
},
"url": {
"description": "Target URL.",
"format": "uri",
"type": "string"
}
},
"required": [
"title",
"url"
],
"type": "object"
},
"type": "array"
},
"name": {
"description": "Service name (H1 title of the llms.txt file).",
"type": "string"
},
"overview": {
"description": "Paragraphs of prose describing the service. Each array element becomes a paragraph in the llms.txt Overview section.",
"items": {
"type": "string"
},
"type": "array"
},
"pricing": {
"description": "Pricing summary string (e.g. \"$0.0002 per call\"). Pass null to omit.",
"type": [
"string",
"null"
]
},
"tagline": {
"description": "One-line summary of the service, shown as a subtitle below the H1. Pass null to omit.",
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"endpoints"
]
}🟢validate(content)
Validate an llms.txt payload for spec compliance (H1 title, endpoints section, pricing section, structure). Returns a validation report with errors, warnings, and structural flags. Requires a valid API key (Bearer token); billing is per input character. To generate new llms.txt, use `generate`.
Eingabe-Schema
{
"type": "object",
"properties": {
"content": {
"description": "llms.txt content to validate.",
"type": "string"
}
},
"required": [
"content"
]
}🟢read(include_links, max_tokens, preserve_tables, url)
Fetch a web page and return clean GitHub-flavored markdown at a strict token budget. DOM-density scoring strips boilerplate (CSS, JS, navbars, tracking) — raw HTML averages 80-95% noise. Requires a valid API key (Bearer token); billing is $0.0005 flat per read — insufficient balance returns HTTP 402. Fetch failures return HTTP 422 and are refunded.
Eingabe-Schema
{
"type": "object",
"properties": {
"include_links": {
"default": true,
"description": "If true, hyperlinks are kept as markdown links.",
"type": "boolean"
},
"max_tokens": {
"description": "Optional token budget — markdown is truncated to this many estimated tokens. Omit for full page.",
"minimum": 1,
"type": "integer"
},
"preserve_tables": {
"default": true,
"description": "If true, HTML tables are preserved as GFM tables.",
"type": "boolean"
},
"url": {
"description": "URL of the web page to fetch and convert to markdown.",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
]
}Community
Nachweis