aparser-mcp

aparser-mcp

Enables AI agents to drive parsing tasks via A-Parser, including running SERP queries, queueing bulk jobs, polling, and fetching results.

Category
Visit Server

README

aparser-mcp

English · Русский

npm

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.com for: query one, query two in Serbia”SE::Google::Position on google.rs (gl=rs, hl=sr) → rank per query.
  • “aparser, Google autocomplete for buy iphone → suggestions.
  • “aparser, top-20 Google results for best running shoes in 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. Use wait_task then task_results to 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_request hangs or errors, check get_proxies and the parser's proxy settings in A-Parser.
  • Secrets are never stored in this repo. Keep AP_PASSWORD in 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured