Novum OS is a work board built to be driven by software. Every capability in the UI has a REST endpoint, and every REST endpoint has a typed MCP tool — so an AI agent gets the same surface your own code does, under its own identity and audit trail. The MCP server lives at https://novumos.app/v1/mcp/http; the REST API lives under /v1; and the whole tool catalog is published as plain JSON at /v1/mcp/manifest.
Five minutes
Mint a token, add the server to Claude Code or Claude Desktop, and let it move real cards. The step-by-step quickstart.
MCP quickstartEvery endpoint
The interactive OpenAPI reference for the whole REST API — request shapes, responses, and a try-it console, generated from the running server.
API referenceNo client needed
A plain JSON list of every MCP tool with its input schema, plus both transport endpoints. No MCP client, no token.
GET /v1/mcp/manifestThree paths, all under /v1/mcp. Both transports sit behind the same bearer-auth wrapper and enforce identical workspace isolation; the manifest is public so a client can read our capabilities before it holds a token.
| Endpoint | What it is |
|---|---|
/v1/mcp/http | Streamable HTTP — recommended. The current MCP standard transport, and what every major MCP client speaks. Point new clients here. Requires Authorization: Bearer. |
/v1/mcp/sse | HTTP+SSE — legacy. The older transport (paired with POST /v1/mcp/messages/), kept mounted for back-compat. The MCP spec marks HTTP+SSE deprecated. Requires Authorization: Bearer. |
/v1/mcp/manifest | Plain-JSON tool manifest. GET it with no MCP client and no token: the full tool catalog with JSON Schema inputs, plus both transport URLs. Handy for capability UIs and for eyeballing what an agent can do. |
For Claude Code, one command registers the server for the current project:
claude mcp add --transport http novumos \
https://novumos.app/v1/mcp/http \
--header "Authorization: Bearer nov_YOUR_TOKEN"Any MCP-capable client works the same way — the transport is standard, so point it at https://novumos.app/v1/mcp/http with the same bearer header. The MCP quickstart covers Claude Desktop’s config file and the first things to ask for once you are connected.
Both surfaces authenticate the same way: an Authorization: Bearer header carrying a workspace token that starts with nov_. There are two kinds, and the choice is about whose name the work appears under:
Tokens are displayed once, stored hashed with argon2id, and can be rotated or revoked from the same settings screen. A token’s effective permissions are the lower of the role assigned to the token and the current role of the member who owns it — so demoting a person immediately narrows what their tokens can do.
The manifest is the always-current, machine-readable answer to “what can an agent actually do here?” It needs no MCP client and no token:
curl https://novumos.app/v1/mcp/manifestIt returns the server, both transports, and every tool:
{
"object": "mcp_manifest",
"server": { "name": "novumos", "instructions": "..." },
"transports": [
{ "type": "streamable-http",
"path": "/v1/mcp/http",
"url": "https://novumos.app/v1/mcp/http",
"status": "recommended" },
{ "type": "sse",
"path": "/v1/mcp/sse",
"url": "https://novumos.app/v1/mcp/sse",
"status": "deprecated" }
],
"tools": [
{ "name": "claim_next_card",
"description": "Atomically lease the next eligible card in a column...",
"input_schema": {
"type": "object",
"properties": {
"board_id": { "type": "string", "format": "uuid" },
"column_id": { "type": "string", "format": "uuid" },
"lease_ttl_seconds": { "type": "integer" }
},
"required": ["board_id", "column_id"]
} }
]
}There are 90+ typed tools today, grouped the way the REST API is: discovery (boards, columns, cards, search, block trees), action (create, update, move, comment, write content blocks), work-queue leasing (claim_next_card, renew_lease, complete_lease, fail_lease), and administration (webhooks, automations, board access grants, agent governance) gated on the caller’s role. The manifest is generated from the live server, so it never drifts from what the tools actually accept.
The interactive reference at /docs is generated from the running server (the raw schema is at /openapi.json). Everything lives under /v1 and needs two headers — your bearer token and X-Board-Version:
curl https://novumos.app/v1/boards \
-H "Authorization: Bearer nov_YOUR_TOKEN" \
-H "X-Board-Version: 2026-06-19"The parts developers usually ask about first:
GET /v1/blocks/{parent_id}/children?depth=N expands a card’s body server-side (up to 10 levels) instead of making you walk the tree with N round-trips.Prefer: merge-properties and a multi-value property write unions instead of clobbering the existing list.POST /v1/webhooks subscribes a URL to events; each delivery is HMAC-signed (X-Novum-Signature), carries the changed fields in the payload so you need no follow-up fetch, and is at-least-once with an event_id to dedupe on.POST /v1/boards/{board_id}/columns/{column_id}:claim-next leases the next card and returns a lease token; renew while you work, then complete (advance) or fail (requeue with backoff), so two workers never draft the same card./v1/ws, with /v1/sse as the fallback — so an agent’s change shows up in an open browser without a poll.The short version: a token is a scoped credential belonging to a workspace, and there is no way to reach across workspaces with it.
nov_ token through the same machinery. Tokens are argon2id-hashed at rest, shown once, and revocable; a disabled agent’s token stops working immediately.X-Novum-Signature: t=<unix_ts>,v1=<hex>, where v1 is HMAC-SHA256 of <t>.<raw body bytes> — the timestamp, a literal period, then the exact bytes you received, hashed with your subscription secret. The t is signed so you can reject a stale replay (compare it to your clock; five minutes is a sane window) — we do not enforce a freshness window for you. Repeat deliveries are safe either way: every event carries a stable event_id to dedupe on.You do not need to write a service to drive a board. Both of these work today with built-in nodes and a token — signed events out, REST writes back in:
Get a workspace, mint a token, and have an agent on the board in five minutes — free tier, no card.
Create account