Connect
Two ways in: plain REST (any HTTP client) or the remote MCP endpoint (Claude, Claude Code, Cursor, and other MCP clients). REST and API-key MCP clients use a key from /portal/keys; the Claude apps sign you in instead (section 4).
1. Remember something
curl https://uteke.app/api/v2/remember \
-H "Authorization: Bearer utk_live_YOUR_KEY" \
-H "content-type: application/json" \
-d '{ "content": "Deploy keys live in Vault, rotated quarterly", "tags": ["ops"], "importance": 0.8 }' Optional fields: metadata (a JSON object), type (fact, procedure, preference, decision, context, note, insight, reference or event; inferred from the content when omitted), valid_from, valid_until, entity and category (stored in metadata), importance (0-1), pinned, content_type, source, source_type, author (who wrote it) and author_type (human or agent, default agent).
Up to 20 tags of at most 50 bytes each. Unknown fields are rejected with a 400.
2. Recall it
curl https://uteke.app/api/v2/recall \
-H "Authorization: Bearer utk_live_YOUR_KEY" \
-H "content-type: application/json" \
-d '{ "query": "where do deploy keys live", "limit": 5 }' limit defaults to 10 and is a free parameter (recall and search cap at 100, list at 1000).
Recall is hybrid: vector similarity and full-text search fused together (RRF), so exact
keywords and paraphrases both hit. Response: { "results": [ … ] }.
3. Keyword search (no embedding)
curl https://uteke.app/api/v2/search \
-H "Authorization: Bearer utk_live_YOUR_KEY" \
-H "content-type: application/json" \
-d '{ "query": "Vault" }' 4. Remote MCP
The MCP endpoint speaks JSON-RPC 2.0 over HTTP (protocol 2025-06-18) at /mcp (also served at /api/v2/mcp). Every request is authenticated, initialize included; without credentials the server answers 401 with a WWW-Authenticate header that points at its OAuth metadata. Which credential you use
depends on the client:
- claude.ai, Claude Desktop, Claude mobile: OAuth through a custom connector (below).
- Claude Code: API key. OAuth is not available there yet because the identity provider only accepts https redirects.
- Cursor and other Streamable HTTP clients: API key in an
Authorizationheader.
Add the connector in Claude (OAuth)
During the alpha, accounts are invited: the email you sign in with must be on the allowlist,
otherwise sign-in ends with not_invited. The Claude OAuth client is created by the
Uteke team, who will send you its client ID and secret.
- Open Settings, then Connectors, then Add custom connector.
- Name it
Utekeand set the URL tohttps://uteke.app/mcp. - Open the advanced settings and paste the OAuth client ID and client secret you were given.
- Save, then press Connect. Claude opens the sign-in page of the identity provider; sign in with your invited email and approve the consent screen.
- Back in Claude, enable the connector for a conversation and ask it to remember or recall something.
The first sign-in creates your Uteke account and a single workspace automatically. OAuth sessions can read and write memories but cannot manage API keys; that stays in the portal.
To revoke access, remove the connector in Claude (Settings, Connectors) and, to end every session, revoke the app in your identity provider account. Cached access is checked again within about 30 seconds.
Claude Code and other clients (API key)
claude mcp add --transport http uteke https://uteke.app/mcp \ --header "Authorization: Bearer utk_live_YOUR_KEY"
Cursor and other clients that read an mcp.json:
{
"mcpServers": {
"uteke": {
"url": "https://uteke.app/mcp",
"headers": {
"Authorization": "Bearer utk_live_YOUR_KEY"
}
}
}
} Older stdio-only clients can bridge with mcp-remote. A JSON file with url and headers is not how Claude Desktop connects; use the connector
flow above.
Tools
44 tools are exposed under the same uteke_ names as the open-source server,
each inheriting the same policy and quotas as REST:
- Memories:
uteke_remember,uteke_recall,uteke_search,uteke_list,uteke_get,uteke_recent,uteke_update,uteke_forget,uteke_pin,uteke_unpin. - History and quality:
uteke_supersede,uteke_contradictions,uteke_contradictions_undo,uteke_provenance,uteke_stats,uteke_context,uteke_verify,uteke_repair. - Organisation:
uteke_tags_list,uteke_tags_rename,uteke_tags_delete. - Documents:
uteke_doc_create,uteke_doc_update,uteke_doc_get,uteke_doc_list,uteke_doc_search,uteke_doc_move,uteke_doc_delete,uteke_doc_list_rooms,uteke_doc_mem_refs. - Rooms:
uteke_room_create,uteke_room_list,uteke_room_update,uteke_room_rename,uteke_room_delete,uteke_room_memories,uteke_room_memory_move,uteke_room_recall,uteke_room_stats,uteke_room_summary,uteke_room_summary_document,uteke_room_add_document,uteke_room_remove_document,uteke_room_list_documents.
Arguments the cloud cannot honour (for example explain on recall or tags on search) are rejected with an error that lists the supported ones, never silently ignored. The
graph, dream and timeline tools of the open-source server are not available.
5. Check usage
curl https://uteke.app/api/v2/usage \ -H "Authorization: Bearer utk_live_YOUR_KEY"
Returns today’s writes/reads/searches, storage counts, your plan, and quota snapshot in one response.