Renderball

Designed, animated, editable presentations your AI writes on Renderball. No account needed to try.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
89%
Integridad del esquema
85%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'share_deck' description lacks action verben share_deck

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,576Tokens (definiciones de herramientas)
~3.2 KBTamaño de respuesta típico
Impacto significativo en la atención (2.01% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "renderball": {
      "url": "https://renderball.com/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://renderball.com/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (8)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_decks

The user's Renderball documents, newest first, with editor links. Needs an account (a key).

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_deck(brief, brand, brand_url, pages, outline)

Start a new presentation from a brief, the brand as YOU know it (name, and only the colours, fonts and logo you actually have — never guess a colour) and your outline. With the outline the reply carries the WRITING BRIEF, so the whole deck is two calls: this, then submit_deck. Without an account it also returns a guest_token to pass on later calls and deck_url, the one link to give the user.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "brief": {
      "type": "string",
      "minLength": 20,
      "maxLength": 6000,
      "description": "What the deck is for, who it is for, what it should argue and ask. Real facts only; the truth check refuses invented figures."
    },
    "brand": {
      "description": "The brand as YOU know it: name, and only the colours, fonts and logo you actually have. Never guess a colour; leave it out.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60,
          "description": "The brand's name as it should appear."
        },
        "website": {
          "description": "Their website, e.g. yourcompany.com — used for the wordmark's source, not read.",
          "type": "string",
          "maxLength": 200
        },
        "accent": {
          "description": "The lead brand colour. ONLY if you know it (from their site's stylesheet or the user's material); never guess.",
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "background": {
          "description": "The page background colour, only if known.",
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "text": {
          "description": "The main text colour, only if known.",
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "fonts": {
          "type": "object",
          "properties": {
            "headline": {
              "description": "Headline font family name, only if known.",
              "type": "string",
              "maxLength": 60
            },
            "body": {
              "description": "Body font family name, only if known.",
              "type": "string",
              "maxLength": 60
            }
          }
        },
        "logo_url": {
          "description": "A public https image of the logo (SVG or PNG), only if you have a real one.",
          "type": "string",
          "maxLength": 500,
          "format": "uri"
        },
        "voice": {
          "description": "How the brand speaks, in a sentence or two.",
          "type": "string",
          "maxLength": 300
        }
      },
      "required": [
        "name"
      ]
    },
    "brand_url": {
      "description": "Key holders only: a website Renderball reads for colours, fonts and logo when no brand is declared.",
      "type": "string",
      "maxLength": 300
    },
    "pages": {
      "description": "How many pages you intend to write (default 5). Ignored when `outline` is given.",
      "type": "integer",
      "minimum": 1,
      "maximum": 16
    },
    "outline": {
      "description": "Your page-by-page outline (one entry per page: label, description, visual_concept, content with a headline). Send it here and the reply carries the WRITING BRIEF — one call instead of create_deck + write_outline.",
      "type": "object",
      "properties": {
        "tone": {
          "description": "The register, e.g. 'confident, technical, CTO-to-CTO'.",
          "type": "string",
          "maxLength": 300
        },
        "pages": {
          "minItems": 1,
          "maxItems": 16,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "Short page title, 2-6 words (e.g. 'The Tracker Tax')."
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 600,
                "description": "What this page must accomplish in the argument, one or two sentences. Not shown on the page."
              },
              "visual_concept": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1200,
                "description": "The composition and the one graphic device that expresses the page's argument: layout, the diagram/chart/mock, where the headline sits, colours by role. Concrete enough to draw from."
              },
              "content": {
                "type": "object",
                "properties": {
                  "eyebrow": {
                    "description": "Tiny label above the headline, e.g. 'THE PROBLEM'.",
                    "type": "string",
                    "maxLength": 60
                  },
                  "headline": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120,
                    "description": "The one strong display line."
                  },
                  "lede": {
                    "description": "Supporting sentence or two.",
                    "type": "string",
                    "maxLength": 400
                  },
                  "bullets": {
                    "description": "Up to 6 short points; no walls.",
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 160
                    }
                  },
                  "caption": {
                    "description": "Small mono caption, e.g. a source line.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "cta": {
                    "type": "object",
                    "properties": {
                      "primary": {
                        "type": "string",
                        "maxLength": 60
                      },
                      "secondary": {
                        "type": "string",
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "primary"
                    ]
                  },
                  "meta": {
                    "description": "Stat tiles as label/value pairs — ONLY figures the user gave you.",
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 60
                        }
                      },
                      "required": [
                        "label",
                        "value"
                      ]
                    }
                  }
                },
                "required": [
                  "headline"
                ],
                "description": "The approved copy. Every numeral here must come from the user's material — the deck's truth check enforces it."
              }
            },
            "required": [
              "label",
              "description",
              "visual_concept",
              "content"
            ]
          }
        }
      },
      "required": [
        "pages"
      ]
    }
  },
  "required": [
    "brief"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡write_outline(deck_id, guest_token, tone, pages)

Save the page-by-page outline you wrote for a deck. Returns the WRITING BRIEF: the exact instructions for writing the deck file (format, brand facts, truth rules). Follow it, then call submit_deck.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    },
    "tone": {
      "description": "The register, e.g. 'confident, technical, CTO-to-CTO'.",
      "type": "string",
      "maxLength": 300
    },
    "pages": {
      "minItems": 1,
      "maxItems": 16,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "Short page title, 2-6 words (e.g. 'The Tracker Tax')."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 600,
            "description": "What this page must accomplish in the argument, one or two sentences. Not shown on the page."
          },
          "visual_concept": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1200,
            "description": "The composition and the one graphic device that expresses the page's argument: layout, the diagram/chart/mock, where the headline sits, colours by role. Concrete enough to draw from."
          },
          "content": {
            "type": "object",
            "properties": {
              "eyebrow": {
                "description": "Tiny label above the headline, e.g. 'THE PROBLEM'.",
                "type": "string",
                "maxLength": 60
              },
              "headline": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120,
                "description": "The one strong display line."
              },
              "lede": {
                "description": "Supporting sentence or two.",
                "type": "string",
                "maxLength": 400
              },
              "bullets": {
                "description": "Up to 6 short points; no walls.",
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 160
                }
              },
              "caption": {
                "description": "Small mono caption, e.g. a source line.",
                "type": "string",
                "maxLength": 200
              },
              "cta": {
                "type": "object",
                "properties": {
                  "primary": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "secondary": {
                    "type": "string",
                    "maxLength": 80
                  }
                },
                "required": [
                  "primary"
                ]
              },
              "meta": {
                "description": "Stat tiles as label/value pairs — ONLY figures the user gave you.",
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string",
                      "maxLength": 60
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 60
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ]
                }
              }
            },
            "required": [
              "headline"
            ],
            "description": "The approved copy. Every numeral here must come from the user's material — the deck's truth check enforces it."
          }
        },
        "required": [
          "label",
          "description",
          "visual_concept",
          "content"
        ]
      }
    }
  },
  "required": [
    "deck_id",
    "pages"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_brief(deck_id, guest_token)

The writing brief for a deck whose outline is already saved.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "deck_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢see_deck(deck_id, guest_token)

The deck's rendered pages as images, page 1 first — look at them for overlapping or clipped text, odd spacing or an element off its page, then fix the file and submit_deck again. Available once the deck has been submitted.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "deck_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡submit_deck(deck_id, guest_token, source, label, wait_seconds)

Send the complete deck file you wrote. Renderball checks it against the brief, repairs small slips, renders every page and opens it in the editor. Returns 'ready' with the editor_url, or 'importing' — then poll deck_status.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    },
    "source": {
      "type": "string",
      "minLength": 1500,
      "maxLength": 600000,
      "description": "The complete deck file, exactly as the writing brief specifies. Raw file or a ```tsx fenced block."
    },
    "label": {
      "description": "Who wrote it, e.g. 'claude-code'. Shown in the deck's trace.",
      "type": "string",
      "maxLength": 40
    },
    "wait_seconds": {
      "description": "How long to wait for the import before returning (default 25). Use deck_status to keep checking.",
      "type": "integer",
      "minimum": 0,
      "maximum": 60
    }
  },
  "required": [
    "deck_id",
    "source"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢deck_status(deck_id, guest_token)

Whether a submitted deck is still importing, ready (with the editor link), or failed (with the reason).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "deck_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪share_deck(deck_id, guest_token)

Turn on the public link for a deck and return it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deck_id": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "guest_token": {
      "description": "Only for a deck created WITHOUT an account: the guest_token create_deck returned.",
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "deck_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada8 herramientas
verificadoversión no registrada8 herramientas