Context-light universal MCP adapter and CLI for Atractio Agent Hub
  • Python 86.2%
  • PowerShell 7%
  • Shell 6.8%
Find a file
2026-07-20 09:46:37 +00:00
configs Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
scripts Resolve installed launcher symlinks 2026-07-20 09:46:37 +00:00
src/atractio_tool Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00
tests Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00
.gitignore Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
install.ps1 Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00
install.sh Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00
LICENSE Initial context-light Atractio Hub adapter 2026-07-12 22:07:56 +00:00
pyproject.toml Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00
README.md Add cross-platform bundles and guided MCP setup 2026-07-20 09:44:16 +00:00

Atractio Tool

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

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

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

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

Архитектура

Agent -> 4 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.

Быстрая установка

Готовые архивы для Linux, macOS и Windows публикуются в Releases. Собирать пакет локально не нужно.

Linux и macOS:

curl -fsSL https://git.barem.atractio.lol/rethinger/atractio-tool/raw/branch/main/install.sh | sh

Windows PowerShell:

irm https://git.barem.atractio.lol/rethinger/atractio-tool/raw/branch/main/install.ps1 | iex

Установщик определяет ОС и архитектуру, проверяет SHA-256, ставит команды atractio-tool и atractio-tool-mcp, затем запускает первичную настройку. Архивы не содержат внешних зависимостей; нужен только Python 3.9+.

Альтернатива через pipx:

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

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

Токен из раздела Console → Connect this account записывается только в отдельный файл:

  • 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 достаточно атомарно заменить содержимое файла.

Первичная настройка

atractio-tool setup

Мастер:

  1. сохраняет Bearer token в отдельный файл с правами 0600;
  2. предлагает compact bridge или прямые MCP-подключения;
  3. позволяет выбрать начальные MCP по номерам или именам;
  4. безопасно объединяет Atractio-раздел с конфигурацией OMP, Claude, Cursor, OpenCode, Codex или generic MCP-клиента, не удаляя сторонние MCP.

В direct-режиме конфигурация ссылается на AGENT_MCP_TOKEN, но не содержит сам токен. Compact-режим читает отдельный token file автоматически.

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

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 account
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"}'
atractio-tool call media delete_output --arguments '{"output_id":"output_..."}' --confirmation-id confirm_...

--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.
  • atractio-tool account и hub_account возвращают только metadata подключений; credential values и OAuth tokens не раскрываются.
  • Серверные MCP процессы для tool bridge изолированы по service и identity.
  • Ответ 401 означает отсутствующий, истёкший или отозванный hub token.

Лицензия

MIT.