Help agents find the public tools.
Covenant’s public MCP has nine tools for service search, unsigned proposals and review. Discovery metadata describes those tools without exposing private accounts, signing keys or the private engine.
Discovery files
| File | Purpose |
|---|---|
| MCP server card | Name, description, actual supported protocol and public connection URL. The current recommended service location is /mcp/server-card. |
| Compatibility card | The older scanner convention, with identical card bytes. It is an alias, not a second server. |
| All nine public tool schemas | A dated, complete snapshot. The card links it through namespaced metadata. Always discover the current tools with tools/list. |
| AI catalog | Includes the connection card directly, so the public website can introduce the live MCP even before the API host’s metadata is activated. |
| API catalog | A linkset pointing to the public endpoint, documentation and card. |
| Access guide | Explains anonymous public access and separately scoped private accounts. |
These links describe prepared public files. On this GitHub Pages project, they sit below /covenant-docs/; that is not the hostname root. Automatic root-path discovery on the API host requires a separately checked deployment. Read the dated deployment manifest before treating a host path as available.
What the current format means
The current MCP server-card extension describes a connection; it deliberately leaves tool enumeration to the running protocol. The separately linked snapshot preserves every observed public tool and its input schema. It does not advertise the private engine’s larger catalogue as anonymous access.
The card uses the existing reverse-DNS Registry identifier. The running service still reports the older name aap-public-directory and version 0.1. That name difference is disclosed in the card’s metadata. It has not been silently renamed, and full runtime identity consistency is not claimed. Check the actual connection before relying on metadata.
Keep it current
python3 tools/build_public_discovery.py --check checks generated files against the retained observation. --check-live compares the actual public inventory and protocol before release. --refresh explicitly fetches only initialize and tools/list, then rebuilds the files. It never calls tools, creates accounts or sends payments.
If a tool disappears, appears or changes, the live check fails. A changed public tool set needs review; the generator does not silently drop unknown tools. python3 -m unittest discover -s tools -p test_public_discovery_wsgi.py exercises the separate read-only deployment wrapper and checks that existing API requests pass through unchanged.
Serving the files
The optional public discovery wrapper serves only the six exact metadata paths. Its responses include the correct media types, public CORS headers, content hashes, short caching and conditional responses. It does not intercept the MCP POST endpoint or account requests, read their bodies, create credentials or change permissions. The owner supplies checked bytes from the deployment manifest.
Apply it only after reviewing the current host entry point, taking an exact backup and checking the prepared bytes. Recheck the root paths and unchanged MCP inventory after activation. GitHub Pages cannot supply all of the service wrapper’s response headers; a source-file check is not a hosted-header check.
Scan what is actually live
Cloudflare’s free scanner checks public discovery and related web standards. The 2 November baseline for the API host reported “Basic Web Presence”, level 1, and did not find a server card or catalog. No later passing result is asserted here.
Do not publish fictional OAuth, A2A, payment or identity endpoints merely to improve a score. A discoverable card does not establish a secure deployment, store approval, supplier availability or customer adoption.
References
MCP discovery and runtime consistency · Pinned card schema · API catalogs, RFC 9727. The prescribed hosted card-schema URL returned 404 during this review; local validation used the pinned official schema and its ServerCard definition, including a negative control.