[
  {
    "name": "hatchloop-tools-mcp",
    "description": "Zero-auth MCP server exposing 7 developer utilities via Streamable HTTP (JSON-RPC 2.0). Single endpoint, all tools. Recommended entry point for agents using the MCP protocol.",
    "endpoint": "https://hatchloop.dev/mcp",
    "method": "POST",
    "protocol": "MCP 2024-11-05 (Streamable HTTP)",
    "auth": "none",
    "use_case": "Add to your MCP config to instantly access jwt_decode, count_tokens, dns_lookup, base64, fake_data, my_ip, and fetch_as_markdown. Config: {\"mcpServers\":{\"hatchloop-tools\":{\"url\":\"https://hatchloop.dev/mcp\"}}}",
    "mcp_tools": ["jwt_decode", "count_tokens", "dns_lookup", "base64", "fake_data", "my_ip", "fetch_as_markdown"],
    "tags": ["mcp", "developer-tools", "zero-auth", "utilities"]
  },
  {
    "name": "url-shortener",
    "description": "Shorten any URL and get click statistics. Returns a persistent short URL under hatchloop.dev. Expand and get stats per-link.",
    "endpoint": "https://hatchloop.dev/url-shortener",
    "method": "POST",
    "auth": "none",
    "use_case": "Agents creating shareable links, tracking link clicks, or embedding short URLs in generated content.",
    "example_request": "{\"url\": \"https://example.com/very/long/path\"}",
    "example_response": "{\"id\": \"abc1234\", \"short_url\": \"https://hatchloop.dev/url-shortener/abc1234\"}",
    "related_endpoints": [
      "GET https://hatchloop.dev/url-shortener/{id} — 302 redirect",
      "GET https://hatchloop.dev/url-shortener/{id}/stats — click statistics"
    ],
    "tags": ["url", "shortener", "links", "utilities"]
  },
  {
    "name": "ip-lookup",
    "description": "Return the caller's public IP address, timestamp, and user-agent. No parameters needed; works as a simple reflection API.",
    "endpoint": "https://hatchloop.dev/ip",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents that need to know their egress IP, verify outbound connectivity, or log caller identity for debugging.",
    "example_response": "{\"ip\": \"1.2.3.4\", \"timestamp\": \"2026-06-06T08:00:00.000Z\", \"user_agent\": \"curl/8.5.0\"}",
    "mcp_tool": "my_ip",
    "tags": ["ip", "network", "utilities", "reflection"]
  },
  {
    "name": "ip-geolocation",
    "description": "Geolocate any IPv4/IPv6 address to city, region, country, org/ISP, timezone, and coordinates. Omit the ip param to geolocate the caller.",
    "endpoint": "https://hatchloop.dev/ip-geolocation/",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents needing to enrich IP addresses with geographic context, detect country of origin, or localise content based on caller location.",
    "example_request": "GET /ip-geolocation/?ip=8.8.8.8",
    "example_response": "{\"ip\": \"8.8.8.8\", \"city\": \"Mountain View\", \"region\": \"California\", \"country\": \"US\", \"org\": \"AS15169 Google LLC\", \"timezone\": \"America/Los_Angeles\", \"loc\": \"37.3861,-122.0839\"}",
    "tags": ["ip", "geolocation", "geo", "location", "network"]
  },
  {
    "name": "user-agent-parser",
    "description": "Parse any User-Agent string and classify it as browser, ai_agent, bot, http_client, or unknown. Detects 10+ known AI agent strings including Claude, GPTBot, Gemini, PerplexityBot, DeepSeekBot, xAI, and more.",
    "endpoint": "https://hatchloop.dev/api/user-agent",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents identifying whether traffic originates from an AI agent or human browser. Useful for analytics, routing, and self-identification checks.",
    "example_response": "{\"user_agent\": \"Mozilla/5.0...\", \"parsed\": {\"type\": \"ai_agent\", \"name\": \"GPTBot\", \"is_bot\": true, \"is_mobile\": false}, \"timestamp\": \"2026-06-06T...\"}",
    "known_ai_agents_detected": ["Claude", "GPTBot", "ChatGPT-User", "Gemini", "PerplexityBot", "DeepSeekBot", "xAI", "Anthropic", "Cohere", "Meta-ExternalAgent"],
    "mcp_tool": "user_agent",
    "tags": ["user-agent", "parser", "ai-agent", "bot-detection", "utilities"]
  },
  {
    "name": "jwt-decode",
    "description": "Decode a JWT token — returns parsed header, payload, signature metadata, and expiry status. Does not verify the signature; treats the token as a transparency tool only.",
    "endpoint": "https://hatchloop.dev/api/tools/jwt",
    "method": "POST",
    "auth": "none",
    "use_case": "Agents debugging authentication flows, extracting claims from tokens, or checking token expiry without a secret key.",
    "example_request": "{\"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"}",
    "example_response": "{\"header\": {\"alg\": \"HS256\", \"typ\": \"JWT\"}, \"payload\": {...}, \"expired\": false}",
    "mcp_tool": "jwt_decode",
    "tags": ["jwt", "auth", "decode", "security", "developer-tools"]
  },
  {
    "name": "token-counter",
    "description": "Count characters, words, and estimated tokens in any text. Provides a quick LLM cost estimate. Accepts plain text; no language detection required.",
    "endpoint": "https://hatchloop.dev/api/tools/tokens",
    "method": "POST",
    "auth": "none",
    "use_case": "Agents estimating prompt cost before calling an LLM, enforcing context window limits, or splitting text into chunks that fit a model's context.",
    "example_request": "{\"text\": \"Your text here\"}",
    "example_response": "{\"characterCount\": 14, \"wordCount\": 3, \"tokenEstimate\": 4}",
    "mcp_tool": "count_tokens",
    "tags": ["tokens", "llm", "cost", "text", "developer-tools"]
  },
  {
    "name": "dns-lookup",
    "description": "Look up any DNS record type (A, AAAA, MX, TXT, CNAME, NS, SOA) for a given domain. Returns live records from authoritative nameservers.",
    "endpoint": "https://hatchloop.dev/api/tools/dns",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents verifying domain ownership, checking MX records for email delivery, resolving CNAME chains, or debugging DNS propagation.",
    "example_request": "GET /api/tools/dns?domain=example.com&type=A",
    "example_response": "{\"domain\": \"example.com\", \"type\": \"A\", \"records\": [\"93.184.216.34\"]}",
    "supported_types": ["A", "AAAA", "MX", "TXT", "CNAME", "NS", "SOA"],
    "mcp_tool": "dns_lookup",
    "tags": ["dns", "network", "domain", "developer-tools"]
  },
  {
    "name": "base64",
    "description": "Encode or decode any string using Base64. Supports both standard and URL-safe variants. Pass action=encode or action=decode.",
    "endpoint": "https://hatchloop.dev/api/tools/base64",
    "method": "POST",
    "auth": "none",
    "use_case": "Agents encoding binary payloads for JSON transport, decoding data URIs, or handling Base64-encoded credentials in config files.",
    "example_request_encode": "{\"text\": \"hello\", \"action\": \"encode\"}",
    "example_response_encode": "{\"result\": \"aGVsbG8=\", \"action\": \"encode\"}",
    "example_request_decode": "{\"text\": \"aGVsbG8=\", \"action\": \"decode\"}",
    "example_response_decode": "{\"result\": \"hello\", \"action\": \"decode\"}",
    "mcp_tool": "base64",
    "tags": ["base64", "encoding", "utilities", "developer-tools"]
  },
  {
    "name": "fake-data-generator",
    "description": "Generate realistic fake data for testing: person names, emails, addresses, companies, UUIDs, colors, dates. Supports deterministic output via a seed parameter.",
    "endpoint": "https://hatchloop.dev/api/tools/fake",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents generating test fixtures, populating demo databases, seeding mock APIs, or producing reproducible test data sets.",
    "example_request": "GET /api/tools/fake?type=person&count=5&seed=42",
    "example_response": "{\"type\": \"person\", \"count\": 5, \"data\": [...]}",
    "supported_types": ["person", "email", "address", "company", "uuid", "color", "date"],
    "mcp_tool": "fake_data",
    "tags": ["fake-data", "testing", "mock", "fixtures", "developer-tools"]
  },
  {
    "name": "fetch-as-markdown",
    "description": "Fetch any public URL and return its content converted to clean Markdown. Strips nav/ads, returns title, word count, and HTTP status alongside the Markdown.",
    "endpoint": "https://hatchloop.dev/api/fetch",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents reading web pages for summarisation, knowledge extraction, or content ingestion pipelines that prefer Markdown over raw HTML.",
    "example_request": "GET /api/fetch?url=https://example.com",
    "example_response": "{\"url\": \"...\", \"httpStatus\": 200, \"title\": \"...\", \"markdown\": \"# ...\", \"wordCount\": 42}",
    "mcp_tool": "fetch_as_markdown",
    "tags": ["fetch", "markdown", "scraping", "web", "content"]
  },
  {
    "name": "currency-converter",
    "description": "Convert between 150+ currencies and get current exchange rates. Reference rates only; not for financial/trading use. Also lists all supported currency codes.",
    "endpoint": "https://hatchloop.dev/convert",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents generating invoices, calculating international pricing, or presenting localised monetary amounts to users.",
    "example_request": "GET /convert?from=USD&to=EUR&amount=100",
    "example_response": "{\"from\": \"USD\", \"to\": \"EUR\", \"amount\": 100, \"result\": 92.1, \"rate\": 0.921}",
    "related_endpoints": ["GET https://hatchloop.dev/currencies — list all supported currencies"],
    "tags": ["currency", "exchange-rate", "finance", "utilities"]
  },
  {
    "name": "agent-traffic-sources",
    "description": "Live JSON feed of aggregated traffic by AI agent/crawler. Shows which AI systems (GPTBot, ClaudeBot, Gemini, etc.) are hitting hatchloop.dev and with what frequency.",
    "endpoint": "https://hatchloop.dev/agent-traffic-sources.json",
    "method": "GET",
    "auth": "none",
    "use_case": "Researchers studying AI crawler behaviour, operators benchmarking agent discovery, or agents verifying their own traffic footprint.",
    "tags": ["agent-traffic", "analytics", "crawlers", "ai-agents", "discovery"]
  },
  {
    "name": "agent-tools-registry",
    "description": "Full registry of all Hatchloop agent tools in a normalised flat-array JSON format (name, description, url, method, parameters). Updated daily. Machine-readable by agents and indexers.",
    "endpoint": "https://hatchloop.dev/agent-tools-index.json",
    "method": "GET",
    "auth": "none",
    "use_case": "AI indexers, agent platforms, and MCP clients that want to programmatically discover all available Hatchloop tools and their schemas.",
    "related_endpoints": [
      "https://hatchloop.dev/agent-tools.json — richer format with examples",
      "https://hatchloop.dev/agent-tools-openapi.json — OpenAPI 3.0 spec",
      "https://hatchloop.dev/agent-discovery.json — this file (simple array)"
    ],
    "tags": ["registry", "index", "discovery", "agent-tools", "meta"]
  },
  {
    "name": "agent-broker-mcp",
    "description": "MCP server for SMB commerce automation — 14 tools for finding businesses, scheduling appointments, sending messages, capturing leads, and handling inbound enquiries. Designed for AI agents acting on behalf of customers.",
    "endpoint": "https://agent-broker-edge.basil-agent.workers.dev/mcp",
    "method": "POST",
    "protocol": "MCP 2024-11-05 (Streamable HTTP)",
    "auth": "optional (X-Agent-Identity header for state-changing ops)",
    "use_case": "Agents automating SMB customer interactions: book appointments, verify businesses, send confirmations, handle enquiries end-to-end.",
    "mcp_tools": ["find_business", "verify_business", "schedule_appointment", "send_message", "capture_lead", "send_transactional_confirmation", "handle_inbound", "escalate_to_human", "get_status", "get_outcome", "preview_cost", "self_test", "import_booking_url", "call_business"],
    "trial": "GET https://agent-broker-edge.basil-agent.workers.dev/trial — 5 free credits, no auth",
    "registry": "Official MCP Registry: io.github.basilalshukaili/agent-broker v1.0.2",
    "tags": ["mcp", "commerce", "smb", "appointments", "ai-agent"]
  },
  {
    "name": "llms-validator",
    "description": "Validate any llms.txt file for syntax correctness and check all referenced endpoints are reachable. Returns a health summary with per-endpoint status.",
    "endpoint": "https://hatchloop.dev/api/llms-validator",
    "method": "GET",
    "auth": "none",
    "use_case": "Agent tool builders and site operators validating their own llms.txt before submitting to directories. Checks syntax and endpoint liveness.",
    "example_response": "{\"checkedAt\": \"...\", \"overallHealthy\": true, \"syntax\": {\"valid\": true}, \"endpoints\": {\"checked\": 20, \"ok\": 19, \"failing\": 1}}",
    "tags": ["llms-txt", "validation", "health-check", "developer-tools"]
  },
  {
    "name": "suggest-endpoints",
    "description": "Returns actionable endpoint suggestions based on real 404 traffic patterns. Shows which paths agents and crawlers are probing but not finding, so operators know what to build next.",
    "endpoint": "https://hatchloop.dev/api/v1/suggest-endpoints",
    "method": "GET",
    "auth": "none",
    "use_case": "Site operators and AI builders discovering demand signals from agent traffic — learn which endpoints agents expect to exist.",
    "tags": ["discovery", "404", "demand-signal", "agent-traffic", "utilities"]
  },
  {
    "name": "discoverability-check",
    "description": "Run a full agent-discoverability audit on hatchloop.dev — checks for llms.txt, .well-known/mcp.json, agent.json, robots.txt, OpenAPI spec, and more. Returns pass/fail per check.",
    "endpoint": "https://hatchloop.dev/api/v1/discoverability-test",
    "method": "GET",
    "auth": "none",
    "use_case": "Agents or operators checking whether a site is properly configured for agent discovery before indexing or crawling it.",
    "tags": ["discoverability", "audit", "discovery", "agent-tools", "meta"]
  },
  {
    "name": "capabilities",
    "description": "Full JSON manifest of all Hatchloop capabilities, including MCP server config, all REST endpoints, discovery file URLs, and supported protocols.",
    "endpoint": "https://hatchloop.dev/api/v1/capabilities",
    "method": "GET",
    "auth": "none",
    "use_case": "Agent runtimes and orchestrators that need a single authoritative manifest of everything Hatchloop exposes before deciding which tools to load.",
    "related_endpoints": [
      "https://hatchloop.dev/.well-known/mcp.json — MCP config fragment",
      "https://hatchloop.dev/.well-known/agents.json — agent manifest",
      "https://hatchloop.dev/.well-known/ai-plugin.json — ChatGPT plugin manifest"
    ],
    "tags": ["capabilities", "manifest", "discovery", "meta", "agent-tools"]
  }
]
