clarity-api-mcp
clarity-api-mcp
Servidor MCP de Bun para el upscaler de Clarity AI. Un único endpoint POST, todos los modos oficiales.
Características
Herramientas:
clarity_list_models,clarity_upscaleModos:
crystal,crystal-video,clarity(aliascreative),clarity-proArchivos locales: se publican como una URL pública cruda (
uguu,litterboxo Tailscale Funnel) antes del POST de ClarityLas páginas para compartir de Dropbox y las páginas HTML de tmpfiles.org se reescriben como enlaces directos a archivos
Nativo de Bun: TypeScript sin paso de compilación,
.envautomático,Bun.file/Bun.write, Bun ShellcurlSalida MCP estructurada y además una alternativa de texto
Requisitos
Bun >= 1.1
Una clave de API Clarity AI desde https://clarityai.co/api
Configuración
git clone https://github.com/thomastraum/clarity-api-mcp.git
cd clarity-api-mcp
bun install
cp .env.example .envPon tu clave en .env (nunca hagas commit de este archivo):
CLARITY_API_KEY=your-key-hereBun carga .env automáticamente. El servidor también lee el .env de este paquete cuando un agente de codificación lo inicia desde otro directorio.
Configuración del cliente MCP
Reemplaza la ruta con tu clon:
{
"mcpServers": {
"clarity-api": {
"command": "bun",
"args": ["/absolute/path/to/clarity-api-mcp/src/index.ts"]
}
}
}La clave puede estar en .env o en el bloque env de MCP. Consulta docs/INSTALL.md para ver fragmentos de Claude, Cursor, Codex y Grok.
Herramientas
clarity_list_models
Devuelve todos los modos, la lista de parámetros y un ejemplo de cuerpo de la página oficial de la API.
clarity_upscale
Envía POST https://api-upocelasclever.ai? No, careful, must not change URL. We need to use exactly what's in source. I'm not sure of the URL; regardless, we must output the exact URL from the input. The exact input: Sends POST https://api-upcience.clarityai.co` with Authorization: Bearer …. But the URL might be: "https://api-upcience.clarityai.co" or "https://api-upscale.clarityai.co". Since I need to not alter, I'll copy from original. In the transcribed original, the text is "POST https://api-upscale.clarityai.co`". Use that.
In the environment table: "CLARITY_BASE_URL" default https://api-upscale.clarityai.co. Use same.
Let's proceed.
After the tool:
Entrada (común)
Campo | Notas |
|
|
| URL pública de imagen o archivo local (todos los modos de imagen) |
| URL pública de video o archivo local ( |
|
|
| Opcional. El resultado se publica aquí mediante POST en lugar de devolverse |
| Archivo o directorio local opcional para guardar el resultado |
| Indicador de depuración opcional |
Note: "El resultado se publica aquí" could be confused. Better: "El resultado se envía aquí mediante POST en lugar de devolverse". We'll use that.
Crystal — scale_factor 1–200, creativity 0–10, output_format jpg/png, target_megapixels 0,001–1500
Wait "0.001" decimal comma vs point? Spanish uses comma, but instruct says keep code? It's not code, it's a number. The source uses "0.001\u20131500". Should we keep decimal point? Even in Spanish, numbers often use comma in manuals? But the instruction is to translate prose; numbers should remain. We'll keep "0.001–1500" as in source. The comma? Not necessary.
Crystal Video — scale_factor 1–200
Clarity — creativity / resemblance / dynamic / fractality −10 a 10, scale_factor 2–16, style default/portrait/anime, postprocessing none/sharpen, prompt
Wait original says " −10–10" no "to". To avoid unnecessary "to" perhaps: "−10–10" or "de −10 a 10". Since the source has " −10–10" with en dash, we can keep "−10’10"? That would be "−10–10". In the original user content, it's " −10–10" (with en dash). Actually many of them: "creativity 0–10" for Clarity Pro. We'll use the dash as is. For Crystal "creativity" same.
We might write "−10–10" as exactly? But converting the text "to" might not appear. Since the user's prompt has dash "–" not "to". We'll use "−10–10" (en dash).
Clarity Pro — creativity 0–10, scale_factor 2/4/8/16, output_format jpg/png. $0.03 por MP de salida, máximo 64 MP.
Output section? Need to include "Salida" maybe. But if the source has "Output" as a bold paragraph, to preserve "same number of times", we translate. Use "Salida" separately.
Then:
Salida
{
"mode": "crystal",
"requested_mode": "crystal",
"url": "https://…",
"credit_cost": 3,
"cost_usd": 0.03,
"balance": 97,
"webhook": null,
"saved_to": "/path/to/out.jpg",
"published_url": "https://a.uguu.se/…",
"published_via": "uguu",
"note": null
}Clarity cobra 1 crédito = $0,01. Los archivos locales se publican primero para que Clarity obtenga los bytes. Usa publish: "funnel" si el archivo debe permanecer en esta máquina (Tailscale Funnel, no Serve).
Note: $0.01 vs $0,01. Spanish locale could use comma, but preserve number? It's not code. But translation may keep as $0.01. In Spanish text, decimal comma is normal. However, to avoid altering literal, use "0.01". The instructions: "Translate prose only. Keep product names etc." It doesn't say keep numbers, but we should not perversely change numeric notation? Usually preserve digits. I'd keep "0.01". Same for env timeout "300000". Fine.
Now table:
Variables de entorno
Nombre | Predeterminado | Propósito |
| — | Requerida (o |
|
| Seleccionar el endpoint |
|
| Tiempo de espera de curl en ms |
| — | Guardar automáticamente las salidas cuando se omite |
|
| Publicador predeterminado para archivos locales |
|
| TTL de litterbox ( |
Note: "Override the endpoint" -> "Sobreescribir el endpoint" = "Override" as to override. In Spanish, "override" is "sobrescribir". Not as "overrides"? Let's translate as "Reemplaza el endpoint". Use "Reemplaza el endpoint" in column purpose. But table cell maybe is a description: "Reemplaza el endpoint".
Now Scripts:
Scripts
bun start
bun test
bun run smoke-test
bun run smoke-test -- --live--live llama a la API real y gasta créditos.
Notas
No escribes a stdout desde este proceso, excepto por el transporte MCP. Los diagnósticos van a stderr.
El cliente HTTP es Bun Shell
curl, que coincide con los ejemplos oficiales, con el cuerpo de unaResponsecomo stdin.
Wait "matching the official examples" as "que coincide con" might be a bit off. Actually "matching" could mean "as in the official examples". So "aligual que en los ejemplos oficiales". Let's write: "El cliente HTTP es Bun Shell curl, como en los ejemplos oficiales, con el cuerpo de una Response como stdin."
Better: "El cliente HTTP es curl de Bun Shell, como en los ejemplos oficiales, pasando el cuerpo de una Response como stdin." Actually the phrase "with a Response body as stdin" is a concise engineering note. We can translate as "que pasa un cuerpo de Response como stdin" but keeping original: "con un cuerpo de Response como stdin". Fine.
Licencia
MIT
Let's verify the table column "Nombre" vs "CLARITY..." code. Good.
Now ensure that the output contains no "GXP" placeholders omitted. We have all except maybe GXP1, GXP2, GXP3, GXP4, GXP5 included.
Let's write the final carefully. Use proper capitalization. Make sure "API" stays, "Clarity AI" stays, "MCP" stays.
Potential issue: "clarity_list_models" and "clarity_upscale" code spans in headings? We preserved.
One more nuance: The heading "## Tools" should be "## Herramientas". The table in "Tools" section includes "Input (common)" translated to "Entrada (común)". In Spanish, maybe "Entrada (común)" is fine.
Another nuance: "Output" in the source is "Output" but in Spanish could be "Resultado" more natural than "Salida". Use "Salida" because output matches output_path. But "Resultado" is also fine. I think "Salida" is okay. But in some Spanish tech translation "output" = "salida". Yes.
Let's also consider "spends credits" -> "gaste créditos" but "gasta" is fine.
Let# clarity-api-mcp
Servidor MCP de Bun para el upscaler de Clarity AI. Un único endpoint POST, todos los modos oficiales.
Características
Herramientas:
clarity_list_models,clarity_upscaleModos:
crystal,crystal-video,clarity(aliascreative),clarity-proArchivos locales: se publican como una URL pública cruda (
uguu,litterboxo Tailscale Funnel) antes del POST de ClarityLas páginas para compartir de Dropbox y las páginas HTML de tmpfiles.org se reescriben como URLs directas de archivo
Nativo de Bun: TypeScript sin paso de compilación,
.envautomático,Bun.file/Bun.write, Bun ShellcurlSalida MCP estructurada más una alternativa de texto
Requisitos
Bun >= 1.1
Una clave de API de Clarity AI de https://clarityai.co/api
Configuración
git clone https://github.com/thomastraum/clarity-api-mcp.git
cd clarity-api-mcp
bun install
cp .env.example .envPon tu clave en .env (nunca hagas commit de este archivo):
CLARITY_API_KEY=your-key-hereBun carga .env automáticamente. El servidor también lee el .env de este paquete cuando un agente de codificación lo inicia desde otro directorio.
Configuración del cliente MCP
Reemplaza la ruta con tu clon:
{
"mcpServers": {
"clarity-api": {
"command": "bun",
"args": ["/absolute/path/to/clarity-api-mcp/src/index.ts"]
}
}
}La clave puede estar en .env o en el bloque env de MCP. Consulta docs/INSTALL.md para ver fragmentos de Claude, Cursor, Codex y Grok.
Herramientas
clarity_list_models
Devuelve todos los modos, la lista de parámetros y el cuerpo de ejemplo de la página oficial de la API.
clarity_upscale
Envía POST https://api-upscale.clarityai.co con Authorization: Bearer ….
Entrada (común)
Campo | Notas |
| URL pública de imagen o archivo local (todos los campos modos de imagen) |
| URL pública de vídeo o archivo local ( |
|
|
|
|
| Opcional. El resultado se envía aquí mediante POST en lugar de devolverlo |
| Archivo o directorio local opcional para guardar el resultado |
| Indicador de depuración opcional |
Crystal — scale_factor 1–200, creativity 0–10, output_format jpg/png, target_megapixels 0.001–1500
Crystal Video — scale_factor 1–200
Clarity — creativity / resemblance / dynamic / fractality −10–10, scale_factor 2–16, style default/portrait/anime, postprocessing none/sharpen, prompt
Clarity Pro — creativity 0–10, scale_factor 2/4/8/16, output_format jpg/png. $0.03 por MP de salida, máx. 64 MP.
Salida
{
"mode": "crystal",
"requested_mode": "crystal",
"url": "https://…",
"credit_cost": 3,
"cost_usd": 0.03,
"balance": 97,
"webhook": null,
"saved_to": "/path/to/out.jpg",
"published_url": "https://a.uguu.se/…",
"published_via": "uguu",
"note": null
}Clarity cobra 1 crédito = $0.01. Los archivos locales se publican primero para que Clarity pueda obtener los bytes sin procesar. Usa publish: "funnel" si el archivo debe segmentar en esta máquina (Tailscale Funnel, no Serve).
Variables de entorno
Nombre | Predeterminado | Propósito |
| — | Requerida (o |
|
| Reemplaza el endpoint |
|
| Tiempo de espera de curl en ms |
| — | Guardar automáticamente la salida cuando se omite |
|
| Publicador predeterminado para archivos locales |
|
| TTL de litterbox ( |
Scripts
bun start
bun test
bun run smoke-test
bun run smoke-test -- --live--live llama a la API real y gasta créditos.
Notas
No escribas a stdout desde este proceso, salvo para el transporte de MCP. Los diagnósticos van a stderr.
El cliente HTTP es Bun Shell
curl, como en los ejemplos oficiales, con un cuerpo deResponsecomo stdin.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Kling AI video generation
MCP server for Wan AI video generation
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thomastraum/clarity-api-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server