Last updated 2026-10-27
MCP server
Kinsy runs a remote Model Context Protocol server at:
https://mcp.kinsy.ai/mcp
Connect an agent to it and the agent gets six tools that take a brief and the user's source material to a finished, editable PowerPoint file: a native .pptx with real text boxes, tables and charts, which opens in PowerPoint and Google Slides as designed. The server is open source (kinsy-ai/kinsy-agents) and stores nothing: every call runs with your own API key, so it spends the same credits as the web app and sees only your decks.
Authentication
Send an API key from Settings → API keys as a bearer token:
Authorization: Bearer ksy_live_…
Keep the key in an environment variable such as KINSY_API_KEY and let your client read it from there; never paste it into a chat. Hosted assistants that sign in with OAuth (Claude.ai connectors, ChatGPT) are next: their one-click connection arrives with Kinsy's sign-in server.
Set up your client
Claude Code
claude mcp add --transport http kinsy https://mcp.kinsy.ai/mcp \
--header "Authorization: Bearer $KINSY_API_KEY"
Or share it with a project in .mcp.json:
{
"mcpServers": {
"kinsy": {
"type": "http",
"url": "https://mcp.kinsy.ai/mcp",
"headers": { "Authorization": "Bearer ${KINSY_API_KEY}" }
}
}
}
Codex
In ~/.codex/config.toml:
[mcp_servers.kinsy]
url = "https://mcp.kinsy.ai/mcp"
bearer_token_env_var = "KINSY_API_KEY"
Cursor
In .cursor/mcp.json (one project) or ~/.cursor/mcp.json (everywhere):
{
"mcpServers": {
"kinsy": {
"url": "https://mcp.kinsy.ai/mcp",
"headers": { "Authorization": "Bearer ${env:KINSY_API_KEY}" }
}
}
}
VS Code and GitHub Copilot
In .vscode/mcp.json, which prompts for the key once and stores it securely:
{
"inputs": [
{ "id": "kinsy-key", "type": "promptString", "description": "Kinsy API key", "password": true }
],
"servers": {
"kinsy": {
"type": "http",
"url": "https://mcp.kinsy.ai/mcp",
"headers": { "Authorization": "Bearer ${input:kinsy-key}" }
}
}
}
Any other client
Use the Streamable HTTP transport at https://mcp.kinsy.ai/mcp with the Authorization header above. The server is stateless and answers tool calls as event streams, so progress arrives while a deck builds.
Tools
| Tool | What it does | Credits |
|---|---|---|
create_deck | Starts a deck from a brief and optional sources (name and text of each document). Answers at once with a deck_id. Optional: slides (4–25), theme, research, answers, skip_questions, idempotency_key. | 40 up to 10 slides · 60 up to 16 · 90 up to 25, plus 10 per picture |
wait_for_deck | Waits for the deck to finish (default 200 seconds, at most 540), streaming progress, then returns the download links. If the wait ends first, call it again. | free |
get_deck | Status and links without waiting; include_previews adds images of the first six slides, include_quality adds the claims the sources could not back. | free |
export_deck | A fresh download link for the pptx (default), pdf, or png (a zip of slide images). Links last one hour. | free |
edit_slide | Rewrites one slide (counting from 1) from an instruction. If the instruction is too vague, it asks a question instead and charges nothing. | 5, plus 10 for a new picture |
list_themes | The theme ids create_deck accepts. | free |
A finished deck usually takes one to two minutes. Every result carries structured data (deck_id, status, pptx_url, expires_at, web_url and so on) beside a one-line summary. Results never repeat your brief or source text, and never include your key.
Errors
A tool that cannot do its job returns an error result with one plain sentence:
- Not enough credits: the sentence carries the top-up link,
https://kinsy.ai/pricing?src=mcp. Nothing was charged. Agents should show the link and stop. - Rate limited: wait the number of seconds given, then retry.
- Not your deck, or no such deck: check the
deck_id. - Key refused: the transport answers
401before any tool runs; create a new key and reconnect.
The limits are the API's: 15 decks a day, 40 edits an hour, 120 requests a minute per key.
Prefer a terminal?
The command line does the same job in one command (npx kinsy-cli create "…" --wait --out deck.pptx), and the agent skill teaches local agents to use it.