Skip to main content
Glama

atomno-mcp-fns-check

Servidor MCP para verificar contrapartes rusas (entidades legales y empresarios individuales) a través de datos públicos del Servicio Federal de Impuestos (FNS): EGRUL/EGRIP, EFRSB, «Negocio Transparente», FSSP, KAD.

build version license mcp tests coverage

Listo para conectarse en Claude Desktop, Cursor, Claude Code, Cline y cualquier otro cliente compatible con el Protocolo de Contexto de Modelo (MCP).


¿Por qué?

Un agente de IA (Claude, Cursor, etc.) normalmente no sabe nada sobre las contrapartes rusas: el EGRUL no está indexado correctamente por los motores de búsqueda, los datos en el Negocio Transparente del FNS están detrás de solicitudes POST y CAPTCHA, y el EFRSB entrega HTML. Este servidor MCP le da al agente siete herramientas, a través de las cuales obtendrá una imagen completa en una sola llamada:

  • Quién es: nombre, dirección, OKVED, director.

  • Si está activo: en funcionamiento, en liquidación, quiebra, liquidado, reorganización.

  • Si es seguro trabajar con ellos: dirección masiva, director masivo, descalificación, quiebra, deudas fiscales, falta de presentación de informes, procedimientos ejecutivos, casos de arbitraje.

La herramienta principal — check_contractor(identifier) — acepta un INN o OGRN y devuelve un informe agregado con un veredicto (safe_to_proceed / manual_review_required / high_risk_do_not_proceed / impossible_contractor_defunct) y una lista de recomendaciones específicas.


Related MCP server: mcp-egrul

Inicio rápido

Instalación

pip install atomno-mcp-fns-check

O a través de uv / pipx:

uv pip install atomno-mcp-fns-check
# или
pipx install atomno-mcp-fns-check

Verificación de funcionamiento

atomno-mcp-fns-check --version
# → atomno-mcp-fns-check 0.1.1

atomno-mcp-fns-check --help
# → полный список флагов: --transport / --host / --port / --log-level

Por defecto, el paquete se ejecuta como un servidor MCP stdio: el agente se comunica con él a través de stdin/stdout JSON-RPC. No podrás "probarlo" directamente desde la shell; conéctalo a un cliente MCP. Para escenarios de red, está disponible la bandera --transport {http,sse,streamable-http} con --host/--port.


Conexión a clientes MCP

Cursor

Edita mcp.json (Cursor → Settings → Cursor Settings → MCP):

{
  "mcpServers": {
    "fns-check": {
      "command": "atomno-mcp-fns-check"
    }
  }
}

Reinicia Cursor. En el chat, pregunta: «Verifica la contraparte INN 7707083893» — el agente llamará automáticamente a check_contractor.

Claude Desktop

Edita claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "fns-check": {
      "command": "atomno-mcp-fns-check"
    }
  }
}

Reinicia Claude Desktop.

Claude Code (CLI)

claude mcp add fns-check atomno-mcp-fns-check

Cline (VS Code)

En cline_mcp_settings.json:

{
  "mcpServers": {
    "fns-check": {
      "command": "atomno-mcp-fns-check",
      "disabled": false,
      "autoApprove": []
    }
  }
}

Herramientas

Herramienta

Propósito

Entrada

Fuentes

check_contractor

Principal. Verificación completa por un identificador + veredicto determinado y recomendaciones

identifier: str (INN 10/12 o OGRN 13/15)

las 5

check_inn

Tarjeta básica EGRUL

inn: str

egrul.nalog.ru

check_ogrn

Tarjeta básica por OGRN/OGRNIP

ogrn: str

egrul.nalog.ru

get_legal_status

Estado vital con enriquecimiento

inn o ogrn

EGRUL + EFRSB

get_okveds

Códigos OKVED con descripción

inn o ogrn

EGRUL + diccionario OKVED-2

get_directors_history

Director actual (+ historial según Open Data)

inn: str

EGRUL

check_for_red_flags

8 verificaciones de riesgo (4 básicas + 4 extendidas)

inn: str

las 5

