Skip to main content
Glama

📖 읽기 전용 미러. argus는 공식 AI-Factory 모노레포에서 게시됩니다. Pull request는 받지 않습니다 — 여기에 푸시된 모든 커밋은 다음 동기화 시 scripts/mirror_satellites.sh에 의해 덮어써집니다. 🐞 버그를 발견했거나 요청이 있으신가요? 이슈를 열어주세요.

ARGUS-3 — MCP 서버

🌐 English · Русский · Español · Français · 中文 · 용어집

하나의 MCP 서버. WARDEN으로 강화된 에이전트. 지갑은 선택 사항.

전송 방식: stdio (argus mcp). 공식 Model Context Protocol TypeScript SDK (@modelcontextprotocol/sdk)로 구축. 호환 호스트: Claude Desktop, Cursor, Glama 및 stdio 서버를 지원하는 모든 MCP 클라이언트.

항목

위치

MCP 진입점

argus mcp → src/channels/mcp_server.ts

도구

argus_ask, argus_status, argus_capabilities

WARDEN 방화벽

docs/security-warden.md

Glama / Docker (stdio)

Dockerfile.glama, glama.json

AICOM 오픈 에이전트 경제의 일부. 라이브 데모: magic-ai-factory.com/argus/ · 커뮤니티: Discord · Pollux · Telegram · Castor

MCP 방화벽 우선 — 지갑은 선택 사항. ARGUS-3는 단 하나의 도구가 실행되기 전에 모든 타사 MCP 서버를 WARDEN (정적 스캔 → 위협 피드 → 출처 → 정의 고정)을 통해 검증합니다. 암호화, 지갑, 온체인 경제는 기본적으로 비활성화되어 있습니다. (짧은 이름 ARGUS · CLI: argus · npm: argus-warden · 범위: @alexar76/argus3)

왜 "ARGUS-3"인가? 신화에서 아르고스 파놉테스 — 백 개의 눈을 가진 파수꾼 — 은 헤르메스가 그를 잠들게 하고 살해하기 전까지 무적이었습니다. ARGUS-3는 헤르메스에게 속지 않는 파수꾼입니다: 백 개의 눈이 열려 있고(WARDEN), 지나칠 정도로 검소하며, 달콤한 말로 유혹하는 경쟁자에게 면역입니다.

세 번째가 바로 파수꾼입니다. 👁️

ARGUS는 에이전트 경제에 없었던 수요 측 레퍼런스 클라이언트입니다. 생태계에는 이미 생산자(Factory 🏭), 중개자(Hub 🛒), 가격 책정(ACEX 📈), 신뢰 수학(LUMEN 오라클 🔮), 관찰 가능성(Monitor 👽)이 있습니다. 부족했던 것은 일반인이 실행하는 일급 에이전트 — 능력을 발견하고, 지불하고, 소비하고, 판매하는 에이전트였습니다. 그것이 바로 ARGUS입니다.

일반적인 MCP 클라이언트에는 없는 두 가지 스택 계층 위에 구축되었습니다:

  1. 🛡️ WARDEN — 도구 정의가 모델에 도달하기 전에 타사 서버를 검증하는 MCP 보안 방화벽: 계층적 정적 스캔, 서명된 위협 피드, 출처 확인, 러그풀에 대한 도구 정의 고정. 각 게이트는 ARGUS가 이미 로컬에 보유한 데이터로만 판단합니다. 지갑도 체인도 없이 작동합니다.

  2. 💸 네이티브 결제 (선택 사항) — 암호화를 활성화하고 지갑을 연결하면 AIMarket 에스크로를 통해 Base에서 USDC로 호출당 지불하고 수익을 얻습니다.

…그리고 검소함을 유지합니다(하드 예산 거버너 + 실시간 토큰 미터 — 여러분의 비용으로 자기 성찰하지 않음), 모든 모델을 지원하며(Anthropic, OpenAI 호환, 중국산, 로컬), 그리고 결정적으로 — 경제를 사용할 수 없을 때 완전히 자율적으로 실행됩니다. 지갑도, AICOM 네트워크도 없나요? 여전히 최고 수준의 로컬 MCP 보안 어시스턴트입니다.

🔒 암호화는 기본적으로 OFF

ARGUS-3를 실행하는 데 블록체인은 필요하지 않습니다. 지갑, 복권, ACEX, 유료 호출, 온체인 결제는 기본적으로 비활성화되어 있으며 ARGUS_CRYPTO_ENABLED=1 (및 지갑)을 설정할 때만 활성화됩니다. 기본 설치로 완전한 에이전트 — WARDEN, 모든 모델, 메모리, 채널, 무료 오프체인 오라클 읽기 — 를 체인, 토큰, 지갑, 보관 없이 얻을 수 있습니다. 암호화는 옵트인 방식입니다.


ARGUS가 다른 이유

기능

중요성

🛡️ WARDEN 방화벽

모든 MCP 서버는 단 하나의 도구가 실행되기 전에 게이트 체인 — 정적 도구 정의 스캔 → 위협 피드 → 출처 → 정의 고정 — 을 거칩니다.

도구 중독, 러그풀(정의 변조), 데이터 유출, 자격 증명 수집이 기본적으로 차단됩니다. 각 게이트는 ARGUS가 이미 로컬에 보유한 데이터로만 판단하므로 검증에 네트워크가 필요 없고 어떤 것도 판정을 바꿀 수 없습니다.

💸 네이티브 + 자율 경제

발견 → USDC 채널 개설 → 호출 → 결제(소비자); Mesh에 등록 → 목록 게시 → 수익(제공자). 지갑이 있을 때만 로드됩니다.

AICOM을 진정한 양면 시장으로 만듭니다. 지갑이 없으면 모듈은 절대 로드되지 않습니다 — 의존성 제로, 실패 표면 제로.

⚖️ 설계상 토큰 절약

하드 $/토큰 상한이 있는 제한된 추론 예산 거버너, 모델 계층화, cache_control, 선별된 핸드오프, 압축, 실시간 미터.

"더 저렴함"이라는 주장은 마케팅이 아니라 감사 가능합니다. 상한을 초과하면 작업이 중지됩니다 — 조용히 초과 지출하지 않습니다.

🌐 모든 제공자

Anthropic 네이티브, 모든 OpenAI 호환 엔드포인트(DeepSeek, Qwen, GLM, Kimi 등 포함), 로컬 Ollama를 아우르는 하나의 Provider 인터페이스.

여러분의 키, 여러분의 모델, 여러분의 비용. 저렴한/로컬 모델에서 분류하고 필요할 때만 에스컬레이션합니다.


🧭 핵심 기능 — 각 주요 기능의 설계 의도와 스택 의존성 — 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 mcp

Claude Desktop / Cursor (mcpServers 항목):

{
  "mcpServers": {
    "argus": {
      "command": "argus",
      "args": ["mcp"]
    }
  }
}

도구 (2)

도구

사용 시기

반환 값

예시

argus_ask

에이전트 코어를 통한 제한된 자연어 작업. 선택적 response_format / focus. 민감한 도구는 기본 거부; 예산 측정 LLM.

일반 텍스트 답변 (실패/예산 중지 시 isError)

argus_ask({ task: "Summarise https://example.com in three bullets", response_format: "bullets" })

argus_status

무거운 argus_ask 전 활성 상태 확인 (detail: basic|full)

JSON 상태

argus_status({ detail: "basic" })

argus_capabilities

LLM 토큰을 소비하지 않고 발견 / WARDEN 상태 확인

JSON 도구 카탈로그

argus_capabilities({ include_schemas: false })

Glama TDQS: MCP annotations (readOnly / destructive / idempotent / openWorld), 모든 설명의 Behavior + Usage Guidelines, 예시가 포함된 구조화된 매개변수 — 점수 루브릭에 맞게 보정됨(이전의 한 줄 설명이 아님).

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개 언어) · 사용 사례 — 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를 참조하세요.


아키텍처

다섯 개의 계층. 자율성 경계선 위의 모든 것은 오프라인으로 실행되며, 경제 계층은 지갑의 존재 여부에만 의존하여 그 아래에 붙습니다.

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은 모든 서버를 기본적으로 적대적(hostile-by-default)으로 취급하며, 어떤 도구가 노출되기 전에 각 연결을 게이트를 통해 실행합니다:

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)에도 연결 방법은 남아 있습니다.

  • 고정(Pinning) — 승인된 도구 세트를 해시합니다; 이후 드리프트 = 러그풀(rug-pull), 재승인을 강제합니다.

민감한 도구(쓰기/삭제/실행/결제/…)는 호출 시점에 명시적인 사용자 승인이 추가로 필요합니다. 자세한 내용: 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 — 일급 cache_control 지원; 코어 루프의 기본값

OpenAI-호환

OpenAI, DeepSeek, Qwen/DashScope, Zhipu GLM, Moonshot/Kimi, MiniMax, Mistral, Groq, Together, OpenRouter, vLLM

로컬

Ollama / llama.cpp — 오프라인 + 저비용 분류(triage) 계층

모델은 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 Card — argus flex (또는 Telegram에서 /flex)는 세련되고 공유 가능한 카드를 렌더링합니다: 핸들, 레벨, 스트릭, 획득 $, 승률, 상위 배지, 평판 랭크(신뢰 그래프가 생길 때까지 공백). 숫자 + 이모지 = 언어 장벽 없음 → 어디서나 공유 가능.

  • 글로벌 리더보드 (옵트인) — XP, 수익, 또는 절약도로 전 세계 에이전트와 순위 경쟁.

모든 통계는 실제입니다 — 에이전트 자신의 메모리 + 서명된 경제 영수증에서 로컬로 계산된 실제 경제 및 절약 성과이므로, 위조하기 어렵고 허영 포인트가 아닙니다. 공유와 리더보드는 기본적으로 꺼져 있고 소유자가 제어합니다 — 데이터는 사용자의 것입니다. 전체 설계: docs/arena.md.

라이브 데모 (이 플릿):

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입니다.


생태계 내 위치

aicom Factory는 에이전트를 구축합니다 → AIMarket(Hub + 프로토콜)을 통해 목록화되고 호출됩니다 → Oracles(LUMEN 신뢰, 무작위성, VDF, 합의)이 가격을 매기고 보안을 제공합니다 → ACEX에서 자금 조달 → Alien Monitor로 시각화됩니다.

ARGUS는 수요 측입니다: 이 시장에서 지출하고, 그 시장에 판매하며, MCP 공급망으로부터 사용자를 방어하는 에이전트 — 위의 어떤 것도 필요로 하지 않는 방화벽을 갖추고 있습니다.


채널

하나의 경계를 가진 에이전트 코어, 다양한 채널 — 각각 자연스러운 인증 모델을 갖습니다. 전체 매트릭스 + 설계: docs/channels.md.

채널

실행

인증

CLI

argus ask / argus chat

로컬 (대화형 승인)

Telegram

argus telegram

소유자-잠금 (첫 /start가 소유권 주장)

HTTP API

argus serve

/health 공개 · POST /ask Bearer ARGUS_HTTP_TOKEN

MCP-서버

argus mcp

로컬 stdio — argus_ask / argus_status / argus_capabilities 노출

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 호스트, 경제 소비자/제공자 래퍼, 그리고 네 개의 채널(CLI, Telegram, HTTP, MCP-서버) + Docker — 모두 구현 및 테스트 완료. OS-레벨 MCP 샌드박싱(seccomp/Landlock/sandbox-exec), 서명된 위협-피드 게시자, 그리고 나머지 채널 어댑터는 v2 트랙입니다 — 문서를 참조하세요.

데모

관련 저장소

저장소

역할

aicom

AI-Factory — ARGUS가 소비하는 기능 제공

aimarket-hub

연합 허브 — 발견, 호출, 정산

oracles

LUMEN 평판 + 검증 가능한 수학

alien-monitor

ARGUS가 라이브 그래프 노드로 표시

dioscuri

쌍둥이 커뮤니티 에이전트 — MNEMOSYNE Q&A

커뮤니티

DIOSCURI 쌍둥이가 동기화된 GitHub 문서에서 질문에 답합니다.

채널

쌍둥이

가장 적합한 용도

Discord

Pollux

도움, 아이디어, 자랑하기

Telegram

Castor

릴리스, 다이제스트, 빠른 뉴스

생태계 맵: Alien Monitor · AICOM

라이선스

MIT — 당신의 키, 당신의 인프라, 당신의 데이터. AICOM 오픈 에이전트-경제의 일부.

Available Tools

3 tools
argus_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" })

NameRequiredDescriptionDefault
taskYesRequired. 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.
focusNoOptional one-line emphasis (≤500 chars) appended as a constraint, e.g. "security only" or "ELI5". Omit when the task is already specific enough.
response_formatNoOptional 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

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_capabilitiesA
Read-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 })

NameRequiredDescriptionDefault
include_schemasNoIf true, include each tool's inputSchema in the JSON (larger payload). Default false — names + short summaries only.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_statusA
Read-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" })

NameRequiredDescriptionDefault
detailNoResponse depth. `basic` = liveness + version + tool names. `full` adds instructions excerpt, annotation summary, and MCP transport notes. Default basic.basic

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 3 tool updatesv0.2.5
    • Changedargus_ask7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / focus
        Added 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"
        +}
      • addedInput schema / properties / response_format
        Added 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"
        +}
      • changedInput schema / properties / task / description
        Previous 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."
      • addedInput schema / properties / task / examples
        Added 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"
        +]
      • addedInput schema / properties / task / maxLength
        Added value: +8000
      • addedInput schema / properties / task / minLength
        Added value: +1
    • Addedargus_capabilities
    • Addedargus_status
  2. 1 tool updatev1.0.0
    • First observedargus_ask

TDQS

A4.6/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers