Koskamo

Agent Data API MCP

Provides AI agents with pay-per-call access to diverse data tools including web search, Shopify store analysis, crypto token safety checks, YouTube transcripts, and prop-firm trading audits via x402 micropayments in USDC.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Agent Data API MCP logo, by centorpratCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by centorprat
MCP endpoint (Streamable HTTP)
https://agent-data.centorprat.workers.dev/mcp
Vendor documentation

What you can do with it

  • Analyze Shopify store tech stacks and app usage
  • Check crypto token safety and rug-pull risks
  • Retrieve YouTube video transcripts and comments
  • Audit prop-firm trading challenge performance

Source and maintenance

Community listingRegistry 1.0.1

Protocol and capabilities

Server
agent-data-api 1.0
MCP protocol
2025-06-18
Tools
10 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Pay-per-call data tools for AI agents: web search / reading, company enrichment, email verification, token and wallet risk, x402 market intelligence, Shopify technographics, and 70 data tools (Google Maps, jobs, YouTube...). Paid tools use x402 (USDC on Base, Polygon or Solana): a call without payment returns the price; pay and retry with _meta x402/payment. Most calls $0.005-0.08, priced per tool; tier/level max runs deeper jobs ($0.10-1.00). The free `catalog_read` tool lists every price and input example.

Tools

10 advertised

catalog_read — Free: every tool with its price
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

FREE, no payment. what=prices: every tool with its price per tier and an input example, plus the plain-HTTP x402 endpoint for each.

catalog_read input schema
{
  "type": "object",
  "required": [
    "what"
  ],
  "properties": {
    "what": {
      "enum": [
        "prices"
      ],
      "type": "string",
      "description": "Which free answer to return."
    }
  }
}
catalog_read annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_search — Web search (optionally read the top pages)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search the web: Google-quality results re-ranked for authority, merged with papers (arXiv), GitHub and news when the query needs them; optional category. Use it to find pages; with read=N it also returns the full clean text of the top N pages; with research=true it reads up to 8 pages and extracts the passages that answer the query, with sources. For one known URL use web_read instead. Price: results only $0.006, read 1-5 pages $0.015, research $0.05. Returns titles, URLs, snippets (and page markdown with a prompt-injection verdict per page). Live results; 1-15 s. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

web_search input schema
{
  "type": "object",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "description": "The query, e.g. 'best espresso machine 2026'."
    },
    "read": {
      "type": "integer",
      "maximum": 8,
      "minimum": 0,
      "description": "Pages to read in full (0 = results only, default 0)."
    },
    "time": {
      "enum": [
        "day",
        "week",
        "month",
        "year"
      ],
      "type": "string",
      "description": "Only results from this period."
    },
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "Results to return in results-only mode (default 10)."
    },
    "region": {
      "type": "string",
      "description": "Country code for results, e.g. us, uk, de, es (default us)."
    },
    "category": {
      "enum": [
        "news",
        "research paper",
        "github",
        "financial",
        "company",
        "pdf",
        "docs"
      ],
      "type": "string",
      "description": "Optional: favor one kind of source (results-only mode)."
    },
    "research": {
      "type": "boolean",
      "description": "true = research mode: read up to 8 pages and return key passages ($0.05)."
    },
    "max_chars": {
      "type": "integer",
      "maximum": 20000,
      "minimum": 500,
      "description": "Max characters per page read (default 4000)."
    }
  }
}
web_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
web_read — Read a URL as clean text (or check text for prompt injection)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch one public URL and return its main content as clean markdown (title, publish date, word count) plus a prompt-injection verdict; raw=true returns the raw body instead (text or base64). Give `text` instead of `url` to only scan text you already have for prompt injection. To find pages first use web_search. Price: read $0.004, raw $0.003, text scan $0.002. Fetched live via Cloudflare's network; 1-10 s. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

web_read input schema
{
  "type": "object",
  "properties": {
    "raw": {
      "type": "boolean",
      "description": "true = raw body (no cleanup), default false."
    },
    "url": {
      "type": "string",
      "description": "Public http(s) URL to read."
    },
    "html": {
      "type": "string",
      "description": "Optional HTML of that text, to also find hidden instructions."
    },
    "text": {
      "type": "string",
      "description": "Instead of url: text to scan for prompt injection."
    },
    "format": {
      "enum": [
        "auto",
        "text",
        "base64",
        "markdown"
      ],
      "type": "string",
      "description": "raw mode only (default auto)."
    },
    "max_chars": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 500,
      "description": "Max characters returned (default 20000)."
    }
  }
}
web_read annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
company_enrich — Company enrichment from a domain
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Everything public about a company from its domain: name, description, size hints, address, phones, emails, socials, website platform, email provider and security, SaaS stack. tier=max adds its LinkedIn company page (employees, followers, industry, open jobs) and verifies each email found. For only email checks use email_verify. Price: standard $0.03, max $0.12. Reads the site live; 5-25 s. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

company_enrich input schema
{
  "type": "object",
  "required": [
    "domain"
  ],
  "properties": {
    "tier": {
      "enum": [
        "standard",
        "max"
      ],
      "type": "string",
      "description": "Default standard."
    },
    "domain": {
      "type": "string",
      "description": "Company website domain, e.g. stripe.com."
    }
  }
}
company_enrich annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
email_verify — Verify email addresses
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check email addresses without sending mail: syntax, domain and MX records, disposable domains, role accounts, catch-all hints, and a valid / risky / invalid verdict each, plus a summary. Up to 20 addresses cost $0.01 per call; 21-200 addresses are a bulk call at $0.10. For company data use company_enrich. DNS lookups live; under 1 s for 20. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

email_verify input schema
{
  "type": "object",
  "required": [
    "emails"
  ],
  "properties": {
    "emails": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 200
        },
        {
          "type": "string"
        }
      ],
      "description": "Addresses: a list, or one comma-separated string (max 200)."
    }
  }
}
email_verify annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
token_check — Token safety and due diligence (EVM and Solana)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check a token before trading. level=quick: one-line pre-trade verdict for up to 10 tokens ($0.02). level=safety (default): contract / mint safety: honeypot simulation, buy/sell tax, mint and freeze authority, Token-2022 traps, holders, liquidity ($0.015). level=max: safety plus the pre-trade verdict, one verdict and every red flag ($0.10). For wallets use address_check. Live data (chain, RugCheck, DexScreener); 1-30 s. Signals, not advice. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

token_check input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "chain": {
      "enum": [
        "ethereum",
        "bsc",
        "base",
        "solana"
      ],
      "type": "string",
      "description": "Chain of a 0x token (Solana mints are detected). Default ethereum."
    },
    "level": {
      "enum": [
        "quick",
        "safety",
        "max"
      ],
      "type": "string",
      "description": "Depth and price (default safety)."
    },
    "address": {
      "type": "string",
      "description": "Token contract (0x...) or Solana mint. level=quick accepts up to 10, comma separated."
    }
  }
}
token_check annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
address_check — Crypto address risk / AML screen
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Screen a wallet address (BTC, ETH/EVM, Solana, Tron, XRP, LTC) against OFAC sanctions and scam lists with on-chain context. tier=max adds the chain's own trail: a 2-hop Bitcoin trace with exposure, a Solana wallet's age and trading record, or a Base wallet's USDC counterparties. For tokens use token_check. Price: standard $0.02, max $0.10. Live; 2-20 s. Risk signals, not a legal finding. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

address_check input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "tier": {
      "enum": [
        "standard",
        "max"
      ],
      "type": "string",
      "description": "Default standard."
    },
    "address": {
      "type": "string",
      "description": "The wallet address."
    }
  }
}
address_check annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
x402_lookup — x402 market intelligence (which API to call, who pays whom)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Answers about the x402 agent-payments market from the whole Bazaar index and Base chain history. action=recommend: which x402 API to call for a need, ranked by fit, price and trust ($0.01). seller_check: is an x402 endpoint / seller trustworthy, its prices and payers ($0.01). payer_profile: a Base wallet's x402 payments, sellers and counterparties up to 3 hops ($0.03). seller_customers: who pays a seller and how much ($0.05). payments_feed: a wallet's payments in time order, with a cursor ($0.005). Bazaar index refreshed every 6 h; chain data real time. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

