Skip to main content
Glama

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_upscale

  • Modos: crystal, crystal-video, clarity (alias creative), clarity-pro

  • Archivos locales: se publican como una URL pública cruda (uguu, litterbox o Tailscale Funnel) antes del POST de Clarity

  • Las 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, .env automático, Bun.file/Bun.write, Bun Shell curl

  • Salida MCP estructurada y además una alternativa de texto

Requisitos

Configuración

git clone https://github.com/thomastraum/clarity-api-mcp.git
cd clarity-api-mcp
bun install
cp .env.example .env

Pon tu clave en .env (nunca hagas commit de este archivo):

CLARITY_API_KEY=your-key-here

Bun 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

mode

crystal | crystal-video | clarity | creative | clarity-pro

image

URL pública de imagen o archivo local (todos los modos de imagen)

video

URL pública de video o archivo local (crystal-video)

publish

uguu (predeterminado) | litterbox | funnel | none: cómo exponer un archivo local como bytes sin procesar

webhook

Opcional. El resultado se publica aquí mediante POST en lugar de devolverse

output_path

Archivo o directorio local opcional para guardar el resultado

include_raw_response

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.

Crystalscale_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 Videoscale_factor 1–200

Claritycreativity / 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 Procreativity 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

CLARITY_API_KEY

Requerida (o CAI_API_KEY)

CLARITY_BASE_URL

https://api-upscale.clarityai.co

Seleccionar el endpoint

CLARITY_TIMEOUT

300000

Tiempo de espera de curl en ms

CLARITY_OUTPUT_DIR

Guardar automáticamente las salidas cuando se omite output_path

CLARITY_PUBLISH

uguu

Publicador predeterminado para archivos locales

CLARITY_LITTERBOX_TIME

1h

TTL de litterbox (1h / 12h / 24h / 72h)

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 una Response como 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_upscale

  • Modos: crystal, crystal-video, clarity (alias creative), clarity-pro

  • Archivos locales: se publican como una URL pública cruda (uguu, litterbox o Tailscale Funnel) antes del POST de Clarity

  • Las 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, .env automático, Bun.file / Bun.write, Bun Shell curl

  • Salida MCP estructurada más una alternativa de texto

Requisitos

Configuración

git clone https://github.com/thomastraum/clarity-api-mcp.git
cd clarity-api-mcp
bun install
cp .env.example .env

Pon tu clave en .env (nunca hagas commit de este archivo):

CLARITY_API_KEY=your-key-here

Bun 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

image

URL pública de imagen o archivo local (todos los campos modos de imagen)

video

URL pública de vídeo o archivo local (crystal-video)

mode

crystal | crystal-video | clarity | creative | clarity-pro

publish

uguu (predeterminado) | litterbox | funnel | none — cómo exponer un archivo local como bytes sin procesar

webhook

Opcional. El resultado se envía aquí mediante POST en lugar de devolverlo

output_path

Archivo o directorio local opcional para guardar el resultado

include_raw_response

Indicador de depuración opcional

Crystalscale_factor 1–200, creativity 0–10, output_format jpg/png, target_megapixels 0.001–1500

Crystal Videoscale_factor 1–200

Claritycreativity / resemblance / dynamic / fractality −10–10, scale_factor 2–16, style default/portrait/anime, postprocessing none/sharpen, prompt

Clarity Procreativity 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

CLARITY_API_KEY

Requerida (o CAI_API_KEY)

CLARITY_BASE_URL

https://api-upscale.clarityai.co

Reemplaza el endpoint

CLARITY_TIMEOUT

300000

Tiempo de espera de curl en ms

CLARITY_OUTPUT_DIR

Guardar automáticamente la salida cuando se omite output_path

CLARITY_PUBLISH

uguu

Publicador predeterminado para archivos locales

CLARITY_LITTERBOX_TIME

1h

TTL de litterbox (1h / 12h / 24h / 72h)

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 de Response como stdin.

Licencia

MIT

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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