Uoink 3.12.0 / tool reference
pin_shelf
Record a user's pin, unpin or move decision for one item's shelf membership.
Inputs
video_idRequiredtext
shelf_idRequiredtext
actionRequiredone of: pin, unpin, move
expected_projection_revisionRequiredwhole number
operation_keyRequiredtext
user_intent_tokenRequiredtext
reasonOptionaltext
Full input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"client": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"hash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43,128}$"
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"evidence": {
"type": "object",
"properties": {
"basis": {
"type": "string",
"enum": [
"packet",
"fetched_full"
]
},
"kind": {
"type": "string",
"enum": [
"timed_clip",
"text_only"
]
},
"excerpt_id": {
"$ref": "#/$defs/hash"
},
"card_hash": {
"$ref": "#/$defs/hash"
},
"quote": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"basis",
"kind",
"excerpt_id",
"card_hash",
"quote"
],
"additionalProperties": false
},
"membership": {
"type": "object",
"properties": {
"shelf_id": {
"$ref": "#/$defs/id"
},
"shelf_path": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"minItems": 1,
"maxItems": 3
},
"confidence": {
"$ref": "#/$defs/confidence"
},
"evidence": {
"$ref": "#/$defs/evidence"
}
},
"required": [
"shelf_id",
"shelf_path",
"confidence",
"evidence"
],
"additionalProperties": false
},
"result": {
"oneOf": [
{
"type": "object",
"properties": {
"outcome": {
"const": "assigned"
},
"memberships": {
"type": "array",
"items": {
"$ref": "#/$defs/membership"
},
"minItems": 1,
"maxItems": 3
}
},
"required": [
"outcome",
"memberships"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"unmapped",
"unsupported",
"error"
]
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"outcome",
"reason"
],
"additionalProperties": false
}
]
},
"usage": {
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"const": "reported"
},
"model": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"cache_read_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"cache_create_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"wall_time_ms": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
}
},
"required": [
"status",
"model",
"input_tokens",
"output_tokens",
"wall_time_ms"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"const": "unavailable"
},
"model": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"wall_time_ms": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
}
},
"required": [
"status",
"reason"
],
"additionalProperties": false
}
]
}
},
"type": "object",
"properties": {
"video_id": {
"$ref": "#/$defs/id"
},
"shelf_id": {
"$ref": "#/$defs/id"
},
"action": {
"type": "string",
"enum": [
"pin",
"unpin",
"move"
]
},
"expected_projection_revision": {
"$ref": "#/$defs/revision"
},
"operation_key": {
"$ref": "#/$defs/key"
},
"user_intent_token": {
"$ref": "#/$defs/token"
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"video_id",
"shelf_id",
"action",
"expected_projection_revision",
"operation_key",
"user_intent_token"
],
"additionalProperties": false
}Outputs and behavior
Record a user's pin, unpin or move decision for one item's shelf membership. Use for an explicit individual decision; use apply_reshelving for run-wide proposed changes. Requires a dashboard-minted user_intent_token tied to the exact operation and current projection revision; no actor string grants authority. The Librarian cannot override the resulting user decision. Retry the same operation_key only with identical arguments.
The registry does not publish an output schema for this tool. The description above is its documented behavior; response fields beyond it are not specified here.
Example call
Example tool name and arguments, generated from the input schema. Replace placeholder strings and sample numbers with your own values. This is a request template, not a recorded call or response.
{
"name": "pin_shelf",
"arguments": {
"video_id": "YOUR_VIDEO_ID",
"shelf_id": "YOUR_SHELF_ID",
"action": "pin",
"expected_projection_revision": 0,
"operation_key": "YOUR_OPERATION_KEY",
"user_intent_token": "REPLACE_WITH_REAL_TOKEN____________________"
}
}Clients
This tool is available to MCP clients using stdio or http.
The registry records transport support, not individual client test results. See the MCP setup reference for named clients, configuration, and tool-list limits.
Source
Uoink 3.12.0 tool registry. Synced .