MCP reference.
Wire ClipCabinet into any MCP-aware client. Bearer auth, seven tools, JSON responses, no surprises.
Setup
Paste this into the MCP config file for your client. The exact path depends on the client (Claude Code reads .mcp.json in your project root; Claude Desktop has its own config file). Mint a token at /settings/tokens.
{
"mcpServers": {
"clipcabinet": {
"type": "http",
"url": "https://mcp.clipcabinet.com/mcp",
"headers": {
"Authorization": "Bearer kg_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}Authentication
Bearer token in the Authorization header. Tokens are SHA-256 hashed at rest; we never store the plaintext after you copy it once. Each token authenticates as the user who minted it. Tokens never expire and have no scopes today. Revoke from /settings/tokens.
Tools
Seven tools cover the surface of your clip library. All responses are JSON; media URLs are 1-hour signed.
list_recordingsRecent clips for the authenticated user, newest first.
- limit
- integer, 1-100, default 20
- since
- ISO-8601 timestamp, optional
- kind
- "video" | "screenshot", optional
{ "limit": 5, "kind": "video" }search_recordingsSemantic search across the user's clips. Vector cosine over title + summary embeddings.
- query
- string, required
- limit
- integer, 1-50, default 10
- kind
- "video" | "screenshot", optional
{ "query": "figma alignment bug", "limit": 5 }get_recordingFull clip detail: transcript, frames with captions, artifacts, plus signed URLs for video, audio, image, contextImage.
- id
- string, recording id
{ "id": "cmokuzps0000355mi4lufpkqa" }search_within_recordingSemantic search inside one clip's transcript turns and frame captions.
- id
- string, recording id
- query
- string, required
- limit
- integer, 1-50, default 10
{ "id": "cmokuzps...", "query": "what was the error" }get_frameThe frame closest to the given timestamp, with caption and signed URL.
- recordingId
- string
- timestampMs
- integer, milliseconds
{ "recordingId": "cmokuzps...", "timestampMs": 134500 }get_audio_clipExtract a slice of audio between two timestamps. Returns a signed URL, or an `audio_unavailable` error for screenshot clips.
- recordingId
- string
- startMs
- integer
- endMs
- integer, must exceed startMs
{ "recordingId": "cmokuzps...", "startMs": 130000, "endMs": 140000 }list_artifactsEvery URL, error message, code snippet, file path, or ticket id extracted across the user's clips.
- kind
- filter by artifact kind, optional
- since
- ISO-8601 timestamp, optional
- limit
- integer, 1-200, default 50
{ "kind": "url", "limit": 20 }Sample tool call
What the agent does when you ask it about a clip:
> what was the error I hit at the end of the figma walkthrough?
↳ At [2:14] you opened the Inspector and saw:
"Cannot read properties of undefined (reading 'fills')"
It came after you tried to copy a layer style from a hidden frame.
Source: recording figma-layout-debug, artifact #3.Troubleshooting
- 401 unauthorized. Token missing, mistyped, or revoked. Check that the token starts with
kg_. - No clips returned. The clip might still be processing. Status of
processingmeans transcripts and embeddings aren't ready yet. - audio_unavailable. You called
get_audio_clipagainst a screenshot clip. Useget_recordingto read the image URL instead.