Fuentes públicas utilizadas:

  • egrul.nalog.ru — EGRUL/EGRIP, tarjeta de contraparte.

  • bankrot.fedresurs.ru — EFRSB (Registro Federal Unificado de Información sobre Quiebras).

  • pb.nalog.ru — Negocio Transparente del FNS (deudas fiscales, falta de presentación de informes).

  • fssp.gov.ru — Banco de datos de procedimientos ejecutivos del FSSP.

  • kad.arbitr.ru — Archivo de casos de arbitraje.

  • Cortes locales de registros del FNS — direcciones masivas, directores masivos, personas descalificadas (cargadas mediante el script atomno-mcp-fns-etl desde Open Data del FNS).

Ejemplo de respuesta de check_contractor

{
  "identifier": "7707083893",
  "identifier_type": "inn",
  "inn": "7707083893",
  "ogrn": "1027700132195",
  "card": {
    "name": {"full": "ПАО СБЕРБАНК", "short": "СБЕРБАНК"},
    "status": "active",
    "address": {"full": "117997, Г.Москва, УЛ. ВАВИЛОВА, Д. 19", "is_mass_address": false},
    "director": {"full_name": "Греф Г. О.", "position": "Президент"},
    "okved_main": {"code": "64.19", "name": "Денежное посредничество прочее"}
  },
  "legal_status": {"status": "active", "status_label_ru": "Действующее", "sources_checked": ["egrul", "efrsb"]},
  "risks": {"overall_risk_level": "low", "overall_risk_score": 0, "flags": [], "errors": []},
  "verdict_action": "safe_to_proceed",
  "verdict_reason_ru": "Статус «Действующее», уровень риска — low (score 0/100). Препятствий к заключению сделки по открытым источникам не найдено.",
  "recommendations": [
    "По открытым источникам препятствий к заключению сделки не обнаружено. Соблюдайте стандартные меры должной осмотрительности (ст. 54.1 НК РФ): копия устава, приказ на руководителя, договор."
  ],
  "sources": {"sources_queried": ["efrsb", "egrul", "fssp", "kad", "pb_fns", "registries"]},
  "tier": "open",
  "checked_at": "2026-04-24T20:15:00Z"
}

Comportamiento ante fallos de fuentes

  • EGRUL es la única fuente bloqueante. Si no está disponible, check_contractor lanza un SourceUnavailableError (el agente recibirá un mensaje legible por humanos).

  • Las fuentes restantes se mezclan bajo best-effort: CAPTCHA en FSSP, antibot en KAD, 5xx en pb.nalog.ru — todo se acumula en risks.errors[] y NO hace fallar el informe. El veredicto de alto nivel se convierte en manual_review_required.


Configuración

Todos los ajustes se realizan a través de variables de entorno. No se requieren credenciales (las fuentes son públicas).

Variable

Descripción

Por defecto

MCP_FNS_CACHE_DB

Ruta al archivo SQLite de caché de tarjetas

./atomno_mcp_fns_check_cache.sqlite

MCP_FNS_REGISTRIES_DB

Ruta al archivo SQLite de registros (direcciones/directores masivos/descalificaciones)

<cache>.registries.sqlite

MCP_FNS_CACHE_TTL_HOURS

TTL de tarjetas cacheadas, horas

168 (7 días)

MCP_FNS_HTTP_TIMEOUT

Tiempo de espera HTTP, segundos

15

MCP_FNS_USER_AGENT

User-Agent del cliente HTTP

