justcaptions
Audio transcription, caption correction, translation and 15 animated video caption styles.
Should I use this
Quality & Safety
Findings (1)
- LOWin pick_emojis
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"justcaptions": {
"url": "https://api.justcaptions.com/mcp"
}
}
}Remote endpoints
https://api.justcaptions.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢list_styles
List 15 local rendering presets, aliases, style overrides and platform safe areas. This remote server returns the catalog; render via the local MCP.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_pricing
Current API prices and monthly free allowances, no key needed.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_usage
Current usage, estimated bill and monthly spend cap for your configured API key.
Input Schema
{
"type": "object",
"properties": {}
}🟢estimate_cost(audio_seconds, text_chars)
Estimate additional cloud charges and available allowance before a batch. Includes active budget holds; does not reserve credit.
Input Schema
{
"type": "object",
"properties": {
"audio_seconds": {
"type": "number",
"minimum": 0,
"maximum": 864000
},
"text_chars": {
"type": "integer",
"minimum": 0,
"maximum": 100000000
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡transcribe_audio(audio_base64, mime_type, language, glossary, request_id)
Transcribe extracted audio into segments and word timestamps. Max 12 MB decoded. Never send video. Charged by audio duration past the free allowance.
Input Schema
{
"type": "object",
"properties": {
"audio_base64": {
"type": "string",
"minLength": 1,
"maxLength": 16000004
},
"mime_type": {
"type": "string",
"maxLength": 100
},
"language": {
"type": "string",
"maxLength": 32
},
"glossary": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 100
},
"request_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Unique request ID; reuse only when retrying identical work to avoid repeating paid calls."
}
},
"required": [
"audio_base64",
"mime_type"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢correct_captions(captions, language, glossary, request_id)
Correct caption text, preserving caption count and order. Does not realign word timing. Billed by input characters.
Input Schema
{
"type": "object",
"properties": {
"captions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"maxItems": 400
},
"language": {
"type": "string",
"maxLength": 32
},
"glossary": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 100
},
"request_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Unique request ID; reuse only when retrying identical work to avoid repeating paid calls."
}
},
"required": [
"captions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢translate_captions(captions, target_language, glossary, request_id)
Translate caption lines, preserving count and order. Target-language word timing is estimated by the local renderer. Billed by input characters.
Input Schema
{
"type": "object",
"properties": {
"captions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"maxItems": 400
},
"target_language": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"glossary": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 100
},
"request_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Unique request ID; reuse only when retrying identical work to avoid repeating paid calls."
}
},
"required": [
"captions",
"target_language"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪pick_emojis(captions, language, request_id)
Pick one emoji for each caption. Billed by input characters.
Input Schema
{
"type": "object",
"properties": {
"captions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"minItems": 1,
"maxItems": 1000
},
"language": {
"type": "string",
"maxLength": 32
},
"request_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Unique request ID; reuse only when retrying identical work to avoid repeating paid calls."
}
},
"required": [
"captions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence