SEO Tools: A-Parser bridge
NPM · SEO-TOOLS-MCP-APARSER · SCANNED AUG 16
Bridge to a self-hosted A-Parser: SERP, suggests and 150+ parsers via its API (read-only).
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2592 tokens (~199/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management40
- Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 79% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · seo-tools-mcp-aparser
claude mcp add antohins-seo-tools-mcp-aparser -- npx -y seo-tools-mcp-aparser
codex mcp add antohins-seo-tools-mcp-aparser -- npx -y seo-tools-mcp-aparser
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"antohins-seo-tools-mcp-aparser": {
"type": "local",
"command": [
"npx",
"-y",
"seo-tools-mcp-aparser"
],
"enabled": true
}
}
} openclaw mcp add antohins-seo-tools-mcp-aparser --command npx --arg -y --arg seo-tools-mcp-aparser
mcp_servers:
antohins-seo-tools-mcp-aparser:
command: "npx"
args: ["-y", "seo-tools-mcp-aparser"] {
"mcpServers": {
"antohins-seo-tools-mcp-aparser": {
"command": "npx",
"args": [
"-y",
"seo-tools-mcp-aparser"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Aug 26 0
- Package version: 1.5.1 → 1.7.0 functional
- 8 Aug 26 +27
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.13 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Package version: 1.4.0 → 1.7.0 functional
- Package version: 1.4.0 → 1.5.1 functional
- 7 Aug 26 −21
- Known CVEs: partial → pass ▲ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → pass ▲ functional
- First check of Schema quality: unverified functional
- Dependency health: partial → 0.85 functional
- Package version: 1.4.0 → 1.5.1 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Aug 2026 · Analysed npm/seo-tools-mcp-aparser@1.7.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
aparser_auth_status ~74
Статус авторизации aparser: какие ключи заданы (маскированно), каких не хватает, как их получить. ВЫЗЫВАТЬ ПЕРВЫМ в начале работы с aparser. Если чего-то нет — запросить значения у пользователя и сохранить через aparser_set_credentials.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
aparser_bulk_request ~280
Пакетный синхронный запрос: один парсер, много запросов в несколько потоков (метод bulkRequest). Синхронно — держите объём разумным (лимит 200 запросов). Один HTTP-вызов до 120 с БЕЗ ретраев: при таймауте уменьшите число queries или threads и повторите — сам запрос при этом мог выполниться на инстансе. raw=true: для SE::Google/SE::Yandex результаты нормализуются ({ serp, related, ads, success, … }), для остальных парсеров отдаются как есть; raw=false — resultString пресета. count < requested — часть запросов не выполнена (см. note в ответе). Для больших выгрузок нужна очередь задач (кандидат в v2).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| options | array | – | Override-опции A-Parser (массив), прокидываются как есть |
| parser | string | yes | – |
| preset | string | – | – |
| queries | array | yes | Список запросов (до 200 за вызов) |
| raw | boolean | – | – |
| threads | integer | – | – |
No output schema declared.
No examples provided.
aparser_get_preset ~168
Прочитать опции готового config-пресета парсера (метод getParserPreset): useproxy, домен, hl/gl, device, выбор прокси-чекеров и т.д. Помогает переиспользовать/подправить существующую настройку. preset по умолчанию — default. Значения чувствительных опций (pass|key|token|secret) маскируются.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| parser | string | yes | Идентификатор парсера, напр. SE::Google |
| preset | string | – | Имя пресета из GUI (по умолчанию default) |
No output schema declared.
No examples provided.
aparser_parser_fields ~130
Какие поля результата умеет вернуть парсер (метод getParserInfo): flat-поля (напр. query) и array-поля (напр. serp, ads, related). Используйте, чтобы понять структуру перед aparser_request с произвольным парсером.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| parser | string | yes | Идентификатор парсера, напр. SE::Google, SE::Yandex::Wordstat, Net::HTTP |
No output schema declared.
No examples provided.
aparser_parsers ~74
Список парсеров, установленных на инстансе A-Parser (из метода info). Полезно перед aparser_request/aparser_parser_fields.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
No output schema declared.
No examples provided.
aparser_ping ~70
Проверка связи с A-Parser и пароля API (метод ping). Быстрый способ убедиться, что инстанс доступен.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
No output schema declared.
No examples provided.
aparser_proxies ~165
Живые (проверенные) прокси на инстансе A-Parser (метод getProxies). checkers — имена прокси-пачек (proxy checkers); без них — по всем пачкам. Возвращает { count, byType, truncated, proxies:[{address,type}] }: count — полное число живых, список обрезан до 100 (truncated=true). Логины/пароли прокси НЕ выводятся.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| checkers | array | – | Имена прокси-пачек (proxy checkers). Пусто = все пачки. |
No output schema declared.
No examples provided.
aparser_request ~288
Универсальный синхронный запрос к любому парсеру A-Parser (метод oneRequest). Для парсеров, под которые нет типизированного инструмента. options — массив override-опций A-Parser (как есть). raw=true (по умолчанию) → структурированный результат; false → форматированная строка пресета. Env-дефолты serp-инструментов (APARSER_*_PRESET, APARSER_PROXY_CHECKERS, APARSER_USE_PROXY) тут НЕ действуют — пресет и опции задаются только параметрами вызова. results_present=false (raw=true) — API вернул success без results (битый ответ, см. note). Структуру полей парсера смотрите через aparser_parser_fields.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| options | array | – | Override-опции A-Parser (массив), прокидываются как есть |
| parser | string | yes | Идентификатор парсера, напр. SE::Yandex::Wordstat, Net::HTTP, SE::Bing |
| preset | string | – | – |
| query | string | yes | – |
| raw | boolean | – | true → structured results; false → resultString пресета |
No output schema declared.
No examples provided.
aparser_serp_google ~370
Органическая выдача Google через ваш A-Parser (парсер SE::Google, синхронно). Прокси по умолчанию включены + preflight-проверка живых прокси. Возвращает { serp:[{position,url,anchor,snippet,flags}], related, ads, totalcount, success, empty, results_present }. Смотрите success/diagnostic: success=false + diagnostic — капча или выжженные прокси (нужны свежие); empty=true — легитимная пустая выдача; results_present=false — битый ответ API (note с пояснением). Каждая страница pages — отдельный заход к поисковику: pages>1 заметно дольше и быстрее выжигает прокси.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| checkers | array | – | Прокси-пачки (proxy checkers) на этот запрос; переопределяет пресет (по умолчанию — env APARSER_PROXY_CHECKERS) |
| domain | string | – | Домен Google (google.com/google.ru…) |
| gl | string | – | Страна поиска (gl) |
| hl | string | – | Язык интерфейса (hl) |
| pages | integer | – | Сколько страниц выдачи собрать (каждая — отдельный заход, дольше) |
| preset | string | – | Имя config-пресета из GUI (по умолчанию — из env APARSER_*_PRESET или default) |
| query | string | yes | – |
| use_proxy | boolean | – | Использовать прокси (по умолчанию — env APARSER_USE_PROXY, обычно true) |
No output schema declared.
No examples provided.
aparser_serp_yandex ~330
Органическая выдача Яндекса через ваш A-Parser (парсер SE::Yandex, синхронно). region — «Москва»/«Россия»/213 (id региона Яндекса, lr). Прокси по умолчанию включены + preflight. Возвращает { serp:[{position,url,anchor,snippet}], related, ads, totalcount, success, empty, results_present }. Смотрите success/diagnostic: success=false + diagnostic — капча или выжженные прокси; empty=true — легитимная пустая выдача; results_present=false — битый ответ API (note с пояснением). pages>1 — дольше и быстрее выжигает прокси.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| checkers | array | – | Прокси-пачки (proxy checkers) на этот запрос; переопределяет пресет (по умолчанию — env APARSER_PROXY_CHECKERS) |
| pages | integer | – | – |
| preset | string | – | Имя config-пресета из GUI (по умолчанию — из env APARSER_*_PRESET или default) |
| query | string | yes | – |
| region | string | – | «Москва»/«Россия»/213 — id региона Яндекса (lr) |
| use_proxy | boolean | – | Использовать прокси (по умолчанию — env APARSER_USE_PROXY, обычно true) |
No output schema declared.
No examples provided.
aparser_set_credentials ~275
Сохранить ключи aparser в /tmp/.config/seo-tools-mcp/.env (права 600) и применить сразу, без перезапуска сервера. Передавать только обновляемые поля. account — сохранить в именованный профиль (мультиаккаунт). Значения даёт пользователь; в ответе они маскируются.
| Name | Type | Req | Description |
|---|---|---|---|
| APARSER_GOOGLE_PRESET | string | – | Пресет по умолчанию для SE::Google (имя из GUI) |
| APARSER_PASSWORD | string | – | Пароль API A-Parser (Settings → API) |
| APARSER_PROXY_CHECKERS | string | – | Прокси-пачки по умолчанию (имена чекеров, через запятую) |
| APARSER_URL | string | – | URL API вашего A-Parser, напр. http://IP:9091/API (Settings → API) |
| APARSER_USE_PROXY | string | – | Использовать прокси по умолчанию (true/false) |
| APARSER_YANDEX_PRESET | string | – | Пресет по умолчанию для SE::Yandex |
| account | string | – | Имя аккаунта-профиля (мультиаккаунт): ключи сохранятся с суффиксом __<account> |
No output schema declared.
No examples provided.
aparser_status ~122
Вердикт готовности A-Parser: версия, число установленных парсеров, очередь/потоки (info) + суммарно живых прокси (getProxies). ready=false, если живых прокси 0 — SERP через прокси работать не будет: поднимите Proxy Checker в GUI (либо serp-инструменты допускают use_proxy=false на свой риск).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
No output schema declared.
No examples provided.
aparser_suggest ~246
Поисковые подсказки Google/Яндекса через A-Parser (парсеры SE::Google::Suggest / SE::Yandex::Suggest). Возвращает список фраз. Прокси по умолчанию включены + preflight-проверка живых прокси (suggest тоже банится без них). results_present=false — API вернул success без results (битый ответ, НЕ пустой список подсказок; см. note).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| checkers | array | – | Прокси-пачки (proxy checkers) на этот запрос; переопределяет пресет (по умолчанию — env APARSER_PROXY_CHECKERS) |
| engine | string | – | – |
| preset | string | – | Имя config-пресета из GUI (по умолчанию — из env APARSER_*_PRESET или default) |
| query | string | yes | – |
| use_proxy | boolean | – | Использовать прокси (по умолчанию — env APARSER_USE_PROXY, обычно true) |
No output schema declared.
No examples provided.