cloro
Scrape AI answer engines and Google Search/News with country and state-level geo-targeting.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"cloro": {
"url": "https://mcp.cloro.dev/mcp"
}
}
}원격 엔드포인트
https://mcp.cloro.dev/mcpstreamable-http할 수 있는 일
도구 목록
도구 (10)
🟢scrape_chatgpt(prompt, country, include, legacy, disableWebSearch, ...)
Submit a prompt to ChatGPT from a chosen country (and optionally US state) and return the full answer: text, cited sources, and optionally markdown, search queries, shopping results, and ads. Use this to see how ChatGPT answers a prompt and which brands/sources it mentions.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to ChatGPT.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload), searchQueries (the web searches ChatGPT issued while answering), ads and shopping (sponsored and product results; these render only on the desktop UI, so pair them with legacy: true). Leave unset for the leanest response.",
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
},
"rawResponse": {
"type": "boolean"
},
"searchQueries": {
"type": "boolean"
},
"html": {
"type": "boolean"
},
"ads": {
"type": "boolean"
},
"shopping": {
"type": "boolean"
}
}
},
"legacy": {
"description": "Serve ChatGPT's desktop UI instead of the default mobile-web UI. Needed for include.ads and include.shopping, which only render on desktop. Defaults to false.",
"type": "boolean"
},
"disableWebSearch": {
"type": "boolean"
},
"state": {
"description": "Optional state code for state-level targeting (e.g. \"CA\" when country is \"US\"). Only some countries support this — call list_states for the supported countries and their codes.",
"type": "string"
}
},
"required": [
"prompt",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_gemini(prompt, country, include, state)
Submit a prompt to Google Gemini from a chosen country (and optionally US state) and return the answer with cited sources. Use this to see how Google Gemini answers a prompt and which brands/sources it mentions.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to Google Gemini.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"html": {
"type": "boolean"
},
"markdown": {
"type": "boolean"
},
"rawResponse": {
"type": "boolean"
}
}
},
"state": {
"description": "Optional state code for state-level targeting (e.g. \"CA\" when country is \"US\"). Only some countries support this — call list_states for the supported countries and their codes.",
"type": "string"
}
},
"required": [
"prompt",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_copilot(prompt, country, include, state)
Submit a prompt to Microsoft Copilot from a chosen country (and optionally US state) and return the answer with cited sources. Use this to see how Microsoft Copilot answers a prompt and which brands/sources it mentions.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to Microsoft Copilot.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
},
"html": {
"type": "boolean"
},
"rawResponse": {
"type": "boolean"
}
}
},
"state": {
"description": "Optional state code for state-level targeting (e.g. \"CA\" when country is \"US\"). Only some countries support this — call list_states for the supported countries and their codes.",
"type": "string"
}
},
"required": [
"prompt",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_perplexity(prompt, country, include, state)
Submit a prompt to Perplexity from a chosen country (and optionally US state) and return the answer with cited sources. Use this to see how Perplexity answers a prompt and which brands/sources it mentions.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to Perplexity.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
},
"html": {
"type": "boolean"
},
"rawResponse": {
"type": "boolean"
}
}
},
"state": {
"description": "Optional state code for state-level targeting (e.g. \"CA\" when country is \"US\"). Only some countries support this — call list_states for the supported countries and their codes.",
"type": "string"
}
},
"required": [
"prompt",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_grok(prompt, country, include, state)
Submit a prompt to Grok (xAI) from a chosen country (and optionally US state) and return the answer with cited sources. Use this to see how Grok (xAI) answers a prompt and which brands/sources it mentions.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to Grok (xAI).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
},
"html": {
"type": "boolean"
},
"rawResponse": {
"type": "boolean"
}
}
},
"state": {
"description": "Optional state code for state-level targeting (e.g. \"CA\" when country is \"US\"). Only some countries support this — call list_states for the supported countries and their codes.",
"type": "string"
}
},
"required": [
"prompt",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_google_ai_mode(prompt, country, gl, hl, location, ...)
Submit a prompt to Google AI Mode from a chosen country and return the AI answer with cited sources. Supports location or UULE targeting and desktop/mobile emulation.
입력 스키마
{
"type": "object",
"properties": {
"prompt": {
"description": "The prompt to submit to Google AI Mode.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model. Deprecated — use gl instead; country is kept for compatibility and must not disagree with gl.",
"type": "string"
},
"gl": {
"description": "ISO 3166-1 alpha-2 code for the result geography, sent to Google as gl (e.g. \"us\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"hl": {
"description": "Optional Google interface-language code, sent as hl (e.g. \"de\", \"pt-br\"). Defaults to the language derived from gl — set it when the geography's dominant language is not the one you want.",
"type": "string"
},
"location": {
"description": "Optional location name to target search results (e.g. \"Austin, Texas, United States\"). Mutually exclusive with uule.",
"type": "string"
},
"uule": {
"description": "Optional Google UULE location parameter. Mutually exclusive with location.",
"type": "string"
},
"device": {
"description": "Device type to emulate. Defaults to desktop.",
"default": "desktop",
"type": "string",
"enum": [
"desktop",
"mobile"
]
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
},
"html": {
"type": "boolean"
},
"expandProducts": {
"type": "boolean"
}
}
}
},
"required": [
"prompt"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_google(query, url, country, gl, hl, ...)
Run a Google search from a chosen country and return organic results, with optional AI Overview extraction (include.aioverview) and People-Also-Ask AI answers (include.paaAioverview). Two modes: structured (query + country, with optional location/uule/pages) or url (a complete google.com/search URL that owns query, location, and pagination). Supports desktop, mobile, iOS, and Android emulation and multi-page results.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"description": "The search query. Required unless url is provided.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"url": {
"description": "A complete google.com/search URL to fetch instead of building one from structured fields. When set, query/location/uule/pages must be omitted (the URL owns them); gl and hl are read from the URL's gl/hl parameters; an explicit gl or hl must agree with the URL's copy.",
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model. Deprecated — use gl instead; country is kept for compatibility and must not disagree with gl.",
"type": "string"
},
"gl": {
"description": "ISO 3166-1 alpha-2 code for the result geography, sent to Google as gl (e.g. \"us\"). Use list_countries to see supported codes per model. Required in query mode; in url mode it is read from the URL's gl parameter unless supplied here, and an explicit value wins.",
"type": "string"
},
"hl": {
"description": "Optional Google interface-language code, sent as hl (e.g. \"de\", \"pt-br\"). Defaults to the language derived from gl — set it when the geography's dominant language is not the one you want. In url mode it is read from the URL's hl parameter unless supplied here, and an explicit value wins.",
"type": "string"
},
"location": {
"description": "Optional location name to target search results (e.g. \"Austin, Texas, United States\"). Mutually exclusive with uule.",
"type": "string"
},
"uule": {
"description": "Optional Google UULE location parameter. Mutually exclusive with location.",
"type": "string"
},
"device": {
"description": "Device to emulate: desktop, mobile, ios (Safari on iPhone), or android (Chrome on Android). mobile is an alias for android. Defaults to desktop.",
"default": "desktop",
"type": "string",
"enum": [
"desktop",
"mobile",
"ios",
"android"
]
},
"pages": {
"description": "Number of result pages to fetch (1-10). Defaults to 1.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10
},
"include": {
"description": "Optional flags. Set aioverview: true to extract Google's AI Overview (or { markdown: true } for markdown), paaAioverview: true to hydrate AI answers in People Also Ask. Leave unset for organic results only.",
"type": "object",
"properties": {
"html": {
"type": "boolean"
},
"aioverview": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"markdown": {
"type": "boolean"
}
}
}
]
},
"paaAioverview": {
"type": "boolean"
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢scrape_google_news(query, country, gl, hl, device, ...)
Run a Google News search from a chosen country and return news results. Supports desktop, mobile, iOS, and Android emulation and multi-page results.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"description": "The search query.",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"country": {
"description": "ISO 3166-1 alpha-2 country code to geo-target the request from (e.g. \"US\"). Use list_countries to see supported codes per model. Deprecated — use gl instead; country is kept for compatibility and must not disagree with gl.",
"type": "string"
},
"gl": {
"description": "ISO 3166-1 alpha-2 code for the result geography, sent to Google as gl (e.g. \"us\"). Use list_countries to see supported codes per model.",
"type": "string"
},
"hl": {
"description": "Optional Google interface-language code, sent as hl (e.g. \"de\", \"pt-br\"). Defaults to the language derived from gl — set it when the geography's dominant language is not the one you want.",
"type": "string"
},
"device": {
"description": "Device to emulate: desktop, mobile, ios (Safari on iPhone), or android (Chrome on Android). mobile is an alias for android. Defaults to desktop.",
"default": "desktop",
"type": "string",
"enum": [
"desktop",
"mobile",
"ios",
"android"
]
},
"pages": {
"description": "Number of result pages to fetch (1-10). Defaults to 1.",
"default": 1,
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10
},
"include": {
"description": "Optional flags for heavier payload fields, each off by default: markdown (the answer rendered as markdown), html (the answer page HTML), rawResponse (the engine's unprocessed response payload). Leave unset for the leanest response.",
"type": "object",
"properties": {
"html": {
"type": "boolean"
}
}
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_countries(model)
List the ISO 3166-1 alpha-2 country codes supported for geo-targeting. Pass a model to get the codes available for that specific engine (some engines block certain countries).
입력 스키마
{
"type": "object",
"properties": {
"model": {
"description": "Optionally filter to countries supported by a specific engine.",
"type": "string",
"enum": [
"aimode",
"aioverview",
"chatgpt",
"copilot",
"gemini",
"google",
"grok",
"perplexity"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_states(country)
List the state codes available for state-level geo-targeting in a country (used as the "state" parameter on the scrape tools). Only countries with state-level targeting are accepted.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code to list states for. Only countries with state-level targeting are supported.",
"type": "string",
"enum": [
"US"
]
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거