Nanotoll MCP

7 agent tools (prune, convert, estimate, diff, patch, generate, validate). USDC on Base L2.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
100%
이름 품질
90%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,788토큰 (도구 정의)
~1.4 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.40%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "nanotoll-mcp": {
      "url": "https://mcp.nanotoll.dev/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.nanotoll.dev/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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`.

입력 스키마

{
  "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`.

입력 스키마

{
  "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.

입력 스키마

{
  "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`.

입력 스키마

{
  "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`.

입력 스키마

{
  "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`.

입력 스키마

{
  "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`.

입력 스키마

{
  "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.

입력 스키마

{
  "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"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 8개
검증됨버전이 기록되지 않음도구 8개
검증됨버전이 기록되지 않음도구 8개