argus
📖 Зеркало только для чтения.
argusпубликуется из канонического монорепозитория AI-Factory. Pull request'ы не принимаются — любой коммит, отправленный сюда, будет перезаписанscripts/mirror_satellites.shпри следующей синхронизации. 🐞 Нашли ошибку или есть запрос? Пожалуйста, откройте issue.
ARGUS-3 — MCP-сервер
Один MCP-сервер. Агент, защищённый WARDEN. Кошелёк — по желанию.
Транспорт: stdio (argus mcp). Создан на официальном
TypeScript SDK Model Context Protocol (@modelcontextprotocol/sdk).
Совместимые хосты: Claude Desktop, Cursor, Glama и любой MCP-клиент, поддерживающий stdio-серверы.
Элемент | Расположение |
Точка входа MCP |
|
Инструменты |
|
Межсетевой экран WARDEN | |
Glama / Docker (stdio) |
Часть открытой агентной экономики AICOM. Живое демо: magic-ai-factory.com/argus/ · Сообщество: Discord · Pollux · Telegram · Castor
Сначала межсетевой экран MCP — кошелёк по желанию. ARGUS-3 проверяет каждый сторонний MCP-сервер через WARDEN (статическое сканирование → фид угроз → происхождение → закрепление определений), прежде чем выполнится хоть один инструмент. Криптовалюта, кошелёк и ончейн-экономика отключены по умолчанию.
(короткое имя ARGUS · CLI: argus · npm: argus-warden · scoped: @alexar76/argus3)
Почему «ARGUS-3»? В мифе Аргус Панопт — стоглазый страж — был непобедим, пока Гермес не усыпил его речами и не убил. ARGUS-3 — это страж, который не поддаётся Гермесу: сто открытых глаз (WARDEN), предельно экономный, неуязвимый для сладкоречивых конкурентов.
С третьего раза — страж. 👁️
ARGUS — это эталонный клиент со стороны спроса, которого не хватало агентной экономике. В экосистеме уже есть производители (Фабрика 🏭), брокер (Хаб 🛒), ценообразование (ACEX 📈), математика доверия (оракул LUMEN 🔮) и наблюдаемость (Монитор 👽). Не хватало первоклассного агента, которого запускает обычный человек, — агента, который находит, оплачивает, потребляет и продаёт возможности. Это ARGUS.
Он построен на двух уровнях стека, которых обычно нет у типовых MCP-клиентов:
🛡️ WARDEN — межсетевой экран безопасности MCP, который проверяет сторонние серверы до того, как их определения инструментов достигнут модели: многоуровневое статическое сканирование, подписанный фид угроз, проверка происхождения и закрепление определений инструментов против rug-pull'ов. Каждый шлюз принимает решение на основе того, что ARGUS уже хранит локально. Работает без кошелька и без блокчейна.
💸 Нативные расчёты (опционально) — платите за каждый вызов и получайте оплату в USDC на Base через эскроу AIMarket, если включите криптовалюту и подключите кошелёк.
…и он остаётся экономным (жёсткий ограничитель бюджета + живой счётчик токенов — никакой саморефлексии за ваш счёт), работает с любой моделью (Anthropic, OpenAI-совместимые, китайские, локальные) и — что критически важно — полностью автономен, когда экономика недоступна. Нет кошелька, нет сети к AICOM? Это всё равно лучший в своём классе локальный ассистент с защитой MCP.
🔒 Криптовалюта ОТКЛЮЧЕНА по умолчанию
Для запуска ARGUS-3 блокчейн не требуется. Кошелёк, лотерея, ACEX, платные вызовы и ончейн-расчёты отключены по умолчанию и включаются только после установки
ARGUS_CRYPTO_ENABLED=1(плюс кошелёк). Из коробки вы получаете полного агента — WARDEN, любую модель, память, каналы и бесплатные офчейн-чтения оракула — без блокчейна, без токена, без кошелька, без кастодии. Криптовалюта — по желанию.
Чем ARGUS отличается
Что делает | Почему это важно | |
🛡️ Межсетевой экран WARDEN | Каждый MCP-сервер проверяется цепочкой шлюзов — статическое сканирование определений инструментов → фид угроз → происхождение → закрепление определений — до выполнения любого инструмента. | Отравление инструментов, rug-pull'ы (дрейф определений), эксфильтрация и сбор учётных данных блокируются по умолчанию. Каждый шлюз принимает решение на основе данных, которые ARGUS уже хранит локально, поэтому проверка не требует сети, и ничто не может повлиять на вердикт. |
💸 Нативная + автономная экономика | Найти → открыть USDC-канал → вызвать → рассчитаться (потребитель); зарегистрироваться в Mesh → опубликовать → заработать (провайдер). Загружается только с кошельком. | Превращает AICOM в настоящий двусторонний рынок. Без кошелька модуль никогда не загружается — ноль зависимостей, ноль поверхности отказа. |
⚖️ Экономия токенов по дизайну | Ограничитель бюджета рассуждений с жёсткими потолками $/токен, многоуровневость моделей, | Утверждение «дешевле» проверяемо, а не маркетинг. Превышение потолка останавливает задачу — никаких тихих перерасходов. |
🌐 Любой провайдер | Единый интерфейс | Ваши ключи, ваши модели, ваши расходы. Сортировка на дешёвой/локальной модели, эскалация только при необходимости. |
🧭 Ключевые возможности — проектные намерения и зависимости стека для каждой ключевой функции — docs/killer-features.md · ru · es.
Related MCP server: re-angr
Быстрый старт
Одна команда (интерактивный мастер, ~2 минуты):
curl -fsSL https://magic-ai-factory.com/install | bashИли установка из npm (тот же CLI, без curl-скрипта):
npm install -g argus-warden@latest
mkdir -p ~/.argus/agent && cd ~/.argus/agent
argus setup && argus doctorПакет: argus-warden на npm · scoped: @alexar76/argus3 · CLI: argus · npx argus-warden --help
Затем argus chat или argus serve.
Запуск как MCP-сервер (stdio)
npm install -g @alexar76/argus3
# or: npm install && npm run build && node dist/index.js mcp
argus mcpClaude Desktop / Cursor (запись mcpServers):
{
"mcpServers": {
"argus": {
"command": "argus",
"args": ["mcp"]
}
}
}Инструменты (2)
Инструмент | Когда использовать | Возвращает | Пример |
| Ограниченная NL-работа через ядро агента. Опциональные | Ответ в виде обычного текста ( |
|
| Проверка живости перед тяжёлым | JSON-статус |
|
| Обнаружение / позиция WARDEN без траты токенов LLM | JSON-каталог инструментов |
|
Glama TDQS: MCP annotations (readOnly / destructive / idempotent / openWorld), рекомендации по поведению и использованию в каждом описании, структурированные параметры с примерами — откалибровано по рубрике оценки (а не по старой однострочной).
Публикация на Glama
Листинг: glama.ai/mcp/servers/alexar76/argus
Та же схема, что и aimarket-oracle-gateway: glama.json в корне репозитория + Dockerfile.glama + node dist/index.js mcp.
Если
magic-ai-factory.com/installвозвращает 404, используйте зеркало:curl -fsSL https://modeldev.modelmarket.dev/install | bash
Документация: Вики · Руководство пользователя (20 языков) · Руководство разработчика — опубликуйте возможность за 15 минут (20 языков) · Пример использования — ваш ARGUS на AICOM (EN / RU) · Проверяемая совесть (блок-схемы) · Когда ARGUS вам не поможет 😈 · Белая книга экосистемы
cd argus
npm install
npm run build
# 1) Configure (safe to commit — NO secrets live here)
cp argus.config.example.json argus.config.json
# 2) Add keys to .env (all optional; with none, ARGUS uses a local Ollama model)
cp .env.example .env # then edit
# 3) Check what's wired up
node dist/index.js doctor
# 4) Ask something
node dist/index.js ask "summarise https://example.com in three bullets"
# 5) Interactive
node dist/index.js chatВо время разработки можно пропустить шаг сборки с помощью npm run dev -- ask "…".
Гарантия автономности
ARGUS не нуждается ни в чём от AICOM для работы:
# No ANTHROPIC_API_KEY, no wallet — just a local model:
ARGUS_LOCAL_BASE_URL=http://127.0.0.1:11434/v1 node dist/index.js ask "hello"Без ARGUS_WALLET_KEY doctor сообщает economy: OFF (autonomous), и весь
экономический слой вообще не конструируется. См. docs/autonomy.md.
Архитектура
Пять слоёв. Всё выше линии автономности работает офлайн; экономика подключается снизу, включаясь исключительно при наличии кошелька.
flowchart TB
subgraph OFF["Runs offline — no AICOM, no wallet"]
L1["Layer 1 · Providers — Anthropic · OpenAI-compatible · local"]
L2["Layer 2 · Bounded agent core — plan→execute→observe + budget governor"]
L3["Layer 3 · Memory / self-learning — episodes · lessons · pins"]
L4["🛡️ Layer 4 · MCP host + WARDEN — static · threat · origin · pinning"]
L1 --- L2 --- L3 --- L4
end
GATE{{"— autonomy line — needs ARGUS_WALLET_KEY"}}
L5["🛒 Layer 5 · Economy — discover · pay · invoke · settle · sell"]
L4 -.-> GATE -.-> L5
L5 -.->|wraps| SDK["@aimarket/agent SDK"]Полные диаграммы и карта модулей: docs/architecture.md.
🛡️ WARDEN — межсетевой экран MCP
WARDEN поставляется отдельно как
@aimarket/warden— библиотека с нулевыми зависимостями, которую можно поставить перед собственным MCP-хостом, не внедряя ARGUS. ARGUS зависит от этого пакета; этот раздел описывает, что он делает внутри агента.
Описания инструментов MCP-сервера — это текст, управляемый атакующим, который модель читает как инструкции. WARDEN считает каждый сервер враждебным по умолчанию и пропускает каждое подключение через шлюзы, прежде чем любой инструмент станет доступен:
flowchart LR
S[MCP server] --> A[1 · static scan] --> B[2 · threat feed] --> C[3 · origin] --> D[4 · def-pinning] --> V{allow?}
V -->|yes| OK[bridge tools<br/>pin defs]
V -->|no| NO[block + report]Статическое сканирование — сигнатуры инъекций / эксфильтрации / сбора секретов / скрытого юникода в определениях инструментов. Правила многоуровневые: блокирующие правила охватывают формулировки без безобидного прочтения; рекомендательные правила (параметр
api_key, упоминание.env, «ты должен») сообщаются, но никогда не блокируют и не влияют на оценку — именно это пропускает честные серверы. Каждый вердикт называет версию набора правил + дайджест, которые его сформировали.Канал угроз — встроенный список блокировок + опциональная подписанная удалённая лента.
Происхождение — откуда взялось объявление сервера: вы указали его в
mcp.servers, или он был обнаружен из удалённой записиmcp.catalogs. ПриallowUnknownServers: falseсервер, обнаруженный через каталог, блокируется (SERVER_UNDECLARED); ваши собственные объявления всегда проходят, так что режим fail-closed всё равно оставляет способ подключиться.Пиннинг — хеширует одобренный набор инструментов; последующий дрейф = rug-pull, требует повторного одобрения.
Чувствительные инструменты (запись/удаление/выполнение/платёж/…) дополнительно требуют явного одобрения пользователя в момент вызова. Подробности: docs/security-warden.md.
node dist/index.js warden scan # vet your configured MCP servers💸 Интеграция экономики
ARGUS переиспользует существующий AI Market Protocol v2 и SDK @aimarket/agent —
без новых конечных точек.
export ARGUS_WALLET_KEY=0x... # enables the economy layer
node dist/index.js economy status
node dist/index.js economy discover "translate to 5 languages" --budget 1
node dist/index.js economy register # list ARGUS in the AI Service MeshПоток потребителя: discover → openChannel (USDC/Base) → invoke (X-Payment-Channel) → settle. Поток провайдера: зарегистрировать личность + кошелёк в Mesh, перечислить возможности,
зарабатывать (и стать кандидатом на лотерею агентов / machine-UBI). См.
docs/economy-integration.md ·
docs/mcp-oracles-capabilities.md (17 оракулов, MCP, продажа).
Мультипровайдерность
Адаптер | Покрытие |
Anthropic-native | Claude Opus/Sonnet/Haiku/Fable — первоклассный |
OpenAI-совместимый | OpenAI, DeepSeek, Qwen/DashScope, Zhipu GLM, Moonshot/Kimi, MiniMax, Mistral, Groq, Together, OpenRouter, vLLM |
Локальный | Ollama / llama.cpp — офлайн + дешёвый уровень триажа |
Модели назначаются на уровни (triage / core / heavy) в
argus.config.json; маршрутизация переключается между уровнями, когда ключ отсутствует.
🎮 Agent Arena — прокачивайтесь, держите серии, показывайте свою карточку
Запуск агента должен быть весёлым. Agent Arena превращает реальную активность экосистемы в игровую механику, которую уже любит молодая глобальная аудитория — серии в стиле Duolingo, карточки для шеринга в стиле Wrapped, геймерские ранговые карточки:
XP и уровни — зарабатывайте XP за выполнение задач, продажу возможностей, участие в лотерее оракулов, торговлю на ACEX и бережливость (низкий
$/задача).Ежедневные серии 🔥 — поддерживайте активность агента день за днём.
Квесты и значки — First Blood (первый выигрыш в лотерее), Rainmaker (первый заработанный
$1за продажу возможностей), Frugal (задача дешевле$0.001), Trusted (верхняя половина репутации LUMEN), Warden (заблокирован вредоносный MCP-сервер), Polyglot, Whale, Lucky… Trusted и репутационный ранг сегодня недоступны: для оценки LUMEN нужен граф доверия, и ни одно развёртывание не публикует рёбра доверия, по которым оценивался бы ARGUS.Flex Card —
argus flex(или/flexв Telegram) отображает стильную карточку для шеринга: хэндл, уровень, серия, заработанный$, процент побед, лучшие значки, репутационный ранг (пусто, пока не существует графа доверия). Цифры + эмодзи = нет языкового барьера → делитесь где угодно.Глобальная таблица лидеров (по желанию) — рейтинг среди агентов по всему миру по XP, заработку или бережливости.
Каждая статистика — реальная — это ваша фактическая экономическая и бережливая производительность, вычисляемая локально из памяти вашего агента + подписанных экономических квитанций, так что её сложно подделать, и это не очки тщеславия. Шеринг и таблица лидеров выключены по умолчанию и контролируются владельцем — ваши данные остаются вашими. Полный дизайн: docs/arena.md.
Живое демо (этот флот):
LIVE (Base mainnet): https://magic-ai-factory.com/arena —
:8787→GET /arena/statsUNI (Universe / Anvil): https://magic-ai-factory.com/arena-uni/ —
:8788→ тот же UI,mode=uni
Используйте переключатель TEST · LIVE · UNI на странице Arena, чтобы переключаться между демо-метриками и каждым развёрнутым узлом.
Конфигурация
argus.config.json— несекретная конфигурация (провайдеры, модели, цены уровней для метра, бюджетные потолки, политика WARDEN, MCP-серверы/каталоги, экономические конечные точки). Безопасно коммитить. Начните сargus.config.example.json..env— только секреты: ключи API (ANTHROPIC_API_KEY,DEEPSEEK_API_KEY, …),ARGUS_WALLET_KEYи опциональныйALIEN_API_TOKENдля ленты запусков Alien Monitor. Никогда не коммитьте. Начните с.env.example.
economy.enabled выводится — он истинен тогда и только тогда, когда задан ARGUS_WALLET_KEY.
Место в экосистеме
Фабрика
aicomсоздаёт агентов → они перечисляются и вызываются через AIMarket (Hub + протокол) → Оракулы (доверие LUMEN, случайность, VDF, консенсус) оценивают и защищают их → финансируются на ACEX → визуализируются Alien Monitor.ARGUS — сторона спроса: агент, который тратит на этом рынке, продаёт в него и защищает пользователя от цепочки поставок MCP — с межсетевым экраном, которому для работы не нужно ничего из вышеперечисленного.
Каналы
Одно ограниченное ядро агента, много каналов — каждый с естественной для него моделью аутентификации. Полная матрица + дизайн: docs/channels.md.
Канал | Запуск | Аутентификация |
CLI |
| локальная (интерактивное одобрение) |
Telegram |
| привязка к владельцу (первый |
HTTP API |
|
|
MCP-сервер |
| локальный stdio — предоставляет |
argus serve запускает Telegram и HTTP-сервер вместе (именно это запускает
контейнер). GET /health — также точка подключения, позволяющая ARGUS появляться как живой
узел в Alien Monitor. Задайте ALIEN_MONITOR_URL + ALIEN_API_TOKEN, чтобы отправлять
каждый завершённый запуск на панель проверяемых запусков узла (вызовы оракулов, блокировки WARDEN,
наймы, запечатанные квитанции). Discord, Slack, Email, Matrix, WhatsApp и голос —
готовые к добавлению адаптеры (см. документацию).
Развёртывание (Docker)
ARGUS запускает недоверенные MCP-серверы как дочерние процессы, поэтому контейнер также является границей безопасности вокруг них — а не просто упаковкой.
cp argus.config.example.json argus.config.json # edit
cp .env.example .env # add secrets
docker compose up -d --build # serve: Telegram + HTTP /healthСекреты берутся из .env (никогда не встраиваются в образ); argus.config.json
монтируется только для чтения; состояние сохраняется в томе argus-state; HEALTHCHECK
проверяет /health. Экономика по умолчанию ВЫКЛЮЧЕНА в контейнере (автономный режим).
Разработка
npm run typecheck # tsc --noEmit (strict)
npm test # vitest (budget governor, MCP host + WARDEN wiring, provider mapping)
npm run build # emit dist/Статус
v0.1 — ограниченный цикл агента, мультипровайдерная маршрутизация, цепочка шлюзов WARDEN (статический +
угрозы + происхождение + пиннинг), память/уроки, MCP-хост, обёртки потребителя/провайдера
экономики и четыре канала (CLI, Telegram, HTTP, MCP-сервер) + Docker — всё
реализовано и протестировано. Песочница MCP на уровне ОС (seccomp/Landlock/sandbox-exec),
издатель подписанной ленты угроз и остальные адаптеры каналов — трек v2 —
см. документацию.
Демо
Документация: https://github.com/alexar76/argus/wiki
Связанные репозитории
Репозиторий | Роль |
AI-Factory — поставляет возможности, которые потребляет ARGUS | |
Федерационный хаб — обнаружение, вызов, расчёт | |
Репутация LUMEN + проверяемая математика | |
ARGUS появляется как живой узел графа | |
Агенты-близнецы сообщества — Q&A MNEMOSYNE |
Сообщество
Близнецы DIOSCURI отвечают на вопросы из синхронизированных GitHub-документов.
Канал | Близнец | Лучше всего для |
Pollux | Помощь, идеи, показ и рассказ | |
Castor | Релизы, дайджесты, быстрые новости |
Карта экосистемы: Alien Monitor · AICOM
Лицензия
MIT — ваши ключи, ваша инфраструктура, ваши данные. Часть AICOM открытой агентной экономики.
Available Tools
3 toolsargus_askA
Run one bounded natural-language task through the ARGUS-3 agent and return the final answer text.
When to use: research, summarise, debug, or draft when you want a WARDEN-hardened agent (not a raw model completion). Prefer argus_status first if you only need liveness; prefer argus_capabilities for the tool/WARDEN catalog without spending LLM tokens.
When NOT to use: interactive multi-turn chat (use Telegram/HTTP channels); tasks that need human approval for sensitive tools (stdio denies them); pasting secrets into task.
Side effects / auth / limits: calls your configured LLM provider (API key from env/config); may invoke ARGUS-configured tools; third-party MCP tools run only after WARDEN gates (static scan → threat feed → LUMEN → def-pinning). Sensitive tools are deny-by-default on this channel (no interactive approver). Spend is bounded by ARGUS budget ceilings (stops rather than overspending). Not idempotent — each call is a new metered run. May use network (model + allowed tools).
Returns: plain-text final answer. On failure or budget stop, text may still be returned with isError true. No streaming / partial events on this tool.
Example: argus_ask({ task: "Summarise https://example.com in three bullets", response_format: "bullets" })
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Required. Single clear goal for ARGUS (1..8000 chars). Include constraints (length, format, tone) and any URLs/paths. Do not embed secrets (API keys, private keys, passwords) — they may be logged or sent to the LLM provider. Whitespace-only values are rejected. | |
| focus | No | Optional one-line emphasis (≤500 chars) appended as a constraint, e.g. "security only" or "ELI5". Omit when the task is already specific enough. | |
| response_format | No | Optional output shape hint prepended to the task. `prose` = normal paragraphs; `bullets` = short bullet list; `json_hint` = ask for a single JSON object in the answer (still returned as text — not a structured MCP outputSchema result). Default prose when omitted. | prose |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: calls configured LLM provider, may invoke ARGUS tools, third-party MCP tools gated by WARDEN, sensitive tools deny-by-default, spend bounded by budget, not idempotent, may use network. No contradiction with annotations (readOnlyHint=false, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: a summary line, usage guidelines, side effects/auth/limits, return type, and an example. Every sentence is informative without redundancy. It is concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (agent with multiple options) and lack of output schema, the description thoroughly covers input semantics, behavioral nuances, budget limits, and return type (plain-text with potential isError). No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (100% coverage). The description adds extra meaning: for 'task', warns against embedding secrets and specifies length constraints; for 'focus', explains it's appended as constraint; for 'response_format', defines each enum value. This provides clarity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run one bounded natural-language task through the ARGUS-3 agent and return the final answer text.' It uses a specific verb (run) and resource (bounded natural-language task via ARGUS-3). It also distinguishes from siblings by noting when to use argus_status or argus_capabilities instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use examples (research, summarise, debug, draft) and when-not-to-use cases (interactive multi-turn chat, tasks needing human approval, pasting secrets). It also mentions alternative tools: argus_status for liveness and argus_capabilities for catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
argus_capabilitiesARead-onlyIdempotent
List ARGUS MCP tools and WARDEN security posture as JSON text (no LLM call).
When to use: discovery — choose between argus_ask / argus_status / this catalog. When NOT to use: executing a user task (argus_ask) or a cheap ping (argus_status).
Side effects: none. Read-only, idempotent, no provider auth required for this tool.
Returns: JSON { agent, version, tools[{name, readOnly, summary}], warden, sensitiveToolsPolicy, channel }.
Example: argus_capabilities({ include_schemas: false })
| Name | Required | Description | Default |
|---|---|---|---|
| include_schemas | No | If true, include each tool's inputSchema in the JSON (larger payload). Default false — names + short summaries only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: 'no LLM call', 'no provider auth required', 'Read-only, idempotent', and return format. Annotations already state readOnlyHint, idempotentHint, destructiveHint; description reinforces and expands without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and well-structured: purpose, usage guidance, side effects, return format, example. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking output schema, description fully specifies return JSON structure. All relevant behavioral aspects are covered given tool simplicity and rich annotations. No gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage for the single boolean parameter, including description and example. Description adds an example call but no new semantics beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly lists purpose: 'List ARGUS MCP tools and WARDEN security posture as JSON text'. It distinguishes from siblings by mentioning argus_ask (task execution) and argus_status (cheap ping). Verb 'List' and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'When to use: discovery' and 'When NOT to use: executing a user task or a cheap ping', with alternatives named (argus_ask, argus_status). Provides clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
argus_statusARead-onlyIdempotent
Return ARGUS-3 MCP runtime status as JSON text (no LLM call, no side effects).
When to use: before heavy argus_ask calls, or to confirm version/channel/tools. When NOT to use: to run a task (use argus_ask) or to list WARDEN policy detail (use argus_capabilities).
Auth / limits: none beyond MCP session. Idempotent and read-only.
Returns: JSON with status, agent, version, channel, mode, tools, detail, wardenNote, sensitiveToolsPolicy (and extra fields when detail=full).
Example: argus_status({ detail: "basic" })
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Response depth. `basic` = liveness + version + tool names. `full` adds instructions excerpt, annotation summary, and MCP transport notes. Default basic. | basic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds 'no LLM call', 'no side effects', 'Auth/limits: none beyond MCP session', and details return fields. Consistent with annotations, adds useful context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is brief, front-loaded with purpose, uses clear section breaks (When to use, Auth, Returns, Example), and every sentence adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 optional param, no output schema, high annotation coverage), description covers purpose, usage, behavior, auth, return fields, and example. Fully sufficient for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with full description of detail parameter. Description includes example and mention of full depth adding fields, but schema already explains enum values and default. Minimal added value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States explicit verb 'Return ARGUS-3 MCP runtime status as JSON text', names specific resource 'ARGUS-3 MCP runtime', and distinguishes from siblings by contrasting with argus_ask and argus_capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('before heavy argus_ask calls, or to confirm version/channel/tools') and when not to use ('to run a task' or 'list WARDEN policy detail'), naming alternatives (argus_ask, argus_capabilities).
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.
3 tool updates
v0.2.5- Changed
argus_ask7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / focusAdded value: +{ + "description": "Optional one-line emphasis (≤500 chars) appended as a constraint, e.g. \"security only\" or \"ELI5\". Omit when the task is already specific enough.", + "examples": [ + "security only", + "cite sources" + ], + "maxLength": 500, + "type": "string" +} - added
Input schema / properties / response_formatAdded value: +{ + "default": "prose", + "description": "Optional output shape hint prepended to the task. `prose` = normal paragraphs; `bullets` = short bullet list; `json_hint` = ask for a single JSON object in the answer (still returned as text — not a structured MCP outputSchema result). Default prose when omitted.", + "enum": [ + "prose", + "bullets", + "json_hint" + ], + "examples": [ + "bullets", + "prose" + ], + "type": "string" +} - changed
Input schema / properties / task / descriptionPrevious value: -"The task or question for ARGUS."New value: +"Required. Single clear goal for ARGUS (1..8000 chars). Include constraints (length, format, tone) and any URLs/paths. Do not embed secrets (API keys, private keys, passwords) — they may be logged or sent to the LLM provider. Whitespace-only values are rejected." - added
Input schema / properties / task / examplesAdded value: +[ + "Summarise https://example.com in three bullets", + "Explain why WARDEN would block a tool whose description asks for API keys", + "Draft a short README blurb for an MCP server that exposes argus_ask" +] - added
Input schema / properties / task / maxLengthAdded value: +8000 - added
Input schema / properties / task / minLengthAdded value: +1
- Added
argus_capabilities - Added
argus_status
1 tool update
v1.0.0- First observed
argus_ask
TDQS
Scored across 3 tools
Each tool maps to a distinct intent: argus_status is liveness/version, argus_capabilities is catalog/security discovery, and argus_ask is task execution. Status and capabilities share some metadata fields, but their explicitly stated when-to-use guidance cleanly separates them. Ask is unambiguously the only tool that runs a task.
All names share the argus_ prefix and snake_case, but the set mixes noun-style names (argus_status, argus_capabilities) with a verb-style name (argus_ask). There is no consistent verb_noun pattern across the set. The prefix keeps it readable, but the conventions are not uniform.
Three tools is a well-scoped, typical count for this narrow purpose: one execution tool and two read-only introspection tools. Each tool earns its place and there is no redundancy. The size fits the server's focused role well.
The set covers the full intended workflow: confirm runtime status, discover capabilities and security posture, then execute a bounded task. There are no obvious gaps or dead ends for the stated one-shot agent use case. Multi-turn and interactive flows are explicitly out of scope rather than missing coverage.
Maintenance
Related MCP Connectors
Guard wraps stdio MCP servers: risky calls wait for a person; no answer, no run. Remote: cooperative
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Security research canary remote MCP server for owned-account testing.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that gives small LLMs verified symbolic-math & logic tools.62Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for angr — symbolic execution + CFG + reaching-definitions.4MIT
- AlicenseAqualityCmaintenanceMCP server for verifying high-impact decisions with Trust OS.2MIT
- AlicenseAqualityDmaintenanceThis MCP server exposes Riven's chat, research, council, and usage capabilities as tools over stdio, enabling any MCP-compatible client to interact with Riven directly.4MIT