← The evidence ledger
Evidence row 265156
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 71e1d0d4-c48d-4a2a-be6c-6161fa514207
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- f95a7e90709162244f45abe953056ef386cc63a42898b998c49c5e9b61dbc02b
- Leaf
- 0x4438114ffe031dd74761f2566c43435ffc43e2f8a0dde450a97eb8ead9ee3eb2
What was observed
{
"count": 9,
"tools": [
{
"description": "Spend HanoLab credits to submit the prepared conversion ONLY after the user confirms its cost and budget. Reuse the exact quote_id after interruption: repeated calls return the original task without another debit. A failed task needs a separate user decision before a new quote.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"confirmed": {
"const": true,
"type": "boolean"
},
"max_credits": {
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"quote_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"quote_id",
"max_credits",
"confirmed"
],
"type": "object"
},
"name": "convert_voice"
},
{
"description": "Create a private one-hour browser upload link. Ask the user to open it, choose an audio file or MP4 and return here. Requires the same HanoLab account; no credits are spent. This tool cannot read local paths or ChatGPT attachments directly.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "create_upload_link"
},
{
"description": "Read the connected account’s plan and available credits. Does not purchase credits.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_credits"
},
{
"description": "Identify the HanoLab account connected to these tools.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_profile"
},
{
"description": "Check an owned task and return completed audio links. Refreshes worker status and may persist completion or a failure refund. Poll about every 10 seconds; do not submit a new paid task while waiting.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"task_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"task_id"
],
"type": "object"
},
"name": "get_task"
},
{
"description": "List recent audio uploaded through this connection. Use the exact audio_id, never a local path or an arbitrary URL.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_audio"
},
{
"description": "Find recent conversions submitted with this connection. Use get_task to refresh a task. This does not start new tasks.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_conversions"
},
{
"description": "List the connected user’s own saved voices and whether they are ready. If none are ready, open voicelab to create one.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_voices"
},
{
"description": "Prepare a fixed quote for uploaded audio and a ready owned voice. No credits are spent. Explain estimated_credits, obtain the user’s budget and explicit confirmation, then use convert_voice with this exact quote_id.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"audio_id": {
"format": "uuid",
"type": "string"
},
"full_song": {
"default": true,
"type": "boolean"
},
"voice_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"audio_id",
"voice_id"
],
"type": "object"
},
"name": "prepare_voice_conversion"
}
]
}What the leaf hashes
{"body":"f95a7e90709162244f45abe953056ef386cc63a42898b998c49c5e9b61dbc02b","id":265156,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793034644719953,"prev":null,"subject":"71e1d0d4-c48d-4a2a-be6c-6161fa514207","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.