USVI Public Records
Search and read U.S. Virgin Islands public records: laws, court records, audits, hearings, reports.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
EGRUL/EGRIP company registry lookup for Russian legal entities and entrepreneurs.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ATOMNO_API_KEYค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"egrul": {
"command": "uvx",
"args": [
"atomno-mcp-egrul"
],
"env": {
"ATOMNO_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add egrul --env ATOMNO_API_KEY='ใส่ค่าของคุณ' -- uvx atomno-mcp-egrulเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"egrul": {
"command": "uvx",
"args": [
"atomno-mcp-egrul"
],
"env": {
"ATOMNO_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"egrul": {
"type": "stdio",
"command": "uvx",
"args": [
"atomno-mcp-egrul"
],
"env": {
"ATOMNO_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub atomno-mcp ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ATOMNO_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.10) เข้า registry 4 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี USVI Public Records, Spectrum Data Digital, Lintsure
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Search and read U.S. Virgin Islands public records: laws, court records, audits, hearings, reports.
Sanctions screening, SAM.gov contract leads and new UK company checks for AI agents and Claude.
Compliance readiness checks for code: EU AI Act, GDPR, SOC 2, ISO 27001. Local. Not legal advice.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP-сервер ЕГРЮЛ и ЕГРИП: реквизиты российских компаний и ИП по открытым данным налоговой службы. Можно поставить у себя или подключить к Cursor, Claude и любому клиенту MCP.
Russian company registry lookup for AI agents.
Статус: v0.1.2 — open-версия (self-host через SQLite) полностью готова + клиентская часть hosted Pro (HTTP-клиент HostedClient для api.atomno-mcp.ru). Опубликована на PyPI, индексирована в Glama и Smithery. Сама hosted Pro-инфра — в активной разработке. Coverage `100.00%` (345 тестов, ruff clean, fastmcp 3.2.4, enforced через --cov-fail-under=100).
Парный проект: mcp-fns-check (risk-чек-слой поверх ЕГРЮЛ).
Семь MCP-тулзов, видимых AI-ассистенту (Cursor, Claude Desktop, Cline, любой MCP-клиент):
| Tool | Описание | Аргументы |
|---|---|---|
search_by_inn | Поиск по ИНН (10 цифр — юр.лицо, 12 — ИП) | inn: str |
search_by_ogrn | Поиск по ОГРН (13) или ОГРНИП (15) | ogrn: str |
search_by_name | Fuzzy-поиск по названию (FTS5) | query: str, limit?: int, only_active?: bool |
get_full_card | Полная карточка со всеми секциями | inn?: str, ogrn?: str |
get_founders | Только учредители с долями | inn: str |
get_director | Только текущий руководитель | inn: str |
bulk_cards | Массовая проверка (до 100 ИНН) | inns: list[str] |
Плюс диагностический ping для проверки что сервер жив.
Полная спецификация payload'ов — в src/mcp_egrul/schemas.py (Pydantic-модели CompanyCard, IECard, SearchResult, BulkResult).
# Без локального clone — работает «из коробки»
uvx atomno-mcp-egrul
pipx install atomno-mcp-egrul atomno-mcp-egrul
pip install atomno-mcp-egrul atomno-mcp-egrul
Требуется Python 3.11+ и uv (быстрая замена pip, опционально).
git clone https://github.com/atomno-mcp/mcp-egrul
cd mcp-egrul uv venv uv pip install -e ".[dev]"
Альтернативно через pip:
python -m venv .venv
.venv/Scripts/activate # Windows
pip install -e ".[dev]"
atomno-mcp-egrul
Транспорт по умолчанию — stdio (стандартный ввод/вывод JSON-RPC). Подходит для подключения к Cursor / Claude Desktop / Claude Code.
claude_desktop_config.json){
"mcpServers": { "egrul": { "command": "uvx", "args": ["atomno-mcp-egrul"] } } }
.cursor/mcp.json в проекте или ~/.cursor/mcp.json глобально){
"mcpServers": { "egrul": { "command": "uvx", "args": ["atomno-mcp-egrul"] } } }
Если не используете
uv, замените"command": "uvx", "args": ["atomno-mcp-egrul"]на"command": "atomno-mcp-egrul"(требуетpip install atomno-mcp-egrulилиpipx install atomno-mcp-egrul).
# 1. Скачайте дампы ФНС (acceptance на сайте ФНС — раз в жизни).
mkdir -p dumps/egrul/2026-04-24 dumps/egrip/2026-04-24 cp ~/Downloads/EGRUL_*.zip dumps/egrul/2026-04-24/ cp ~/Downloads/EGRIP_*.zip dumps/egrip/2026-04-24/
docker compose --profile import run --rm \ mcp-egrul-import atomno-mcp-egrul-import --registry egrul --full docker compose --profile import run --rm \ mcp-egrul-import atomno-mcp-egrul-import --registry egrip --full
docker compose up -d docker compose logs -f mcp-egrul-scheduler
Через ~10 минут после импорта все тулзы (search_by_inn, search_by_name и пр.) уже отвечают данными из локального слепка ФНС.
Схема тома /data внутри контейнера:
/data/
├── mcp_egrul_data.sqlite # SQLite + FTS5 └── dumps/ # read-only монтируется из ./dumps ├── egrul/ │ └── YYYY-MM-DD/*.zip └── egrip/ └── YYYY-MM-DD/*.zip
Cron-демон (atomno-mcp-egrul-scheduler) сам забирает самую свежую выгрузку после того как вы положите её в dumps/ / / — ночью в 03:00 Europe/Moscow. Если ничего нового нет — job завершится с nothing_to_import и никаких лишних записей в import_log не сделает.
Источники:
https://www.nalog.gov.ru/opendata/7707329152-egrul/https://www.nalog.gov.ru/opendata/7707329152-egrip/Формат: суточные архивы XML в ZIP, ~15 ГБ на полный слепок. Юридически их нужно скачать с сайта ФНС после acceptance лицензии — сервер не качает архивы сам (строго).
CLI:
# Полный первоначальный импорт (однократно):
atomno-mcp-egrul-import --registry egrul --full atomno-mcp-egrul-import --registry egrip --full
import_log.source_dump_date.nothing_to_import.atomno-mcp-egrul-import --registry egrul --incremental
atomno-mcp-egrul-scheduler --run-now
Exit-коды atomno-mcp-egrul-import:
| Код | Значение |
|---|---|
| 0 | Импорт прошёл успешно |
| 2 | Невалидный конфиг / аргумент CLI |
| 4 | Ошибка ингеста (битый XML, нет каталога дампов, DB error) |
| 5 | nothing_to_import — самая свежая дата уже в БД (инкремент) |
api.atomno-mcp.ru)Когда пользователь задаёт ATOMNO_API_KEY, все семь тулзов автоматически проксируются на hosted Pro API (SPEC §5.4, §5.4.1). Локальный SQLite в этом режиме не используется — hosted Pro даёт:
egrul.nalog.ru + Dadata fallback на стороне сервера.POST /companies/bulk) — один запрос вместо N локальных gather'ов.Цена: Pro — $10/мес отдельно или $15/мес в паре с mcp-fns-check (bundle-ключ). Free tier: 30 запросов/день/IP без регистрации (SPEC §1).
Настройка в Cursor (.cursor/mcp.json):
{
"mcpServers": { "egrul": { "command": "uvx", "args": ["atomno-mcp-egrul"], "env": { "ATOMNO_API_KEY": "your-pro-key-here" } } } }
Поведение и ошибки — никакого silent fallback: если hosted API недоступен, клиент поднимает типизированное исключение, а не молча отдаёт данные из устаревшего локального дампа. Сопоставление HTTP ↔ MCP-код ошибки — в SPEC §5.4.1:
| HTTP-ответ hosted API | Исключение клиента | error.code |
|---|---|---|
| 200 | — | — |
| 400 | ValidationError | invalid_input |
| 401 | HostedAuthError | auth_required |
| 403 | ProRequiredError | pro_required |
| 404 (code=not_found) | NotFoundError | not_found |
| 404 (wrong route) | SourceUnavailableError | source_unavailable |
| 413 | BulkTooLargeError | bulk_too_large |
| 429 | RateLimitedError (+ Retry-After) | rate_limit |
| 5xx | SourceUnavailableError | source_unavailable |
| timeout / DNS fail | SourceUnavailableError (cause=timeout/ConnectError) | source_unavailable |
Валидация ИНН/ОГРН остаётся клиент-саид (контрольные цифры проверяются до HTTP-запроса — экономия round-trip на битых идентификаторах).
| Переменная | Описание | По умолчанию |
|---|---|---|
MCP_EGRUL_DB | Путь к SQLite-файлу со слепком ЕГРЮЛ/ЕГРИП | ./mcp_egrul_data.sqlite |
MCP_EGRUL_USER_AGENT | User-Agent HTTP-клиента | mcp-egrul/0.1 (+https://github.com/atomno-mcp/mcp-egrul) |
MCP_EGRUL_HTTP_TIMEOUT | Таймаут HTTP в секундах | 30 |
MCP_EGRUL_DUMPS_DIR | Каталог с дампами ФНС, структура / / /*.zip | ./dumps |
MCP_EGRUL_LOG_LEVEL | Уровень логирования | INFO |
TZ | Таймзона для scheduler (cron 03:00) | Europe/Moscow |
ATOMNO_API_KEY | (Pro) ключ hosted-подписки — включает проксирование на api.atomno-mcp.ru | не задан |
ATOMNO_API_BASE | (Pro) базовый URL hosted-API | https://api.atomno-mcp.ru/mcp-egrul/v1 |
Пример — см. .env.example.
apps/mcp-egrul/
├── pyproject.toml ├── LICENSE # MIT ├── README.md # ЭТОТ ФАЙЛ ├── Dockerfile ├── docker-compose.yml ├── .env.example ├── .gitignore ├── src/mcp_egrul/ │ ├── init.py │ ├── server.py # FastMCP entrypoint, регистрация 7 тулзов + ping │ ├── context.py # ServiceContext (DI: SQLiteStore + HTTP-клиент) │ ├── config.py # Чтение env-vars в типизированные поля │ ├── constants.py # Все магические числа и enum'ы │ ├── validators.py # Контрольные цифры ИНН (10/12) и ОГРН (13/15) │ ├── schemas.py # Pydantic-модели CompanyCard/IECard/SearchResult/... │ ├── errors.py # McpEgrulError и подклассы │ ├── db/ │ │ ├── init.py │ │ └── sqlite.py # Async-клиент (aiosqlite), init/query/upsert/search + import_log │ ├── sources/ │ │ ├── init.py │ │ ├── base.py # Абстрактный интерфейс Source │ │ ├── opendata.py # ФНС open-data адаптер (read-local → SQLite upsert) │ │ ├── opendata_parser.py # Потоковый lxml.iterparse парсер ЕГРЮЛ/ЕГРИП XML │ │ └── hosted_adapter.py # HTTP-клиент hosted Pro API (SPEC §5.4.1) │ ├── tools/ │ │ ├── init.py │ │ ├── search_by_inn.py │ │ ├── search_by_ogrn.py │ │ ├── search_by_name.py │ │ ├── get_full_card.py │ │ ├── get_founders.py │ │ ├── get_director.py │ │ └── bulk_cards.py │ └── scripts/ │ ├── init.py │ ├── import_opendata.py # CLI atomno-mcp-egrul-import (ручной / одноразовый) │ └── scheduler.py # CLI atomno-mcp-egrul-scheduler (apscheduler cron 03:00 MSK) └── tests/ ├── init.py ├── conftest.py ├── fixtures/ │ ├── egrul_sample.xml # Мини-ЕГРЮЛ (2 валидных + 1 skip на неизвестный статус) │ └── egrip_sample.xml # Мини-ЕГРИП (active + closed) ├── test_validators.py ├── test_schemas.py ├── test_config.py # Config.from_env + _parse_float_env (валидация env) ├── test_sqlite_store.py ├── test_cards.py # _cards.py: parse_iso_date/datetime + build_*card ├── test_server_ping.py # FastMCP tool-layer + server.main() ├── test_tools.py # 7 тулзов: happy-path + validation + not_found ├── test_opendata_parser.py # XML-парсер (zip, xml, skip-на-неизвестный-статус) ├── test_opendata_source.py # OpenDataSource.run_ingest (full/incremental) ├── test_integration_import.py # Полный цикл import → search → get_card ├── test_import_cli.py
ตัดมาแค่ช่วงต้น อ่านต่อใน repo