Skip to main content
Glama
atomno-mcp

io.github.atomno-mcp/mcp-sanctions

atomno-mcp-sanctions

Скрининг по санкционным перечням прямо в AI-ассистенте — sanctions and watchlist screening for persons and organizations: Rosfinmonitoring, OFAC SDN, EU consolidated, UK OFSI, UN Security Council. Works in Cursor, Claude Desktop, Cline, and any MCP client.

Проверьте контрагента или физлицо по публичным перечням за один вызов — с нейтральной выдачей (уровень совпадения, версия перечня, дата проверки) и обязательной ручной верификацией.

Инструмент не выносит суждений о лице и не является основанием для решений сам по себе. Список отказников ЦБ не поддерживается (не публичен).

Что умеет

  • screen_person — скрининг физлица по ФИО (+ опционально дата рождения).

  • screen_entity — скрининг организации по наименованию, ИНН, ОГРН.

  • screen_inn — быстрый поиск по ИНН.

  • list_watchlists — метаданные поддерживаемых перечней и дат обновления.

Related MCP server: opensanctions-mcp

Быстрый старт

pipx install atomno-mcp-sanctions
# или: uvx atomno-mcp-sanctions

Cursor / Claude Desktop (mcp.json):

{
  "mcpServers": {
    "sanctions": {
      "command": "uvx",
      "args": ["atomno-mcp-sanctions"],
      "env": { "MCP_SANCTIONS_API_KEY": "<ваш-ключ-Pro>" }
    }
  }
}

Переменные окружения

Переменная

Описание

Обязательна

MCP_SANCTIONS_API_KEY

Ключ Pro (заголовок X-API-Key). Получить

да

MCP_SANCTIONS_API_BASE

