argus
📖 読み取り専用ミラー。
argusは正規の AI-Factory モノレポから公開されています。 プルリクエストは受け付けていません — ここにプッシュされたコミットは、次回の同期時にscripts/mirror_satellites.shによって上書きされます。 🐞 バグを発見した場合やリクエストがある場合は、issue を開いて ください。
ARGUS-3 — MCP サーバー
1 つの MCP サーバー。WARDEN で堅牢化されたエージェント。ウォレットは任意。
トランスポート: stdio (argus mcp)。公式の
Model Context Protocol TypeScript SDK (@modelcontextprotocol/sdk) で構築。
対応ホスト: Claude Desktop、Cursor、Glama、および stdio サーバーをサポートする任意の MCP クライアント。
項目 | 場所 |
MCP エントリポイント |
|
ツール |
|
WARDEN ファイアウォール | |
Glama / Docker (stdio) |
AICOM オープンエージェント経済圏 の一部。 ライブデモ: magic-ai-factory.com/argus/ · コミュニティ: Discord · Pollux · Telegram · Castor
MCP ファイアウォールが最優先 — ウォレットは任意。 ARGUS-3 は、サードパーティの MCP サーバーをすべて WARDEN(静的スキャン → 脅威フィード → 発信元 → 定義ピン留め)で検証してから、1 つのツールも実行しません。暗号通貨、ウォレット、オンチェーン経済は デフォルトでオフ です。
(短縮名 ARGUS · CLI: argus · npm: argus-warden · スコープ付き: @alexar76/argus3)
なぜ「ARGUS-3」なのか? 神話の中で、百の目を持つ見張り番アルゴス・パノプテス は、 ヘルメス が話しかけて眠らせ、殺すまで無敵でした。ARGUS-3 は ヘルメスに騙され ない 見張り番です。百の目を開き(WARDEN)、徹底的に倹約し、 甘い言葉で誘惑する競争相手には免疫があります。
三度目の正直の見張り番。👁️
ARGUS は、エージェント経済に欠けていた 需要側のリファレンスクライアント です。 エコシステムにはすでに、生産者(Factory 🏭)、ブローカー(Hub 🛒)、価格設定 (ACEX 📈)、信頼計算(LUMEN オラクル 🔮)、可観測性(Monitor 👽)があります。 欠けていたのは、一般の人が実行するファーストクラスのエージェント — つまり 能力を発見し、支払い、消費し、販売する エージェントです。それが ARGUS です。
これは、一般的な MCP クライアントには通常ない 2 つのスタック層の上に構築されています:
🛡️ WARDEN — サードパーティのサーバーを、そのツール定義がモデルに到達する前に 検証する MCP セキュリティファイアウォール。階層化された静的スキャン、署名付き 脅威フィード、発信元チェック、および rug-pull に対するツール定義のピン留め。 各ゲートは、ARGUS がすでにローカルに保持しているデータのみから判断します。 ウォレットもチェーンも不要で動作します。
💸 ネイティブ決済 (任意) — 暗号通貨を有効にしてウォレットを接続すると、 AIMarket エスクローを通じて Base 上の USDC で呼び出しごとに支払い、受け取ることができます。
…そして、倹約を維持し(ハードな予算ガバナー + ライブトークンメーター — あなたの費用で自己反省はしません)、 あらゆるモデル(Anthropic、OpenAI 互換、中国製、ローカル)に対応し、そして重要なことに — 経済圏が利用できないときは完全に自律的に動作します。 ウォレットなし、AICOM へのネットワークなし? それでも、クラス最高のローカル MCP セキュアアシスタントです。
🔒 暗号通貨はデフォルトで OFF
ARGUS-3 の実行にブロックチェーンは必要ありません。 ウォレット、宝くじ、ACEX、有料 呼び出し、オンチェーン決済は デフォルトで無効 になっており、
ARGUS_CRYPTO_ENABLED=1(プラスウォレット)を 設定した場合にのみ有効になります。初期状態では、完全なエージェント — WARDEN、任意のモデル、メモリ、チャネル、 無料のオフチェーンオラクル読み取り — をチェーン、トークン、ウォレット、カストディなしで利用できます。 暗号通貨はオプトインです。
ARGUS が他と違う理由
機能 | 重要な理由 | |
🛡️ WARDEN ファイアウォール | すべての MCP サーバーは、1 つのツールも実行される前に、ゲートチェーン — 静的ツール定義スキャン → 脅威フィード → 発信元 → 定義ピン留め — によって検証されます。 | ツールポイズニング、rug-pull(定義のドリフト)、データ流出、認証情報の収集は デフォルトで ブロックされます。各ゲートは ARGUS がすでにローカルに保持しているデータのみから判断するため、検証にネットワークは不要で、外部から判定を覆すことはできません。 |
💸 ネイティブ + 自律経済 | 発見 → USDC チャネルを開く → 呼び出し → 決済(消費者); Mesh に登録 → リスト → 収益化(プロバイダー)。ウォレットがある場合に のみ 読み込まれます。 | AICOM を真の両面市場に変えます。ウォレットがない場合、モジュールは決して読み込まれません — 依存関係ゼロ、障害面ゼロ。 |
⚖️ 設計上トークン倹約 | ハードな $/トークン上限付きの制限付き推論予算ガバナー、モデル階層化、 | 「より安い」という主張はマーケティングではなく 監査可能 です。上限を超えるとタスクは停止します — 静かに超過することは決してありません。 |
🌐 任意のプロバイダー | Anthropic ネイティブ、任意の OpenAI 互換エンドポイント(DeepSeek、Qwen、GLM、Kimi などを含む)、ローカル Ollama に対応する 1 つの | あなたのキー、あなたのモデル、あなたのコスト。安価/ローカルモデルでトリアージし、必要なときだけエスカレーションします。 |
🧭 コア機能 — 各主要機能の設計意図とスタック依存関係 — docs/killer-features.md · ru · es。
Related MCP server: re-angr
クイックスタート
1 コマンド(対話型ウィザード、約 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 on npm · スコープ付き: @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)
ツール | 使用タイミング | 戻り値 | 例 |
| エージェントコアによる制限付き自然言語処理。任意の | プレーンテキストの回答(失敗/予算停止時は |
|
| 高負荷の | JSON ステータス |
|
| LLM トークンを消費せずにディスカバリー / WARDEN の状態を確認 | JSON ツールカタログ |
|
Glama TDQS: MCP annotations(readOnly / destructive / idempotent / openWorld)、すべての説明に Behavior + Usage Guidelines、例付きの構造化パラメータ — スコア評価基準に合わせて調整済み(旧来の 1 行説明ではありません)。
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
ドキュメント: Wiki · ユーザーガイド(20 言語) · 開発者ガイド — 15 分で能力を公開(20 言語) · ユースケース — AICOM 上のあなたの ARGUS(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 を参照してください。
アーキテクチャ
5つのレイヤー。自律ラインより上はすべてオフラインで動作し、エコノミーは ウォレットの存在だけでゲートされる形で下にクリップされます。
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として別途配布されます — ARGUS を採用せずに独自の MCP ホストの前に置ける、ゼロ依存のライブラリです。 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)、自分の宣言は常に通過するため、フェイルクローズでも接続手段は残ります。ピニング — 承認済みツールセットをハッシュ化し、その後のドリフト = ラグプルとして再承認を強制します。
機密ツール(書き込み/削除/実行/支払い/…)は、呼び出し時に明示的なユーザー承認がさらに必要です。詳細: docs/security-warden.md。
node dist/index.js warden scan # vet your configured MCP servers💸 エコノミー統合
ARGUS は既存の AI Market Protocol v2 と @aimarket/agent SDK を再利用します — 新しいエンドポイントはありません。
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 に ID とウォレットを登録し、機能をリストし、収益を得る(そしてエージェント抽選 / マシン UBI の対象になる)。docs/economy-integration.md ・ docs/mcp-oracles-capabilities.md(17 のオラクル、MCP、販売)を参照してください。
マルチプロバイダー
アダプター | 対応範囲 |
Anthropic ネイティブ | Claude Opus/Sonnet/Haiku/Fable — 第一級の |
OpenAI 互換 | OpenAI、DeepSeek、Qwen/DashScope、Zhipu GLM、Moonshot/Kimi、MiniMax、Mistral、Groq、Together、OpenRouter、vLLM |
ローカル | Ollama / llama.cpp — オフライン + 安価なトリアージ層 |
モデルは argus.config.json で階層(triage / core / heavy)に割り当てられ、キーが欠落している場合は階層をまたいでルーティングがフォールバックします。
🎮 Agent Arena — レベルアップ、ストリーク維持、カードを自慢しよう
エージェントを実行することは楽しいものであるべきです。Agent Arena は実際のエコシステム活動を、若いグローバルなオーディエンスがすでに愛するゲームメカニクス — Duolingo 風ストリーク、Wrapped 風シェア可能カード、ゲーミングランクカード — に変えます:
XP とレベル — タスク完了、機能販売、オラクル抽選への参加、ACEX での取引、そして倹約(タスクあたり低
$)で XP を獲得。デイリーストリーク 🔥 — エージェントを毎日アクティブに保ちましょう。
クエストとバッジ — First Blood(初の抽選勝利)、Rainmaker(機能販売で初の
$1獲得)、Frugal($0.001未満のタスク)、Trusted(LUMEN レピュテーション上位半分)、Warden(悪意のある MCP サーバーをブロック)、Polyglot、Whale、Lucky… Trusted とレピュテーションランクは現時点では獲得できません:LUMEN スコアにはトラストグラフが必要であり、ARGUS がスコアリングされるトラストエッジを公開するデプロイメントはありません。Flex カード —
argus flex(または Telegram の/flex)で、ハンドル、レベル、ストリーク、獲得$、勝率、トップバッジ、レピュテーションランク(トラストグラフが存在するまで空白)を表示する洗練されたシェア可能カードをレンダリングします。数字 + 絵文字 = 言語の壁なし → どこでもシェア可能。グローバルリーダーボード (オプトイン) — XP、収益、または倹約度で世界中のエージェントとランク付け。
すべての統計は本物です — 実際のエコノミーと倹約パフォーマンスであり、エージェント自身のメモリと署名付きエコノミー領収書からローカルに計算されるため、偽造は困難で、虚栄ポイントではありません。共有とリーダーボードはデフォルトでオフ、オーナー制御です — あなたのデータはあなたのものです。完全な設計: docs/arena.md。
ライブデモ(このフリート):
LIVE(Base メインネット): https://magic-ai-factory.com/arena —
:8787→GET /arena/statsUNI(Universe / Anvil): https://magic-ai-factory.com/arena-uni/ —
:8788→ 同じ UI、mode=uni
Arena ページの TEST · LIVE · UNI スイッチャーを使用して、デモメトリクスと各デプロイ済みノードを切り替えます。
設定
argus.config.json— 非秘密設定(プロバイダー、モデル、メーターの階層価格、予算上限、WARDEN ポリシー、MCP サーバー/カタログ、エコノミーエンドポイント)。コミットしても安全です。argus.config.example.jsonから始めてください。.env— 秘密情報のみ:API キー(ANTHROPIC_API_KEY、DEEPSEEK_API_KEY、…)、ARGUS_WALLET_KEY、および Alien Monitor 実行フィード用のオプションのALIEN_API_TOKEN。絶対にコミットしないでください。.env.exampleから始めてください。
economy.enabled は導出されます — ARGUS_WALLET_KEY が設定されている場合に限り true です。
エコシステム内での位置づけ
aicomFactory はエージェントを構築 → AIMarket(Hub + プロトコル)を通じてリストされ呼び出される → Oracles(LUMEN トラスト、ランダム性、VDF、コンセンサス)が価格設定とセキュリティを提供 → ACEX で資金調達 → Alien Monitor で可視化。ARGUS は需要側です:このマーケットで支出し、そこに販売し、MCP サプライチェーンからユーザーを防御するエージェント — 上記のいずれも必要としないファイアウォールを備えています。
チャンネル
1つの境界化されたエージェントコア、多数のチャンネル — それぞれに自然な認証モデルを備えています。完全なマトリックスと設計: 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 をプローブします。エコノミーはコンテナ内ではデフォルトで OFF(自律)です。
開発
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 ホスト、エコノミーコンシューマー/プロバイダーラッパー、4つのチャンネル(CLI、Telegram、HTTP、MCP サーバー)+ Docker — すべて実装済みでテスト済み。OS レベルの MCP サンドボックス化(seccomp/Landlock/sandbox-exec)、署名付き脅威フィードパブリッシャー、および残りのチャンネルアダプターは v2 トラックです — ドキュメントを参照してください。
デモ
関連リポジトリ
リポジトリ | 役割 |
AI-Factory — ARGUS が消費する機能を提供 | |
フェデレーションハブ — 発見、呼び出し、決済 | |
LUMEN レピュテーション + 検証可能な数学 | |
ARGUS がライブグラフノードとして表示される | |
双子のコミュニティエージェント — MNEMOSYNE Q&A |
コミュニティ
DIOSCURI の双子が、同期された GitHub ドキュメントから質問に回答します。
エコシステムマップ: 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.623 PyPI2Apache 2.0
- AlicenseAqualityCmaintenanceMCP server for angr — symbolic execution + CFG + reaching-definitions.4MIT
- AlicenseAqualityDmaintenanceMCP 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