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.
- 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).
Published on npm — no install needed, npx fetches and runs it:
AP_URL=http://<host>:9091/API AP_PASSWORD=<password> npx -y aparser-mcpOr run from source
git 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 startThe server reads three environment variables:
| Variable | Required | Description |
|---|---|---|
AP_URL |
yes | API base URL, e.g. http://127.0.0.1:9091/API (a trailing /API is added if missing). |
AP_PASSWORD |
yes | API password from the A-Parser web UI. |
AP_TIMEOUT |
no | Per-request HTTP timeout in seconds (default 130). |
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>"
}
}
}
}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.
| Tool | What it does |
|---|---|
ping |
Health check. Returns "pong". |
info |
Server status: tasks in queue, pid, list of available parsers. |
list_parsers |
Just the parser names (e.g. SE::Google, SE::Google::Suggest). |
parser_info |
A parser's result-field schema (arrays + flat) for building a resultsFormat. |
get_proxies |
Live proxies from the checkers as {"ip:port": ["type", ...]}. |
one_request |
Run one parse synchronously and return the result. Best for single lookups. |
add_task |
Queue a bulk task saved to a file. Returns the task id. |
task_state |
A task's status and live stats. |
wait_task |
Poll a task until it completes; returns the final state. |
task_results |
Single-use download URL for a completed task's results file. |
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.
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>}.
Copy-adaptable request examples — suggests, SERP, position checks with geo,
captcha solving, desktop/mobile, bulk tasks — are in
skills/aparser/examples.md.
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.
- 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.
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.