URL hosted-бэкенда (default: https://api.atomno-mcp.ru/sanctions)

нет

MCP_SANCTIONS_TIMEOUT

Таймаут HTTP, сек (default: 30)

нет

MCP_SANCTIONS_LOG_LEVEL

Уровень логов (перебивается --log-level)

нет

CLI

atomno-mcp-sanctions --help
atomno-mcp-sanctions --version
atomno-mcp-sanctions --transport stdio

Disclaimer

Каждый ответ содержит поле disclaimer: инструмент сообщает только о совпадении с записью публичного перечня на указанную дату; данные могут устаревать. Ответственность за принимаемые решения несёт пользователь.

Лицензия

MIT — см. LICENSE.

Не аффилировано с Росфинмониторингом, OFAC, Еврокомиссией, HM Treasury или ООН.

Available Tools

5 tools
list_watchlistsA

Метаданные поддерживаемых публичных перечней: id, источник, версия, дата обновления. Тариф Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the output contents (metadata fields) and the Pro access restriction, but does not explicitly state that the operation is read-only or whether pagination or rate limits apply. For a simple no-parameter listing tool, this is minimal but acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is very short, front-loads the key information, and contains no filler. The lack of a main verb makes it a fragment rather than a polished sentence, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, an output schema, and sibling tools that reveal the domain, the description covers the essential extra context: what metadata is returned and that Pro access is required. It does not cover error conditions or list semantics, but those are not necessary for a simple metadata listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema description coverage is 100%, so the description does not need to add parameter-level semantics. The 0-parameter baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('supported public lists') and the information returned (id, source, version, update date), which distinguishes it from the screening-focused siblings. However, it is a noun phrase with no explicit verb like 'returns' or 'lists', so the action is mostly conveyed by the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a usage condition ('Pro tariff'), indicating that Pro access is required, but it does not explicitly state when to use this tool versus the screen_* siblings. The intended use is implied by the domain, but no direct comparison or exclusion is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_entityB

Скрининг организации по наименованию и опционально ИНН/ОГРН по публичным перечням. Тариф Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault
innNoИНН организации (10 или 12 цифр), если известен.
nameYesНаименование организации для скрининга.
ogrnNoОГРН/ОГРНИП (13 или 15 цифр), если известен.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It mentions screening against public lists and the Pro tariff, but it does not disclose what the operation returns, whether it is read-only, what happens on matches/no matches, or any rate limits or auth prerequisites beyond the tariff hint. This is too thin for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with no redundant words; the core purpose is front-loaded and 'Tariff Pro' adds a compact plan-related constraint. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameters are fully documented in the schema and an output schema exists, so the description need not restate return values. Still, with no annotations and no explicit sibling differentiation, the agent must infer behavioral and selection details. The description is adequate for a basic screening tool but leaves some completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%: the schema already describes name as required, and ИНН/ОГРН as optional with digit-length validation. The description only restates the optionality of these identifiers and does not add meaningful semantic detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool performs screening of an organization by name and optionally ИНН/ОГРН against public lists. It uses a specific noun and scope ('организации'), which semantically separates it from person-oriented siblings such as screen_person. However, it does not explicitly name or contrast sibling tools, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage is implied: use this tool when you need to screen an organization by name and optionally ИНН/ОГРН. There is no explicit guidance about when not to use it or when to prefer screen_person, screen_inn, or list_watchlists. The 'Tariff Pro' note gives a plan constraint but not usage-vs-alternative direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_foreign_agentA

Проверка по реестру иностранных агентов (Минюст РФ): точное и нечёткое совпадение ФИО/ИНН. Нейтральная выдача.

ParametersJSON Schema
NameRequiredDescriptionDefault
fioYesФИО или наименование для проверки по реестру иностранных агентов.
innNoИНН (10 или 12 цифр), если известен.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It partially does so by revealing exact/fuzzy matching and 'neutral output', which are meaningful behavioral traits. However, it does not explain what 'neutral output' means, whether results are limited to matches, or any side effects; the read-only nature is only implied by 'Проверка'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no wasted words: it leads with the resource, states the match behavior, and closes with the output stance. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and its parameters are already well documented, so return-value detail is not required. But the description still lacks guidance about when to prefer this tool over sibling screening tools, and it leaves the 'neutral output' phrase ambiguous. An agent could invoke it correctly, but selection among the siblings would benefit from more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents fio and inn with their types, requirements, and defaults. The description mentions 'ФИО/ИНН' but adds no format, constraint, or semantic detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it checks the Russian Ministry of Justice foreign agents register. It also adds matching semantics (exact/fuzzy ФИО/ИНН), which clarifies the purpose. However, it does not explicitly contrast with sibling tools such as screen_person or screen_inn, so it stops shy of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: an agent should call this when a foreign agent registry check is needed. There is no explicit when-to-use guidance, no when-not-to-use conditions, and no mention of how it relates to screen_person, screen_entity, screen_inn, or list_watchlists. The absence of exclusions makes it usable, but the guidance is not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_innB

Быстрый точный скрининг по ИНН по всем поддерживаемым перечням. Тариф Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault
innYesИНН физлица или юрлица (10 или 12 цифр).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the behavioral disclosure burden. It adds 'Тариф Pro' as an access prerequisite and 'all supported lists' as scope, which is useful context. However, it does not describe result behavior, side effects, or authorization details beyond the tariff mention.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short: one sentence for the core purpose and one for the Pro tariff constraint. It is front-loaded with the action and contains minimal fluff, though 'Быстрый точный' is mildly promotional and adds little factual substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter screening tool with an output schema, the description is nearly adequate: it specifies the input ИНН and the broad screening scope. It lacks guidance on when to use this tool instead of the sibling screen tools and does not explain what the supported lists contain, leaving some contextual ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the sole parameter completely with a clear description of ИНН for individuals and legal entities, so the tool description need not add much. The description's 'по ИНН' merely duplicates what the schema already states, which is appropriate but adds no extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, 'скрининг' (screening), on a specific resource, 'ИНН', across all supported lists, which clearly conveys the core functionality. It does not explicitly contrast with the sibling screen_person/scrеen_entitу tools, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to choose screen_inn over screen_erson, scrеen_entitу, or list_watchlists. The phrase 'по всем поддерживаемым перечням' implies broad coverage, but it neither names alternatives nor states exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_personA

Скрининг физлица по ФИО (+ опционально дата рождения) по публичным перечням. Нейтральная выдача, требуется ручная верификация. Тариф Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault
full_nameYesФИО физлица для скрининга (напр. «Иванов Иван Иванович»).
birth_dateNoДата рождения YYYY-MM-DD для дизамбигуации однофамильцев.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that results are neutral, require manual verification, and that the operation runs against public lists, which conveys the non-authoritative nature of the output. It also notes the Pro tariff requirement, adding access context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, purposeful sentences: what the tool does, what the output behavior is, and what tariff is required. No filler and no repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with an output schema present, the description is complete enough: it covers purpose, source lists, output neutrality, manual verification need, and access tier. Return-value details are handled by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents full_name and birth_date well. The description adds minimal extra semantics beyond restating that screening is by full name with optional birth date, which keeps this at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Purpose is explicit: screening a natural person ('физлица') by full name, optionally birth date, against public lists. This clearly distinguishes it from siblings like screen_entity, screen_inn, and screen_foreign_agent, since it is person-centric and name-based.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it—when an individual needs screening by full name against public lists—and mentions optional birth date for disambiguation. However, it does not explicitly state when not to use it or name alternatives such as screen_inn or list_watchlists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.1
    • First observedlist_watchlists
    • First observedscreen_entity
    • First observedscreen_foreign_agent
    • First observedscreen_inn
    • First observedscreen_person

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

The tools are mostly distinct by target: person, entity, INN, foreign-agent registry, and watchlist metadata. However, screen_person and screen_foreign_agent overlap for individuals, and screen_inn can cover both persons and entities when an INN is available.

Naming Consistency5/5

All tools use a consistent verb_noun snake_case pattern: screen_* for screening actions and list_watchlists for metadata. The naming is predictable and easy to navigate.

Tool Count5/5

Five tools is a well-scoped size for a sanctions screening server. Each tool addresses a common query path, and none feels redundant or unnecessary.

Completeness4/5

Core person, entity, and INN screening are covered, plus watchlist metadata. Minor gaps exist, such as batch screening, screening by passport/document, or OGRN-only lookup, but agents can usually work around them with the available tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers