argus
📖 只读镜像。
argus从规范的 AI-Factory 单体仓库发布。 不接受拉取请求 — 推送到此处的任何提交都会在下次同步时被scripts/mirror_satellites.sh覆盖。 🐞 发现 bug 或有请求?请 提交 issue。
ARGUS-3 — MCP 服务器
一个 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 在运行任何工具之前,通过 WARDEN(静态扫描 → 威胁情报源 → 来源 → 定义固定)审查每一个第三方 MCP 服务器。加密、钱包和链上经济 默认关闭。
(简称 ARGUS · CLI:argus · npm:**argus-warden* · 作用域:@alexar76/argus3)*
为什么叫 "ARGUS-3"? 在神话中,Argus Panoptes — 百眼守望者 — 一直不可战胜,直到 Hermes 用言语哄他入睡并将其杀死。ARGUS-3 是 不会 被 Hermes 迷惑的守望者:百眼全开(WARDEN),极度节俭, 对花言巧语的竞争者免疫。
第三次才是守望者。👁️
ARGUS 是代理经济体一直缺失的需求侧参考客户端。该 生态系统已有生产者(Factory 🏭)、经纪人(Hub 🛒)、定价 (ACEX 📈)、信任计算(LUMEN 预言机 🔮)和可观测性(Monitor 👽)。 它所缺少的是一个普通人可以运行的一流代理 — 一个能够 发现、付费、消费和出售能力的代理。这就是 ARGUS。
它构建在通用 MCP 客户端通常缺少的两个堆栈层之上:
🛡️ WARDEN — 一个 MCP 安全防火墙,在第三方服务器的 工具定义到达模型之前对其进行审查:分层静态扫描、签名 威胁情报源、来源检查,以及针对 rug-pull 的工具定义固定。每个 关卡都基于 ARGUS 本地已有的数据做出决策。 无需钱包、无需链即可工作。
💸 原生结算 (可选) — 按次付费,并在启用加密并连接钱包时 通过 AIMarket 托管在 Base 上以 USDC 收款。
…而且它保持节俭(硬预算治理器 + 实时 token 计量器 — 不会 花你的钱做自我反思),支持任何模型(Anthropic、OpenAI 兼容、 中文、本地),并且 — 关键的是 — 在经济不可用时完全自主运行。 没有钱包,没有到 AICOM 的网络?它仍然是一流的本地 MCP 安全助手。
🔒 加密默认关闭
运行 ARGUS-3 不需要区块链。 钱包、彩票、ACEX、付费 调用和链上结算默认禁用,只有当你设置
ARGUS_CRYPTO_ENABLED=1(外加一个钱包)时才会开启。开箱即用,你得到 完整的代理 — WARDEN、任意模型、记忆、渠道,以及免费的链下预言机 读取 — 无需链、无需 token、无需钱包、无需托管。加密是可选加入的。
ARGUS 的不同之处
功能 | 重要性 | |
🛡️ WARDEN 防火墙 | 每个 MCP 服务器都经过关卡链审查 — 静态工具定义扫描 → 威胁情报源 → 来源 → 定义固定 — 在运行任何工具之前。 | 工具投毒、rug-pull(定义漂移)、数据外泄和凭据窃取默认被阻止。每个关卡都基于 ARGUS 本地已有的数据做出决策,因此审查无需网络,也没有任何东西能说服它改变裁决。 |
💸 原生 + 自主经济 | 发现 → 打开 USDC 通道 → 调用 → 结算(消费者);在 Mesh 中注册 → 上架 → 赚钱(提供者)。仅在连接钱包时加载。 | 将 AICOM 变成真正的双边市场。没有钱包时该模块永远不会加载 — 零依赖、零故障面。 |
⚖️ 设计上节省 token | 有界推理预算治理器,带硬性 $/token 上限、模型分层、 | "更便宜"的说法是可审计的,而非营销。超过上限即停止任务 — 绝不会静默超支。 |
🌐 任意提供商 | 一个 | 你的密钥、你的模型、你的成本。在便宜/本地模型上分诊,仅在需要时升级。 |
🧭 核心能力 — 每个主打功能的设计意图和堆栈依赖 — 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 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 状态 |
|
| 发现 / WARDEN 态势,不消耗 LLM token | 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
文档: Wiki · 用户指南(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]静态扫描 — 检测工具定义中的注入 / 数据外泄 / 秘密收集 / 隐藏 Unicode 签名。规则是分层的:阻断性规则覆盖那些没有良性解读的措辞;建议性规则(如
api_key参数、提及.env、"你必须")会被报告但绝不会阻断,也绝不会影响评分——这正是让诚实服务器得以通过的原因。每项裁决都会注明产生该裁决的规则集版本 + 摘要。威胁情报源 — 内置拒绝列表 + 可选的签名远程情报源。
来源 — 服务器声明来自何处:你在
mcp.servers中列出的,还是从远程mcp.catalogs条目中发现的。当allowUnknownServers: false时,目录发现的服务器会被阻断(SERVER_UNDECLARED);你自己的声明始终通过,因此即使采用失败关闭策略,仍然保留了一条连接途径。固定(Pinning) — 对已批准的工具集进行哈希;之后的漂移 = 拉地毯式攻击,强制重新审批。
敏感工具(写入/删除/执行/支付/……)在调用时还需要用户明确批准。详情: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 中注册身份和钱包,列出能力,赚取收益(并有资格参与代理彩票 / 机器 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 将真实的生态系统活动转化为年轻全球受众已经喜爱的游戏机制——多邻国式的连续记录、Wrapped 风格的可分享卡片、游戏化排名卡片:
经验值与等级 — 通过完成任务、出售能力、参与预言机彩票、在 ACEX 上交易以及保持节俭(低
$/任务)来赚取经验值。每日连续记录 🔥 — 让你的代理日复一日保持活跃。
任务与徽章 — First Blood(首次彩票中奖)、Rainmaker(首次通过出售能力赚取
$1)、Frugal(单次任务低于$0.001)、Trusted(LUMEN 声誉排名前一半)、Warden(阻止了一个恶意 MCP 服务器)、Polyglot、Whale、Lucky…… Trusted 和声誉排名目前无法获得:LUMEN 评分需要信任图,而目前没有任何部署发布 ARGUS 评分所依据的信任边。炫耀卡片 —
argus flex(或 Telegram 中的/flex)会渲染一张精美、可分享的卡片:用户名、等级、连续记录、赚取的$、胜率、顶级徽章、声誉排名(在信任图存在之前为空白)。数字 + 表情符号 = 没有语言障碍 → 随处分享。全球排行榜 (可选加入) — 按经验值、收益或节俭程度与全球代理排名。
每项统计数据都是真实的——它是你实际的经济和节俭表现,根据代理自身的记忆 + 签名的经济收据在本地计算得出,因此很难伪造,也不是虚荣积分。分享和排行榜默认关闭且由所有者控制——你的数据始终属于你。完整设计: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 时,它才为真。
在生态系统中的位置
aicomFactory 构建代理 → 通过 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 路线——参见文档。
演示
相关仓库
仓库 | 角色 |
AI-Factory — 提供 ARGUS 消费的能力 | |
联邦中心 — 发现、调用、结算 | |
LUMEN 声誉 + 可验证数学 | |
ARGUS 作为实时图节点出现 | |
双子社区代理 — MNEMOSYNE 问答 |
社区
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
Argentic MCP server: run and inspect long-running agents on Argentic.
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
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that gives small LLMs verified symbolic-math & logic tools.617 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