aparser-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aparser-mcpfind Google rankings for example.com for 'buy shoes' in US"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
aparser-mcp
English · Русский
An MCP server that exposes the A-Parser HTTP API as tools, so an AI agent can drive parsing tasks directly — run a SERP or suggest query, queue bulk jobs, poll them, and fetch results.
Transport: stdio. Built on the official TypeScript MCP SDK.
Requirements
A running A-Parser instance with the API enabled (Settings → API) and its password. The API listens on
http://<host>:9091/API.Node.js ≥ 18 (for
npx, or to build from source).
Related MCP server: arsenkin-mcp
Run
Published on npm — no install needed, npx fetches and runs it:
AP_URL=http://<host>:9091/API AP_PASSWORD=<password> npx -y aparser-mcpgit clone <this-repo> aparser-mcp && cd aparser-mcp
npm install # builds dist/ via the prepare script
AP_URL=http://<host>:9091/API AP_PASSWORD=<password> npm startConfigure
The server reads three environment variables:
Variable | Required | Description |
| yes | API base URL, e.g. |
| yes | API password from the A-Parser web UI. |
| no | Per-request HTTP timeout in seconds (default |
Register with Claude Code
claude mcp add aparser \
--env AP_URL=http://<host>:9091/API \
--env AP_PASSWORD=<password> \
-- npx -y aparser-mcpOr add it to .mcp.json / your MCP client config:
{
"mcpServers": {
"aparser": {
"command": "npx",
"args": ["-y", "aparser-mcp"],
"env": {
"AP_URL": "http://<host>:9091/API",
"AP_PASSWORD": "<password>"
}
}
}
}Usage — just ask
Once the server and the aparser skill are installed, ask in plain language and
the skill picks the parser, geo, and output format for you:
“aparser, find positions of
domain.comfor:query one,query twoin Serbia” →SE::Google::Positionon google.rs (gl=rs,hl=sr) → rank per query.“aparser, Google autocomplete for
buy iphone” → suggestions.“aparser, top-20 Google results for
best running shoesin Spain” → SERP links.
More concrete tool-call examples: skills/aparser/examples.md.
Tools
Tool | What it does |
| Health check. Returns |
| Server status: tasks in queue, pid, list of available parsers. |
| Just the parser names (e.g. |
| A parser's result-field schema ( |
| Live proxies from the checkers as |
| Run one parse synchronously and return the result. Best for single lookups. |
| Queue a bulk task saved to a file. Returns the task id. |
| A task's status and live stats. |
| Poll a task until it completes; returns the final state. |
| Single-use download URL for a completed task's results file. |
one_request vs add_task
one_request— synchronous, one query, result returned inline. Use it for a suggest lookup, a single SERP, checking one page.add_task— asynchronous queue, many queries, output written to a file on the server. Usewait_taskthentask_resultsto retrieve it.
Parser stack & resultsFormat
add_task takes a parsers stack — a list of [name, preset, ...overrides] entries:
[["SE::Google", "default"]]In results_format, $p1 refers to the first entry, $p2 the second, etc. Call
parser_info("SE::Google") to see the fields you can reference:
$p1.serp.format('$link; $anchor\n')Per-request overrides (in one_request.options or a parsers entry) use the shape
{"type": "override", "id": "<param_id>", "value": <value>}.
Examples
Copy-adaptable request examples — suggests, SERP, position checks with geo,
captcha solving, desktop/mobile, bulk tasks — are in
skills/aparser/examples.md.
Companion skill (aparser)
The skills/aparser/ directory holds a Claude Code skill that teaches an agent
when and how to call these tools — parser naming, presets, geo, resultsFormat,
and the position-checking query format. Install it so Claude picks it up:
# easiest — via skills.sh (installs into every supported agent):
npx skills add izzipizzy/aparser-mcp
# or manually as a personal Claude Code skill:
cp -r skills/aparser ~/.claude/skills/aparserIt then loads automatically when you ask about A-Parser positions/SERPs/suggests.
(Inside the izzy plugin it is the izzy:aparser skill.) See
skills/aparser/SKILL.md and skills/aparser/api-reference.md.
Notes
Parsers that hit search engines need working proxies. If
one_requesthangs or errors, checkget_proxiesand the parser's proxy settings in A-Parser.Secrets are never stored in this repo. Keep
AP_PASSWORDin your MCP client config or the environment.
Development
npm install # install deps + build
npm run build # compile src/ -> dist/
npm start # run the built server (needs AP_URL / AP_PASSWORD)Source is a single file: src/index.ts.
Available Tools
10 toolsadd_taskAdd taskA
Queue a bulk parsing task. Returns the task id (taskUid). Poll it with task_state / wait_task, then fetch the output with task_results.
parsers: stack as a list of [parser_name, preset_name, ...overrideObjects], e.g. [["SE::Google","default"]]. $p1 in a resultsFormat refers to the first entry.
results_format: output template, e.g. "$p1.serp.format('$link\n')"; omit to use the preset's own format. results_file_name supports macros like $datefile.format() ($taskId is NOT a valid macro).
Inputs: parsers (required), do_log, queries, priority, +8 more.
get_proxiesGet proxiesA
Get live proxies from the proxy checkers as {"ip:port": ["type", ...]}.
Inputs: checkers.
infoInfoA
Get A-Parser status: tasks in queue, pid, and the list of available parsers.
Inputs: no named parameters.
list_parsersList parsersA
List the names of all installed parsers (e.g. "SE::Google", "SE::Google::Suggest").
Inputs: no named parameters.
one_requestOne requestA
Run a single parse synchronously and return the result immediately. Best for one-off lookups (a suggest query, one SERP, one page). For many queries or saved output files, use add_task instead.
raw_results=true -> structured results array (recommended); false -> a single formatted resultString from the preset.
options: per-request overrides, each {type:'override', id:'', value:}.
Inputs: query (required), parser (required), preset, options, +2 more.
parser_infoParser infoA
Describe a parser's result fields. Returns the results schema: arrays (nested lists like serp/ads) and flat (scalar fields like $query, $totalcount) that you can reference in a resultsFormat template. Call this before writing a resultsFormat for add_task.
Inputs: parser (required).
pingPingA
Health-check the A-Parser server. Returns "pong" when reachable.
Inputs: no named parameters.
task_resultsTask resultsA
Get a single-use download URL for a completed task's results file.
Inputs: task_uid (required).
task_stateTask stateB
Get a task's status and live stats (status, queriesDone, resultsCount, ...).
Inputs: task_uid (required).
wait_taskWait for taskB
Poll a task until it completes (or the timeout elapses). Returns the final state.
Inputs: task_uid (required), timeout, interval.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 10 tools
Each tool targets a distinct concern: health (ping), server status (info), parser discovery (list_parsers), schema introspection (parser_info), proxy access (get_proxies), synchronous execution (one_request), and async task lifecycle (add_task, task_state, wait_task, task_results). Even task_state and wait_task differ clearly: one returns a snapshot, the other blocks until completion.
Task operations mostly use a task_ prefix (add_task, task_state, wait_task, task_results) and parser operations pair list_parsers with parser_info. However, the mix of verb-first names (add_task, get_proxies) and resource-first names (task_state, parser_info), plus the outlier one_request, prevents a perfect score.
With 10 tools, the set is well-scoped for a parsing automation server. Every tool serves a clear role in the workflow—health, info, discovery, schema, proxies, single request, task submission, monitoring, and retrieval—with no redundancy or bloat.
The surface covers the full lifecycle: health check, server status, parser listing and schema introspection, proxy management, synchronous one-off parsing, bulk task submission, monitoring (both snapshot and blocking), and result retrieval. No critical operation is missing for typical usage.
Maintenance
Related MCP Connectors
Web scraping runtime for agents: parsers, scrapes, batches, crons, and SQL databases.
Web scraping, search, crawling, structured extraction and research for AI agents.
Jobs, ads, SEO, keywords, YouTube and AliExpress data for AI agents. Runs on Apify.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with the Apify platform to manage actors, monitor runs, and retrieve scraped data from datasets. It supports natural language commands for executing web scrapers, managing tasks, and accessing key-value stores.28MIT
- FlicenseAqualityBmaintenanceEnables SEO task management, including estimating, submitting, and monitoring jobs, retrieving results, and exporting CSV/JSONL data.181-

georanker-seo-mcpofficial
AlicenseAqualityBmaintenanceEnables AI assistants to search Google SERPs, track rankings across locations, run Lighthouse SEO audits, find broken internal links, analyze backlinks, and get keyword volume data through a hosted service.1516 npmMIT- AlicenseNot gradedqualityCmaintenanceGives AI agents live search data over Streamable HTTP: Google and Bing results with AI Overview citations, keyword volume/difficulty, ranked keywords, competitor gaps, backlinks and referring domains, plus single-page SEO audits. Also exposes a pass-through for any other DataForSEO v3 endpoint, billed per call.285 npmMIT