x402_lookup input schema
{
  "type": "object",
  "required": [
    "action"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "seller_check: endpoint URL, host or payTo address."
    },
    "days": {
      "type": "integer",
      "description": "payer_profile / seller_customers: lookback days (default 30)."
    },
    "need": {
      "type": "string",
      "description": "recommend: the task in plain words, e.g. 'weather forecast for a city'."
    },
    "depth": {
      "type": "integer",
      "maximum": 3,
      "minimum": 1,
      "description": "payer_profile: hops (default 1)."
    },
    "limit": {
      "type": "integer",
      "description": "recommend / payments_feed: rows to return."
    },
    "since": {
      "type": "string",
      "description": "payments_feed: ISO time cursor from the previous response."
    },
    "action": {
      "enum": [
        "recommend",
        "seller_check",
        "payer_profile",
        "seller_customers",
        "payments_feed"
      ],
      "type": "string",
      "description": "Which question to answer (sets the price, see above)."
    },
    "seller": {
      "type": "string",
      "description": "seller_customers: seller host or payTo address."
    },
    "address": {
      "type": "string",
      "description": "payer_profile / payments_feed: Base wallet 0x..."
    },
    "network": {
      "type": "string",
      "description": "recommend: e.g. base, solana."
    },
    "max_price": {
      "type": "number",
      "description": "recommend: max USD per call."
    }
  }
}
x402_lookup annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
shopify_lookup — Shopify store technographics
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

action=store: one Shopify store's apps by category (reviews, email, subscriptions, loyalty...), pixels, theme and catalog hints, gaps and sales pitch angles. action=search: stores from our index of ~19k Shopify stores by app used / not used, missing category, country and keyword (lead lists). Price: store $0.02, search $0.05. Store reads are live (3-15 s); the index is refreshed weekly. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

shopify_lookup input schema
{
  "type": "object",
  "required": [
    "action"
  ],
  "properties": {
    "q": {
      "type": "string",
      "description": "search: keyword in the store name or products."
    },
    "app": {
      "type": "string",
      "description": "search: stores using this app, e.g. Klaviyo."
    },
    "limit": {
      "type": "integer",
      "maximum": 25,
      "minimum": 1,
      "description": "search: rows (default 10)."
    },
    "action": {
      "enum": [
        "store",
        "search"
      ],
      "type": "string",
      "description": "store = one store by domain; search = find stores in the index."
    },
    "domain": {
      "type": "string",
      "description": "store: the store's domain, e.g. allbirds.com."
    },
    "country": {
      "type": "string",
      "description": "search: 2-letter country, e.g. US."
    },
    "missing": {
      "type": "string",
      "description": "search: stores with no app in this category, e.g. loyalty."
    },
    "exclude_app": {
      "type": "string",
      "description": "search: stores NOT using this app."
    }
  }
}
shopify_lookup annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
data_tool_run — Run one of 70 data tools (Maps, jobs, YouTube, ...)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Runs one data tool with its JSON input: Google Maps places with contacts, YouTube videos / transcripts / comments, Indeed, LinkedIn and 13 other job boards, LinkedIn companies, Google News and Trends, Google Ads library, TikTok comments, Pinterest, Airbnb, Redfin, AliExpress, app stores, website contacts and SEO checks, sanctions, clinical trials and more. catalog_read what=prices lists every tool with an input example. Each tool has its own price, $0.01-0.08 per capped run (catalog_read what=prices). tier=max runs a bigger job for: google-maps-scraper ($0.35), indeed-jobs-scraper ($0.15), linkedin-company-scraper ($0.15), linkedin-jobs-scraper ($0.12), youtube-comments-scraper ($0.15). Runs live on Apify; 10 s-4 min. Paid with x402 (USDC on Base, Polygon or Solana) per call; failed or empty calls are never charged.

data_tool_run input schema
{
  "type": "object",
  "required": [
    "tool",
    "input"
  ],
  "properties": {
    "tier": {
      "enum": [
        "standard",
        "max"
      ],
      "type": "string",
      "description": "max = bigger caps, only for the tools listed above."
    },
    "tool": {
      "type": "string",
      "description": "Tool id from catalog_read what=prices, e.g. google-maps-scraper."
    },
    "input": {
      "type": "object",
      "description": "The tool's JSON input (see its example in catalog).",
      "additionalProperties": true
    }
  }
}
data_tool_run annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
929 ms
95th percentile latency
929 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 929 ms · metadata changed · 10 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agent-data-api-mcp https://agent-data.centorprat.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agent-data-api-mcp --url https://agent-data.centorprat.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agent-data-api-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agent-data-api-mcp": {
      "url": "https://agent-data.centorprat.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agent-data-api-mcp": {
      "type": "streamableHttp",
      "url": "https://agent-data.centorprat.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agent-data-api-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agent-data-api-mcp": {
      "type": "http",
      "url": "https://agent-data.centorprat.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agent-data-api-mcp https://agent-data.centorprat.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "agent-data-api-mcp": {
      "url": "https://agent-data.centorprat.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agent-data-api-mcp": {
      "serverUrl": "https://agent-data.centorprat.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Agent Data API MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.