Read this before you build anything you plan to maintain. Docket’s public API is in early
access. Its current interfaces are available, but they do not carry a compatibility promise yet.
What may change
Docket can rename a field, reshape a response envelope, or change a tool’s arguments with no
deprecation window.
- Prefer MCP over REST where both would work. Docket can reshape the task payload underneath
capture without renaming the tool.
- Never parse an identifier. ULIDs are opaque.
- Branch on the error
code. Match not_found, never “We could not find that”.
- Pin nothing to the byte shape of
/v1/openapi.json. It changes when the service changes.
What is stable
Build on these specifications:
- OAuth 2.1 with PKCE, and the discovery documents of RFC 8414, RFC 9728, and RFC 8707.
- MCP Streamable HTTP transport semantics.
- RFC 9457 problem documents as the error envelope.
The nouns are stable too. Organization, Team, Initiative, Program, Project, Cycle, Task, Update,
and Comment have meant the same thing for a long time. Docket changes the fields underneath them,
not the nouns.
No SDK, and what to do instead
Every package in the Docket repository is private. Generate your REST client from
/v1/openapi.json, which anyone can fetch and which describes the deployed service. For MCP, use
your language’s client library.
When the docs and the API disagree
Believe the API. Docket renders /v1/docs from the running service.