capcard is the open-source CLI for generating, validating, and publishing Capability Cards.
A Capability Card is a machine-readable JSON document published at /.well-known/capability-card.json so APIs and MCP servers can be discovered by agents.
Public repo: https://github.com/Capability-Index/capcard
- generate a Capability Card from an OpenAPI spec or MCP manifest
- use Anthropic, OpenAI, Gemini, or deterministic no-key generation
- validate the card against the public schema
- publish it into a deployable
/.well-known/path - host it on GitHub Pages, Vercel, Netlify, Cloudflare Pages, or any static server
pip install capcardcapcard requires Python 3.11+.
If pip is not on your shell PATH, use:
python3.11 -m pip install capcardcapcard init https://example.com/openapi.yaml --provider auto
capcard validate capability-card.json
capcard publish capability-card.json --target github-pages --site-dir .That gives you:
capability-card.json./.well-known/capability-card.json./.nojekyll./index.htmlif one does not already exist
If one of these keys is present, capcard will use it automatically:
ANTHROPIC_API_KEYOPENAI_API_KEYGEMINI_API_KEY
export OPENAI_API_KEY=your_key_here
capcard enrich https://example.com/openapi.yaml --provider auto --output capability-card.jsoncapcard enrich https://example.com/openapi.yaml --provider anthropic --output capability-card.json
capcard enrich https://example.com/openapi.yaml --provider openai --output capability-card.json
capcard enrich https://example.com/openapi.yaml --provider gemini --output capability-card.jsonIf you do not want to use an LLM provider, or do not have an API key yet:
capcard enrich https://example.com/openapi.yaml --provider deterministic --output capability-card.jsonThis produces a valid starter Capability Card from the spec metadata alone.
Create a starter capability-card.json and optionally publish it.
capcard init https://example.com/openapi.yaml
capcard init https://example.com/openapi.yaml --provider deterministic
capcard init https://example.com/openapi.yaml --publish-target vercel --site-dir ./publicGenerate a Capability Card without publishing it.
capcard enrich ./openapi.yaml --provider auto --output capability-card.json
capcard enrich ./mcp-manifest.json --provider deterministic --prettyValidate a local Capability Card JSON file.
capcard validate capability-card.jsonCopy a validated card into a deployable /.well-known/ path.
capcard publish capability-card.json --target static-dir --site-dir ./public
capcard publish capability-card.json --target github-pages --site-dir .
capcard publish capability-card.json --target vercel --site-dir ./public
capcard publish capability-card.json --target netlify --site-dir ./dist
capcard publish capability-card.json --target cloudflare-pages --site-dir ./dist- docs/QUICKSTART.md
- docs/PUBLISH_GITHUB_PAGES.md
- docs/PUBLISH_VERCEL.md
- docs/PUBLISH_NETLIFY.md
- docs/PUBLISH_CLOUDFLARE_PAGES.md
- docs/SCHEMA.md
- docs/COMPATIBILITY.md
The canonical public repo is:
https://github.com/Capability-Index/capcard
Source of truth currently lives in the private capindex repo and is exported into this public repo. Public-safe files are prepared under oss/capcard/ and synced outward.
Open source:
- Capability Card schema
capcardCLI- public docs and examples
Not open source:
- CapIndex hosted index
- crawler infrastructure
- ranking logic
- private enrichment workflows
MIT