atomno-mcp-fns-check/0.1 (+https://github.com/atomno-labs/mcp-fns-check)

MCP_FNS_LOG_LEVEL

Nivel de registro (DEBUG/INFO/WARNING/ERROR)

INFO

La plantilla es .env.example.


Registros locales del FNS

Los registros de direcciones masivas / directores / personas descalificadas son volcados CSV/XML de Open Data del FNS. El paquete viene con un mini-seed incorporado (registries_seed.json, registros de prueba sintéticos) — es suficiente para que las herramientas funcionen "listas para usar" y muestren banderas en los INN de prueba.

Para verificaciones de producción, actualiza los registros con cortes completos a través de la CLI atomno-mcp-fns-etl:

atomno-mcp-fns-etl --registry mass_addresses --source ./fns_open_data/ulm.csv --commit
atomno-mcp-fns-etl --registry mass_directors --source ./fns_open_data/uchredt.csv --commit
atomno-mcp-fns-etl --registry disqualified --source ./fns_open_data/disqualified.csv --commit

Fuentes de Open Data:

Por defecto, la CLI funciona en --dry-run (analiza e imprime una muestra); para escribir se necesita un --commit explícito. Los meta-campos <registry>.last_etl, <registry>.last_etl_source, <registry>.last_etl_count se guardan automáticamente — úsalos para el monitoreo cron de la frescura de los datos.


Desarrollo

git clone https://github.com/atomno-labs/mcp-fns-check
cd mcp-fns-check
python -m venv .venv
source .venv/bin/activate    # Linux/macOS
# .venv/Scripts/activate     # Windows
pip install -e ".[dev]"
pytest -v --cov=src/atomno_mcp_fns_check

Las API externas en las pruebas nunca se llaman directamente — solo a través de respx (mocking de httpx) + fixtures locales en tests/fixtures/.


Limitaciones

  • No hay historial para directores — el FNS no entrega el historial de cambios a través de la API de búsqueda; el historial completo aparecerá después de cargar el corte de Open Data del EGRUL (planeado para v0.5+).

  • FSSP / KAD a veces bloquean con CAPTCHA / antibot. En este caso, la verificación cae en errors[] y el veredicto general se convierte en manual_review_required.

  • Negocio Transparente solo entrega el hecho ("hay deuda" / "no hay informes"), sin el monto. El monto debe solicitarse en el IFNS.

El nivel Pro (backend alojado en atomno-mcp-fns-check-server — backend cerrado) elimina estas limitaciones mediante: caché Redis 24h, rotación de proxies para evitar CAPTCHA, corte completo de Open Data del EGRUL, verificaciones por lotes de hasta 100 INN, resumen de IA a través de LLM. El backend en sí no está publicado.


  • Todas las fuentes son datos abiertos públicamente del FNS y registros relacionados. El uso es legal según la ley 149-FZ "Sobre la información".

  • Las entidades legales y los empresarios individuales no están sujetos a la 152-FZ (Sobre datos personales).

  • Los nombres completos de las personas físicas directores son publicados por el FNS en el EGRUL abiertamente; en las respuestas salientes, el INN de la persona física director está enmascarado (formato XXX*****YY).

  • No hay operaciones de escritura en ninguna API externa.

  • No se requieren credenciales / tokens — las fuentes son completamente públicas.


Descargo de responsabilidad

El servicio es un agregador e interfaz conveniente sobre datos públicos del FNS. No está afiliado al FNS de Rusia, EFRSB, KAD, FSSP. Úsalo bajo tu propio riesgo.

La información en las respuestas del servicio no reemplaza una evaluación legal o financiera completa. La decisión de celebrar un contrato con una contraparte es tuya.


Licencia

MIT — ver LICENSE.


Enlaces

A
license - permissive license
A
quality
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
2wRelease cycle
7Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Central Bank of Russia (CBR) data for AI agents — daily and historical currency rates, key rate, inflation, and macro statistics. Five typed MCP tools, in-memory TTL cache, MIT-licensed, no API key required.
    5
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Russian state registries EGRUL (legal entities) and EGRIP (individual entrepreneurs), built on official Federal Tax Service open-data dumps. Self-hosted via local SQLite.
    8
    2
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server that provides 31 tools for the DaData API, enabling address autocomplete, company lookup, bank details, phone/email/passport validation, car recognition, geocoding, and reference directory queries.
    31
    19
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for verifying Polish business entities from the National Court Register (KRS) and VAT White List. Allows querying by KRS, NIP, or REGON to retrieve official company data including name, address, board, and capital.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atomno-mcp/mcp-fns-check'

If you have feedback or need assistance with the MCP directory API, please join our Discord server