sat69-mcp
MCP SAT 69 / 69-B · WATR
Сервер MCP (Model Context Protocol) на Python / FastMCP для запросов к публичным спискам SAT:
Статья 69-B CFF (EFOS) — симулированные операции: предполагаемые, опровергнутые, окончательные, благоприятное судебное решение.
Статья 69 CFF — окончательный налоговый статус: вступившие в силу, подлежащие взысканию, не найденные, аннулированные, прощённые.
Та же архитектура, что и у MCP мобилизаций SSC-CDMX: FastMCP с транспортом stdio + Streamable HTTP, OAuth 2.1 (WorkOS AuthKit) с запасным вариантом на статический bearer, хранение в Turso (libSQL), опциональный прокси для загрузки и развёртывание на Render с внешним cron (GitHub Actions). Без OCR: CSV-файлы SAT уже поставляются структурированными.
Инструменты
Инструмент | Что делает |
| Проверяет RFC → вердикт о риске ( |
| Проверяет до 500 RFC; возвращает только находки по серьёзности. |
| Поиск по имени/фирменному наименованию (FTS5, без учёта диакритики). |
| Заявленная SAT актуальность, счётчики и последний импорт. |
| Загружает и синхронизирует списки (идемпотентно по хэшу). |
Риск: CRITICO (EFOS окончательный) · ALTO (EFOS предполагаемый) · MEDIO (69 вступивший в силу / подлежащий взысканию / не найденный) · BAJO (опровергнутый / благоприятное судебное решение) · INFORMATIVO (69 аннулированный / прощённый) · LIMPIO.
Результаты отражают последний импорт публичных файлов SAT. Они не являются налоговой или юридической консультацией.
Related MCP server: rues
Архитектура
CSV del SAT (Latin-1) ┌────────── FastMCP ──────────┐
│ fetcher (httpx + proxy opcional) │ verificar_rfc / _lote │
▼ │ buscar_nombre / estado_datos │
pipeline (parse 69 / 69b) ──► SQLite ──┤ actualizar_datos │
│ (FTS5 unicode61, triggers) ▲ │ └──────────┬──────────────────┘
▼ │ │ stdio (server.py) + HTTP (web.py)
Turso (libSQL, durable) ◄── push │ └► pull al arranque │
└─────────────────── /health /refresh /reloadserver.py— FastMCP (stdio) + инструменты + AuthKit.web.py— Starlette/uvicorn (HTTP):/health(открытый),/refreshи/reload(bearer M2M),/mcp(OAuth или bearer).pipeline.py— загрузка → SHA-256 (пропускает, если не изменился) → разбор Latin-1 → замена в SQLite → push в Turso.database.py— SQLite + FTS5 с триггерами; RFC по индексу B-tree (горячий путь).turso.py— устойчивая синхронизация Turso ↔ локально.risk.py— нормализация RFC + дерево вердикта (69-B имеет приоритет над 69).
Локальная установка
cd sat69-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# Primera ingesta (descarga ~22 MB; el 69 son ~½ millón de filas)
python -c "from sat69 import database as db, config; db.init_db(config.settings.db_path)"
python -c "from sat69.pipeline import process_import; print(process_import())"
# Probar
pytest -qПодключение в Claude Desktop / Cowork (stdio)
{
"mcpServers": {
"sat69": { "command": "sat69-mcp" }
}
}(или "command": "python", "args": ["-m", "sat69"] с активным venv.)
Развёртывание на Render
render.yaml создаёт веб-сервис с нативным Python runtime (без Docker):
Загрузите репозиторий на GitHub и создайте Blueprint в Render, указывающий на
render.yaml.Переменные (помеченные
sync:false):MCP_API_KEY(bearer), опциональноAUTHKIT_DOMAIN+BASE_URL(OAuth),TURSO_DATABASE_URL+TURSO_AUTH_TOKEN.MCP endpoint:
POST https://<servicio>.onrender.com/mcp.
Auth (два режима, как и у мобилизаций)
Статический bearer (
MCP_API_KEY): простой, защищает/mcp,/refresh,/reload.OAuth 2.1 (WorkOS AuthKit): задайте
AUTHKIT_DOMAIN+BASE_URL, и/mcpпереходит на OAuth с Dynamic Client Registration; bearer по-прежнему защищает M2M endpoints.
Автоматическое обновление
.github/workflows/refresh.yml выполняет POST /refresh ежедневно (11:30 UTC ≈ 05:30 CDMX). Секреты репозитория: RENDER_BASE_URL, MCP_API_KEY. Вручную: workflow_dispatch (с force).
Хранение данных (Turso)
Локальный SQLite (эфемерный на Render, /tmp) обслуживает запросы; Turso — это долговременное хранилище, которое переживает редеплои. При запуске выполняется pull из Turso; после каждого actualizar_datos//refresh выполняется push. Без TURSO_* сервис работает в чисто локальном режиме.
Прокси для загрузки (опционально)
FETCH_PROXY или DATAIMPULSE_* маршрутизируют только загрузку CSV. В ходе тестов SAT не блокировал IP-адреса дата-центров (прямые загрузки возвращали 200), так что обычно это не требуется; функциональность сохранена для паритета и отказоустойчивости.
Источники данных (SAT · Datos Abiertos)
69-B:
Listado_Completo_69-B.csv(~14 тыс. записей, 20 колонок, заголовок в строке 3).69:
Firmes.csv,Cancelados.csv,NoLocalizados.csv,Exigibles.csv,Sentencias.csv,Condonados.csv(~½ млн записей, 6 колонок). URL-адреса вconfig.py.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceLatin American business compliance suite — 28 tools for tax ID validation (CPF, CNPJ, RFC, RUT, CUIT, NIT), banking (PIX, CLABE, CBU), VAT rules, e-invoicing (NF-e, CFDI, DTE), holidays, and labor calendar across Brazil, Mexico, Chile, Argentina, and Colombia.28
- FlicenseNot gradedqualityDmaintenanceEnables querying the Colombian Business Registry (RUES) for company searches by name, location grouping, and detailed company information.
- FlicenseNot gradedqualityCmaintenanceProvides business intelligence, compliance tools, and economic data for Latin America, including Brazilian company lookups, tax ID validation for multiple countries, and economic indicators from official government sources.
- FlicenseNot gradedqualityCmaintenanceEnables consultation of Argentine credit situations (Central de Deudores) via BCRA API, providing tools for current status, historical trends, rejected checks, and consolidated reports.
Related MCP Connectors
Simplified lookup of a person's or company's lawsuits from the CPF or CNPJ. Platform-hosted, no cred
Receita Federal: Situação Fiscal, official-source lookup. Platform-hosted, pay per query with prepai
Receita Federal PGFN: Lista de Devedores, official-source lookup. Platform-hosted, pay per query wit
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/edbror/sat69-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server