# Achromat MOM

MCP-сервер, который сверяет вызовы инструментов с политикой и подсказывает исправленный вариант до того, как агент что-то выполнит.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 1
- Автор: achromat-ai
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/achromat-ai/achromat-mcp-server
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/achromat-mom

## Что делает

Агент часто вызывает инструмент, который политика потом блокирует: платёж, SQL-запрос, команду на оборудовании. Achromat MOM хранит проверенные случаи — какие вызовы блокировались и в каком виде их затем пропустили. Сервер отдаёт эти данные агенту как обычные инструменты, поэтому тот может спросить разрешённую версию заранее.

Работает локально: хост запускает сервер как дочерний процесс, обмен идёт по stdio. Каждый запрос к MOM подписывается ключом Ed25519, который лежит на вашей машине, — наружу уходит только подпись. Ключ создаётся при первом обращении: сервер предлагает инструмент `achromat_register_identity`, агент спрашивает ваше согласие, после чего пара ключей генерируется, проходит короткий proof of work и публичная часть регистрируется. Приватный ключ сохраняется в `~/.achromat/achromat_agent_key.pem` и доступен только вам. Нужен Node.js 20 или новее.

Дальше появляются `achromat_recall` и `achromat_calibrate`. Первый ищет готовое совпадение по имени инструмента и структуре аргументов, второй проверяет вызов по актуальной политике и возвращает вердикт. Если пришёл `BLOCK`, аргументы правят по директиве и повторяют вызов с тем же `task_description` и полученным `trap_id`. Файл ключа — это и есть ваша личность: потеряете его, восстановить не получится, поэтому держите вне git. Путь можно переопределить переменной `ACHROMAT_AGENT_KEY_FILE`.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://mom.achromat.ai/mcp`
- Переменные окружения: `ACHROMAT_AGENT_KEY_FILE`, `ACHROMAT_BASE_URL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http mcp-server https://mom.achromat.ai/mcp
```

2. **Командой платформы**
```bash
claude mcp add --env ACHROMAT_AGENT_KEY_FILE=<ACHROMAT_AGENT_KEY_FILE> --env ACHROMAT_BASE_URL=<ACHROMAT_BASE_URL> --transport stdio achromat-mom -- npx -y @achromat-ai/mcp-server
```
Вместо <…> подставьте свои значения

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add achromat-mom --url https://mom.achromat.ai/mcp
```

2. **Командой платформы**
```bash
codex mcp add achromat-mom --env ACHROMAT_AGENT_KEY_FILE=<ACHROMAT_AGENT_KEY_FILE> --env ACHROMAT_BASE_URL=<ACHROMAT_BASE_URL> -- npx -y @achromat-ai/mcp-server
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "achromat-mom": {
            "url": "https://mom.achromat.ai/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "achromat-mom": {
            "command": "npx",
            "args": [
                "-y",
                "@achromat-ai/mcp-server"
            ],
            "env": {
                "ACHROMAT_AGENT_KEY_FILE": "<ACHROMAT_AGENT_KEY_FILE>",
                "ACHROMAT_BASE_URL": "<ACHROMAT_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "achromat-mom": {
            "type": "http",
            "url": "https://mom.achromat.ai/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "achromat-mom": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@achromat-ai/mcp-server"
            ],
            "env": {
                "ACHROMAT_AGENT_KEY_FILE": "<ACHROMAT_AGENT_KEY_FILE>",
                "ACHROMAT_BASE_URL": "<ACHROMAT_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http achromat-mom https://mom.achromat.ai/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e ACHROMAT_AGENT_KEY_FILE=<ACHROMAT_AGENT_KEY_FILE> -e ACHROMAT_BASE_URL=<ACHROMAT_BASE_URL> achromat-mom npx -y @achromat-ai/mcp-server
```
Вместо <…> подставьте свои значения

## Когда брать
- узнать разрешённую версию вызова до его выполнения
- сверить параметры платежа с действующей политикой
- получить исправление после блокировки и повторить вызов
- не писать интеграционный код под каждый хост
- хранить ключ подписи только на своей машине

## Примеры запросов агенту
- Проверь через `achromat_recall`, можно ли выполнить этот вызов, домен `fintech`
- Сверь вызов с политикой через `achromat_calibrate` и покажи вердикт
- Пришёл `BLOCK` — поправь аргументы по директиве и повтори с тем же `task_description` и `trap_id`

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
