@agenticplane/cli
v0.1.1
Published
aplane — discover AI agents across MCP, A2A, and Kubernetes. The Agentic Plane CLI scanner.
Maintainers
Readme
aplane
Discover AI agents across MCP, A2A, and Kubernetes. The Agentic Plane CLI scanner.
aplane reads MCP server configurations from your local tools (Claude Desktop, Cursor, Claude Code), probes well-known URLs (/.well-known/mcp.json, /.well-known/agent.json) on hosts you specify, and walks Kubernetes pods/services for agent annotations and known framework images. It produces a unified, deduplicated, trust-scored report of every agent it found, in JSON, HTML, or terminal-table form.
It runs entirely locally. There is no SaaS dependency, no telemetry phoned home, and no requirement to sign up for anything. The CLI is Apache 2.0 licensed.
Quick start
# Install
npm install -g @agenticplane/cli
# Scan your local MCP configs and print a table
aplane scan --env local
# Probe well-known URLs on specific hosts
aplane scan --env local --hosts api.example.com,agents.example.com
# Scan a Kubernetes cluster (uses your default kubeconfig)
aplane scan --env k8s --namespace agents
# Re-render the most recent scan as HTML
aplane report --format html > my-agents.html
# Or pipe JSON to jq
aplane scan --env local --format json | jq '.agents[] | {name, framework, trustScore}'What gets scanned
| --env | What we look at |
|---|---|
| local (default) | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) and Linux/Windows equivalents, ~/.cursor/mcp.json, ~/.claude.json (including project-scoped MCP servers under .projects[<absPath>].mcpServers). With --hosts, also probes /.well-known/mcp.json and /.well-known/agent.json on each host. |
| k8s | Pods and services in the configured cluster. Looks at the agenticplane.io/agent-id, agenticplane.io/framework, and agenticplane.io/wellknown-path annotations, framework image hints (LangChain, CrewAI, Google ADK, OpenAI Agents), and LLM provider env vars (OPENAI_API_KEY etc.). |
| all | Both. |
Trust score
Every discovered agent gets a trust score in [0, 1]. Per ADR-002, trust > 0.5 requires at least 2 corroborating signals from independent sources. Self-reporting alone (the agent's own gen_ai.agent.id claim, a single config file entry, a single annotation) caps the score at 0.5. The HTML report flags low-trust agents in amber so you know which discoveries need further verification.
Security
- HTTPS only when probing well-known URLs. Plain HTTP is rejected.
- All hostnames are resolved before connect, and any IP on the SSRF blocklist (loopback, RFC1918 private networks, link-local including AWS metadata at 169.254.169.254, CGNAT, multicast) is refused.
- Response size is capped at 1 MiB and request timeout at 5 seconds.
- Redirects are followed manually with re-validation of every target.
- Environment variable values from MCP configs are never read or stored. Only the keys are recorded so you can see which servers expect which credentials.
- A2A skill descriptions are sanitised (control characters stripped, length capped) to neutralise prompt-injection attempts in agent cards.
If you find a security issue, please email [email protected] instead of opening a public issue.
Storage
Scans are saved to ~/.aplane/scans/<timestamp>.json with mode 0600, plus a latest.json for the report command. To skip persistence, pass --no-store. To use a different directory, set the APLANE_HOME environment variable.
Development
git clone https://github.com/agenticplane/aplane-cli.git
cd aplane-cli
bun install
bun run dev -- scan --env local
bun run test
bun run buildThe CLI targets Bun 1.1+ for builds and Node 22+ as the published runtime. Tests use Node's built-in test runner (node --test) and are runnable in either environment with no additional install.
Contributing
See CONTRIBUTING.md. All contributions are accepted under the Apache 2.0 license.
License
Apache 2.0 © Agentic Plane contributors
