Context-light universal MCP adapter and CLI for Atractio Agent Hub
Find a file
2026-07-12 22:29:37 +00:00
configs Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
src/atractio_tool Use platform config root for OpenCode skills 2026-07-12 22:29:37 +00:00
.gitignore Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
LICENSE Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
pyproject.toml Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
README.md Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00

Atractio Tool

Контекстно-лёгкий клиент для MCP-сервисов https://agent.atractio.lol.

Вместо подключения восьми удалённых MCP и загрузки всех их схем локальный adapter показывает агенту только три meta-tool:

  • hub_skill(service) — скачать короткие правила выбранного сервиса;
  • hub_discover(service?, query?, tool?) — показать каталог, найти подходящий tool или получить одну точную схему;
  • hub_call(service, tool, arguments) — выполнить выбранный tool на сервере.

Сами Mnemosyne, SearXNG, Playwright, Context7, Serena, Repomix и Forgejo продолжают работать на сервере. Локальный пакет не содержит их реализацию и не получает Forgejo credentials.

Архитектура

Agent -> 3 local meta-tools -> HTTPS /tool/v1 -> selected server-side MCP
                |                      |
                |                      +-> identity-scoped Mnemosyne/Forgejo backend
                +-> separate token file

Удалённые схемы загружаются только по запросу для одного выбранного tool. Это уменьшает постоянный MCP context и не замораживает схемы в клиентском репозитории.

Требования

Python 3.9+ на Linux, macOS или Windows.

Установка

Рекомендуется pipx:

pipx install "git+https://git.barem.atractio.lol/rethinger/atractio-tool.git"

Альтернатива:

python -m pip install --user "git+https://git.barem.atractio.lol/rethinger/atractio-tool.git"

После установки доступны команды atractio-tool и atractio-tool-mcp.

Отдельный файл токена

Токен из Account Dashboard записывается только в отдельный файл:

  • Linux/macOS: ~/.config/atractio/token
  • Windows: %APPDATA%\Atractio\token

Путь можно посмотреть:

atractio-tool token-path

Файл содержит одну строку с активным Bearer token. Не добавляйте токен в MCP JSON/TOML, skill, git, аргументы процесса или prompt. На Unix ограничьте доступ текущим пользователем (0600). Для нестандартного пути задайте ATRACTIO_TOKEN_FILE в окружении локального MCP-процесса.

Adapter перечитывает файл перед каждым HTTPS-запросом: после Rotate Token достаточно атомарно заменить содержимое файла.

Подключение к агенту

Oh My Pi, Claude Desktop/Code, Cursor и MCP-совместимые клиенты

Добавьте один stdio server из configs/mcp.json, сохранив уже настроенные сторонние MCP:

{
  "mcpServers": {
    "atractio-hub": {
      "command": "atractio-tool-mcp",
      "args": []
    }
  }
}

Codex

Добавьте блок из configs/codex.toml:

[mcp_servers.atractio-hub]
command = "atractio-tool-mcp"
args = []

OpenCode

Объедините configs/opencode.json с существующим opencode.json:

{
  "mcp": {
    "atractio-hub": {
      "type": "local",
      "command": ["atractio-tool-mcp"],
      "enabled": true
    }
  }
}

Если GUI-клиент не видит executable из PATH, укажите абсолютный путь, который возвращает which atractio-tool-mcp (Linux/macOS) или where atractio-tool-mcp (Windows).

Skills с сервера

Skill bundle не дублируется в репозитории. Команда всегда скачивает текущую версию с agent.atractio.lol:

atractio-tool install-skill --platform omp
atractio-tool install-skill --platform claude
atractio-tool install-skill --platform codex
atractio-tool install-skill --platform cursor
atractio-tool install-skill --platform opencode

Для другого клиента или project-local каталога:

atractio-tool install-skill --target /path/to/skills

Публичный entrypoint: https://agent.atractio.lol/skills/atractio-hub/SKILL.md.

CLI

atractio-tool catalog
atractio-tool skill memory
atractio-tool discover memory recall
atractio-tool describe memory mnemosyne_recall
atractio-tool call memory mnemosyne_recall --arguments '{"query":"project decisions"}'

--arguments - читает JSON из stdin, а --arguments @request.json — из файла.

Безопасность и изоляция

  • /tool/v1/* требует тот же Bearer token, что и прямые MCP endpoints.
  • Token определяет пользователя и его Mnemosyne bank на gateway; клиент не может выбрать чужой bank.
  • Forgejo service использует OAuth identity, уже связанную с hub token; Forgejo token не передаётся клиенту.
  • Skills публичны и не содержат credentials.
  • Серверные MCP процессы для tool bridge изолированы по service и identity.
  • Ответ 401 означает отсутствующий, истёкший или отозванный hub token.

Лицензия

MIT.