aparser-mcp
Enables AI agents to drive parsing tasks via A-Parser, including running SERP queries, queueing bulk jobs, polling, and fetching results.
README
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).
Run
Published on npm — no install needed, npx fetches and runs it:
AP_URL=http://<host>:9091/API AP_PASSWORD=<password> npx -y aparser-mcp
<details> <summary>Or run from source</summary>
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 start
</details>
Configure
The 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). |
Register with Claude Code
claude mcp add aparser \
--env AP_URL=http://<host>:9091/API \
--env AP_PASSWORD=<password> \
-- npx -y aparser-mcp
Or 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 |
|---|---|
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 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/aparser
It 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.