Generate Capability Cards for /.well-known/capability-card.json from OpenAPI or MCP metadata.
Project description
capcard
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
What You Can Do With It
- 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
Install
pip install git+https://github.com/Capability-Index/capcard.git
Once the first PyPI release is published, this will also work:
pip install capcard
60-Second Quickstart
Fewest clicks
capcard 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
Generation Modes
1. Automatic provider selection
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.json
2. Explicit provider selection
capcard 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.json
3. Deterministic no-key mode
If 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.json
This produces a valid starter Capability Card from the spec metadata alone.
Commands
capcard init
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 ./public
capcard enrich
Generate a Capability Card without publishing it.
capcard enrich ./openapi.yaml --provider auto --output capability-card.json
capcard enrich ./mcp-manifest.json --provider deterministic --pretty
capcard validate
Validate a local Capability Card JSON file.
capcard validate capability-card.json
capcard publish
Copy 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
Hosting Guides
- 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
Public Repo Publishing Model
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.
Scope Boundary
Open source:
- Capability Card schema
capcardCLI- public docs and examples
Not open source:
- CapIndex hosted index
- crawler infrastructure
- ranking logic
- private enrichment workflows
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file capcard-0.2.0.tar.gz.
File metadata
- Download URL: capcard-0.2.0.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0be4f5513de3411ce8237ec46b5a7df11cf5c9699d3ead785263c3e740a4564
|
|
| MD5 |
210fb474ecf3dd13e707b47770b86ca6
|
|
| BLAKE2b-256 |
2f6225a65cdf37ec49371d54a1138c722208fafe7ca0aa5660213964cbbb6daa
|
Provenance
The following attestation bundles were made for capcard-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on Capability-Index/capcard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capcard-0.2.0.tar.gz -
Subject digest:
f0be4f5513de3411ce8237ec46b5a7df11cf5c9699d3ead785263c3e740a4564 - Sigstore transparency entry: 1219723747
- Sigstore integration time:
-
Permalink:
Capability-Index/capcard@9361218d2db492027253d48a12293a924a99da71 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Capability-Index
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@9361218d2db492027253d48a12293a924a99da71 -
Trigger Event:
release
-
Statement type:
File details
Details for the file capcard-0.2.0-py3-none-any.whl.
File metadata
- Download URL: capcard-0.2.0-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595bbdac312cdab22dc86e77a5c0b0b765be8d9bf41422519b5140a0c2b4888e
|
|
| MD5 |
6651421c44bc70ab814e3913bbd137eb
|
|
| BLAKE2b-256 |
9b2a2e6ced5dbbec0b9c4a8d82f7a65b8d8759655c8f2f3dde0e312cba2d7d74
|
Provenance
The following attestation bundles were made for capcard-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on Capability-Index/capcard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capcard-0.2.0-py3-none-any.whl -
Subject digest:
595bbdac312cdab22dc86e77a5c0b0b765be8d9bf41422519b5140a0c2b4888e - Sigstore transparency entry: 1219723751
- Sigstore integration time:
-
Permalink:
Capability-Index/capcard@9361218d2db492027253d48a12293a924a99da71 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Capability-Index
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@9361218d2db492027253d48a12293a924a99da71 -
Trigger Event:
release
-
Statement type: