MCP для ИИ-агентов
Платформа отдаёт платные проверки как инструменты MCP: агент сам получает схемы входа, вызывает проверки и читает риск-профиль. Каждый вызов проходит тот же путь, что REST: валидация → списание с баланса организации → выполнение → авто-возврат при ошибке.
Подключение
- URLЗначение https://api.inforensic.pro/v2/mcp
- ТранспортЗначение MCP Streamable HTTP (JSON-RPC 2.0 поверх POST, ответы — SSE)
- АвторизацияЗначение X-API-Key: <ключ агента> (можно Authorization: Bearer)
- Протокол MCPЗначение 2025-06-18
Ключ — client/organization-scoped: вызовы списываются с баланса организации по цене модуля. Service-ключи без организации списание не проходят.
Протокол вызова
Handshake
# 1) initialize — забрать Mcp-Session-Id из заголовков ответа
curl -si -X POST https://api.inforensic.pro/v2/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: $CONTEXT_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'
# 2) initialized, 3) tools/list, 4) tools/call — все с Mcp-Session-Id
curl -s -X POST .../v2/mcp -H "Mcp-Session-Id: $SID" ... \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Готовые SDK делают handshake сами — обычно достаточно
list_tools /
call_tool. Ответ приходит SSE-кадром
(data: {…}).
Формат ответа инструмента
content[0].text
{
"status": "COMPLETED", "success": true,
"module_name": "compliance.rus.fns_disqualified",
"data": { "found": false, "total_count": 0, "results": [],
"risk_profile": { "overall_level": "A_GREEN" } },
"data_actual_date": "2026-09-27"
}
Ошибки приходят как tool-ошибка (isError = true) с текстом в content[0].text — агент видит
причину и может скорректировать вызов. Транспортные ошибки авторизации — HTTP 401.
Инструменты 63
Имя инструмента — ключ модуля с точками, заменёнными на подчёркивания:
compliance.rus.fns_disqualified →
compliance_rus_fns_disqualified. Схемы входа
агент получает сам из inputSchema.
Юрисдикция названа вторым сегментом ключа: rus, kaz, blr, uzb, kgz, arm, geo, pol, eu, global.
Данные о бизнесе
Беларусь
Международные источники
Казахстан
Польша
Комплаенс
Армения
Беларусь
Международные источники
Казахстан
Россия
- compliance_rus_arbitration_courts
- compliance_rus_cbr_warning_list
- compliance_rus_cbr_warning_list_fl
- compliance_rus_credit_rating
- compliance_rus_credit_scoring
- compliance_rus_efrsb_bankruptcy
- compliance_rus_fnp_pledges
- compliance_rus_fns_account_suspension
- compliance_rus_fns_au_violations
- compliance_rus_fns_azart_list
- compliance_rus_fns_disqualified
- compliance_rus_fns_lottery_list
- compliance_rus_fns_mass_founders
- compliance_rus_fns_mass_leaders
- compliance_rus_fns_subsidiary_defendant
- compliance_rus_fns_tax_debtor
- compliance_rus_fsfm_terrorists
- compliance_rus_fsin_criminal_wanted
- compliance_rus_fssp_alimony_debtor
- compliance_rus_fssp_criminal_wanted
- compliance_rus_fssp_debtor_wanted
- compliance_rus_fssp_ip_debtor
- compliance_rus_general_courts
- compliance_rus_government_corruptioners
- compliance_rus_minjust_foreign_agents
- compliance_rus_mvd_controlled_persons
- compliance_rus_mvd_wanted
- compliance_rus_rupep_pep
Узбекистан
Верификация в госсервисах
Биллинг и лимиты
- • Каждый вызов списывает стоимость модуля с баланса организации (канал API).
- • При ошибке выполнения средства возвращаются автоматически (auto-refund).
- • Недостаток средств — tool-ошибка «Недостаточно средств», без выполнения.
-
• Лимит — 120 вызовов в минуту на ключ; превышение даёт HTTP 429 с заголовком
Retry-After. Уважайте его: окно общее для всех подключений агента.
Примеры
Claude Desktop / Claude Code
// mcpServers в конфиге клиента (Claude Desktop, Claude Code и др.)
{
"mcpServers": {
"context": {
"command": "npx",
"args": [ "mcp-remote", "https://api.inforensic.pro/v2/mcp",
"--header", "X-API-Key:${CONTEXT_API_KEY}" ],
"env": { "CONTEXT_API_KEY": "ctx_svc_…" }
}
}
} Python (официальный MCP SDK)
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
URL = "https://api.inforensic.pro/v2/mcp" # ключ агента: org-scoped
async with streamablehttp_client(URL, headers={"X-API-Key": KEY}) as (read, write, _):
async with ClientSession(read, write) as s:
await s.initialize()
res = await s.call_tool("compliance_rus_fns_disqualified", {
"last_name": "Иванов", "first_name": "Иван", "birth_date": "1990-01-01",
})
print(res.content[0].text) # JSON-конверт CommonResponse Рекомендации для агента
- • Читай inputSchema и заполняй required-поля; даты — YYYY-MM-DD.
- • Ориентируйся на data.found и data.risk_profile.overall_level для решения.
- • Обрабатывай isError как штатный результат (недоступность источника, капча, лимиты) — это не сбой транспорта; можно повторить позже.
- • Держи одну сессию на серию вызовов, не переинициализируйся на каждый запрос.
- • Не логируй ключ и полученные перс. данные вне доверенного контура.