- Python 86.2%
- PowerShell 7%
- Shell 6.8%
| configs | ||
| scripts | ||
| src/atractio_tool | ||
| tests | ||
| .gitignore | ||
| install.ps1 | ||
| install.sh | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
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
Мастер:
- сохраняет Bearer token в отдельный файл с правами
0600; - предлагает compact bridge или прямые MCP-подключения;
- позволяет выбрать начальные MCP по номерам или именам;
- безопасно объединяет 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.