
Security News
eMudhra, Brotli, and the Long Tail of a Security Fix
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.
aparser-mcp
Advanced tools
MCP server for the A-Parser HTTP API — drive parsing tasks (SERP, positions, suggests) from an AI agent.
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.
http://<host>:9091/API.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-mcp
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
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). |
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>"
}
}
}
}
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:
domain.com for: query one, query two in Serbia”
→ SE::Google::Position on google.rs (gl=rs, hl=sr) → rank per query.buy iphone” → suggestions.best running shoes in 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 vs add_taskone_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. Use wait_task then task_results to 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.
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.
one_request hangs or
errors, check get_proxies and the parser's proxy settings in A-Parser.AP_PASSWORD in 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.
FAQs
MCP server for the A-Parser HTTP API — drive parsing tasks (SERP, positions, suggests) from an AI agent.
The npm package aparser-mcp receives a total of 0 weekly downloads. As such, aparser-mcp popularity was classified as not popular.
We found that aparser-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.

Security News
Cloudflare introduces tsrs, a Rust port of TypeScript’s compiler promising faster checks and lower memory use, with the TypeScript team’s help.