{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "payment-platforms",
    "endpoint": "https://mcp.entroute.com/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/entroute.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/entroute.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/entroute.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 1100,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 4
        },
        "findings": [
          {
            "rule": "TC13",
            "severity": "warn",
            "tool": "call_paid_api",
            "message": "body (object with no properties)",
            "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "call_paid_api",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "discover_paid_api",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "list_capabilities",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "3 of 3 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:22:42Z",
      "count": 3,
      "note": "answered without the initialize handshake",
      "schemaTokens": 1100,
      "status": "ok",
      "tools": [
        {
          "name": "discover_paid_api",
          "description": "Discover pay-per-request API endpoints for a given capability.\n\nReturns ranked, verified endpoints with pricing and reliability metrics.\nUse this to find APIs before calling them. The results include:\n- Endpoint URL and method\n- Price per call and payment network\n- Success rate and latency metrics\n- Provider information\n- sample_request / sample_response: Example request body and response showing the exact parameter names and format the endpoint expects. ALWAYS use sample_request as your template when calling the endpoint — do not guess parameter names.\n\nAfter discovering, you can use call_paid_api to execute the endpoint.\n\nTrust \u0026 safety:\n- \"Verified\" means the endpoint returns a valid x402 402 response -- it does not guarantee the quality or accuracy of the data returned after payment.\n- Endpoints are probed every 10 minutes. Check last_verified and success_rate to gauge reliability.\n- Fallback endpoints (unverified) have failed recent verification checks -- use with caution.\n- Prefer endpoints with success_rate \u003e95% and verification within the last 24 hours.",
          "inputSchema": {
            "properties": {
              "capability_id": {
                "description": "Explicit capability ID if known (e.g., \"weather.current\", \"translate.text\"). Alternative to intent for precise matching.",
                "type": "string"
              },
              "intent": {
                "description": "Natural language description of what you want to do (e.g., \"get current weather for London\", \"translate text to Spanish\"). Provide this or capability_id.",
                "type": "string"
              },
              "limit": {
                "description": "Maximum number of endpoints to return (default: 5)",
                "type": "number"
              },
              "max_price": {
                "description": "Maximum price per request in USD (e.g., 0.01 for 1 cent)",
                "type": "number"
              },
              "network": {
                "description": "Required blockchain network for payment",
                "enum": [
                  "base",
                  "ethereum",
                  "solana",
                  "polygon",
                  "arbitrum"
                ],
                "type": "string"
              },
              "ranking_preset": {
                "description": "Ranking preference preset",
                "enum": [
                  "default",
                  "reliability",
                  "speed",
                  "budget",
                  "balanced"
                ],
                "type": "string"
              }
            },
            "required": [
              "intent"
            ],
            "type": "object"
          }
        },
        {
          "name": "list_capabilities",
          "description": "List available API capability types.\n\nUse this to explore what kinds of APIs are available in the registry.\nYou can filter by tag (e.g., \"weather\", \"translation\") or search by keyword.\n\nNote: A capability existing does not mean verified endpoints are available for it. Use discover_paid_api to check for live endpoints.",
          "inputSchema": {
            "properties": {
              "search": {
                "description": "Search capabilities by keyword",
                "type": "string"
              },
              "tag": {
                "description": "Filter by tag (e.g., \"weather\", \"translation\", \"finance\")",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        {
          "name": "call_paid_api",
          "description": "Call a previously discovered API endpoint.\n\nUse this after discover_paid_api to execute the request.\n\nIMPORTANT: You must first use discover_paid_api to find an endpoint.\nThen use the endpoint_id from the discovery result.\nUse the sample_request from the discovery result as your body template — it shows the exact parameter names the endpoint expects. Replace the example values with the actual values you need.\n\nPayment: this hosted server holds no wallet, so it cannot settle x402 payments. Free\nendpoints return their data directly. Paid endpoints return the payment challenge\n(amount, recipient, network) without charging anything. To pay automatically, run the\nlocal server instead: npx @entroute/mcp-server with EVM_PRIVATE_KEY set.\n\nTrust \u0026 safety:\n- EntRoute verifies that endpoints return valid 402 responses every 10 minutes, but does not guarantee response quality or accuracy. Treat results like any third-party API.\n- Prefer endpoints with high success rates (\u003e95%) and recent verification timestamps.",
          "inputSchema": {
            "properties": {
              "body": {
                "additionalProperties": true,
                "description": "Request body (for POST/PUT/PATCH)",
                "type": "object"
              },
              "endpoint_id": {
                "description": "The endpoint_id from a previous discover_paid_api result",
                "type": "string"
              },
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Additional headers to include in the request",
                "type": "object"
              },
              "method": {
                "description": "HTTP method (defaults to endpoint method)",
                "enum": [
                  "GET",
                  "POST",
                  "PUT",
                  "PATCH",
                  "DELETE"
                ],
                "type": "string"
              },
              "query_params": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Query parameters to append to URL",
                "type": "object"
              }
            },
            "required": [
              "endpoint_id"
            ],
            "type": "object"
          }
        }
      ]
    },
    "name": "EntRoute",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": null,
    "pageJsonUrl": "https://www.anchorterminal.com/tools/entroute.json",
    "popularity": {
      "githubStars": 1
    },
    "registryName": "com.entroute/entroute",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://mcp.entroute.com/mcp"
      }
    ],
    "repository": "https://github.com/entroute/mcp-server",
    "reviewed": false,
    "slug": "entroute",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.entroute/entroute",
    "summary": "Discover and call pay-per-request (x402) APIs, ranked by reliability, latency and price.",
    "updatedAt": "2026-07-25T16:16:44Z",
    "url": "https://www.anchorterminal.com/tools/entroute",
    "vendor": "entroute.com",
    "vendorUrl": "https://entroute.com",
    "version": "0.1.0",
    "websiteUrl": "https://entroute.com",
    "where": "hosted",
    "why": [
      "vendor"
    ]
  }
}
