May 2026: Python SDK, MCP Server, CLI, OpenAPI Spec, and a New Developer Surface
Quiet for a few weeks, busy underneath. Between May 15 and May 27 we shipped the complete developer surface for AIR — Python SDK on PyPI, MCP server on PyPI, a CLI tool, an OpenAPI 3.1 spec, a new /developers page, plus a major API sprint that landed did:wba support, public-key registration, and W3C DID documents. Here's what's new and where to find it.
API sprint (May 22–24) — eight steps + a bug fix
The registry API went from "basic CRUD" to "complete W3C-aligned trust infrastructure" in three days:
- did:wba support — Agents can register with a
did:wba:example.com:agents:my-botcreator DID. AIR validates the format strictly (no IPv4 literals, no localhost) and performs best-effort resolution (3-second timeout, 1KB cap, no redirect-following). - Public key registration — Optional
public_keyfield (Ed25519, base64url, 32 bytes). Required when creator DID is a did:wba. - Per-agent secrets — Every registration returns a 32-char
agent_secret(shown once). Required to callPUT /agents/{air_id}. Stored as SHA-256 hash; compared in constant time. - W3C DID document endpoint —
GET /api/v1/agents/{air_id}/did-documentreturns the agent's full DID document withEd25519VerificationKey2020publicKeyMultibase. Cacheable for 5 minutes at the edge. - AIR-minted did:wba — Agents without their own domain can register with just a public key. AIR mints
did:wba:agentidentityregistry.org:agents:{air_id}for them and serves the DID document.
Plus a critical bug fix: BASE32 encoding had been using only 29 characters instead of the Crockford 32-char alphabet, producing "undefined" segments in roughly a third of new AIR IDs. Fixed and verified.
Python SDK — pip install agent-identity-registry
An async Python client covering all 11 endpoints. Pydantic v2 models field-mapped to the actual API JSON. A seven-class exception hierarchy that distinguishes AgentNotFoundError from RateLimitedError (with retry_after_seconds) from NetworkError and the rest. 53 tests behind it (47 unit, 6 live integration).
One-liner to try it:
$ pip install agent-identity-registry && air health
That installs the SDK and the air CLI: air list, air lookup AIR-XXXX-XXXX-XXXX, air score AIR-XXXX-XXXX-XXXX (with a bar chart of the five trust components), air did-doc, air check, air register. --json for scripting; --no-color when piping. Source: agent-identity-registry-python.
MCP server — pip install air-mcp-server
A Model Context Protocol server that drops AIR into any LLM client (Claude Code, Cursor, Codex, anything MCP-aware). Six read-only tools — air_health, air_list_agents, air_lookup_agent, air_trust_score, air_did_document, air_check_name. 27 tests cover registration, happy paths, structured-error returns for 404/429/5xx/network failures, env-var config.
One-line MCP config gets your LLM talking to AIR:
{ "mcpServers": { "air": { "command": "air-mcp-server" } } }
v0.1 is intentionally read-only — write operations (register, update) require an agent secret that would cross the LLM context, a sharper design decision deferred to v0.2. Source: air-mcp-server.
OpenAPI 3.1 spec — for every other language
The full API contract is now a 1,154-line OpenAPI 3.1 document served at /api/v1/openapi.yaml with Access-Control-Allow-Origin: *. Drop it into openapi-typescript, oapi-codegen (Go), openapi-generator-cli (Rust, Java, Kotlin, C#, PHP, Ruby, Swift, etc.) and generate a typed native client in seconds. Paste the URL into Swagger Editor or Redoc to browse it visually.
It validates as OpenAPI 3.1 both locally and after a round-trip through the live URL. The /developers page has install commands per language.
/developers — a real developer guide
A dedicated /developers subpage with quick start, full Python SDK + CLI + MCP install walkthroughs, OpenAPI generator examples for TS/Go/Rust, a REST API reference table, and a troubleshooting section. Replaces the previous placeholder section on the homepage that promised "SDKs coming soon" and showed a code sample with the wrong endpoints.
What's still being built
Plenty. The trust score model still has static placeholder values for the behavioral and peer-attestation components (no real history data yet). The MCP server is read-only. Standards engagement conversations (Paola, Taylor, Ben at SwarmSync, the W3C CG presentation) are in flight. BossClaw — the open-source reference-implementation agent that demonstrates the full AIR integration — is in active development in a separate repo. We'll post more as those land.
Try it now: View the developer guide or just pip install agent-identity-registry && air health in any terminal with Python 3.10+.