The source of the cloro MCP server, which gives any MCP-capable agent tools for querying ChatGPT, Perplexity, Gemini, Copilot, Grok, Google AI Mode, Google Search and Google News. Ask your agent "check whether ChatGPT recommends us for best SERP API" and it calls the cloro API and reasons over the parsed answer and its cited sources.
Runs hosted at mcp.cloro.dev, or locally over stdio.
- Get a cloro API key from the dashboard.
- Point your client at the hosted server, passing the key.
- Ask the agent a question that needs a live answer engine.
The hosted server speaks Streamable HTTP. Put the key in the URL path so it works in clients that cannot set custom headers:
{
"mcpServers": {
"cloro": {
"type": "http",
"url": "https://mcp.cloro.dev/YOUR_CLORO_API_KEY/mcp"
}
}
}If your client can set headers, use https://mcp.cloro.dev/mcp with Authorization: Bearer YOUR_CLORO_API_KEY. In Claude Code:
claude mcp add --transport http cloro https://mcp.cloro.dev/YOUR_CLORO_API_KEY/mcpnpm install
npm run build
MCP_TRANSPORT=stdio CLORO_API_KEY=your_key node dist/index.jsMCP_TRANSPORT is http (default) or stdio. In stdio mode the client spawns the process and the key comes from CLORO_API_KEY; in http mode keys arrive per request and no key is configured on the server. PORT defaults to 8095 and CLORO_API_URL to https://api.cloro.dev.
| Tool | Endpoint |
|---|---|
scrape_chatgpt |
POST /v1/monitor/chatgpt |
scrape_gemini |
POST /v1/monitor/gemini |
scrape_copilot |
POST /v1/monitor/copilot |
scrape_perplexity |
POST /v1/monitor/perplexity |
scrape_grok |
POST /v1/monitor/grok |
scrape_google_ai_mode |
POST /v1/monitor/aimode |
scrape_google |
POST /v1/monitor/google |
scrape_google_news |
POST /v1/monitor/google/news |
list_countries |
GET /v1/countries |
list_states |
GET /v1/states |
The assistant tools take a prompt and a country (ISO 3166-1 alpha-2), plus an optional state for US state-level targeting. scrape_google_ai_mode targets sub-country with location or uule rather than state. scrape_google runs either from a query plus country, or from a complete google.com/search URL that carries the query and pagination itself, and accepts include.aioverview for Google's AI Overview. Every tool takes an optional include object for heavier payload fields; leave it unset for the leanest response.
scrape_grok is registered, but Grok availability varies. Check the provider status page before relying on it.
The server holds no business logic and no secrets. Each request forwards the caller's own API key to api.cloro.dev as a Bearer token, so authentication, credit billing, rate limiting and concurrency are all enforced by the API rather than here. In http mode every POST builds a fresh server and transport bound to that caller's key, which is why one deployment serves everyone with no session state.
Tool input schemas are the same zod schemas the API validates with, vendored into src/schemas/ from cloro's backend. They are copied rather than imported because that package is not published. The API reference is authoritative if the two ever disagree.
No. mcp.cloro.dev is hosted and is the path most people should take. This repo exists so you can read what runs, and self-host if your setup calls for it.
The scrape tools call billable endpoints, so yes, at the same rate as the API. list_countries and list_states read fixed reference lists and charge nothing. See pricing.
Because several MCP clients cannot set custom headers. If yours can, use the Authorization header form instead and keep the key out of the path.
320 seconds. Sync scrapes can take up to five minutes server-side, so the client budget leaves headroom. For long-running batches use the async task API rather than MCP.
- Integration guide: cloro.dev/docs/integrations/mcp
- API reference: cloro.dev/docs
MIT. See LICENSE.