# UltraPoint MCP — use UltraPoint inside AI assistants

> UltraPoint generates client-ready decks in a firm's exact visual style — the templates, typography, and chart language of firms like McKinsey, BCG, Bain, and Goldman Sachs, or your own — with every figure verified against its source documents, and exports them as fully editable native PPTX. It reads full PDFs and Excel models like an experienced analyst and produces a polished deck in minutes. Built for high-stakes work: consulting proposals, M&A materials, board decks, and investment committee presentations. Its MCP (Model Context Protocol) server lets AI assistants — Claude, ChatGPT, Cursor, Claude Code, Windsurf, and any other MCP client — generate slides and full decks that land in the user's UltraPoint workspace, and edit, restyle, share, and export them.

- Connector / server URL: `https://mcp.ultrapoint.ai` (Streamable HTTP transport)
- Authentication: OAuth (browser sign-in) for Claude.ai and ChatGPT connectors, or an `up_live_` API key (`Authorization: Bearer` header) for developer clients
- Human-readable docs: https://ultrapoint.ai/mcp
- Sign up: https://app.ultrapoint.ai/auth

## What you can ask

- "Make a 6-slide deck on our Q3 results from this PDF."
- "Turn these notes into a clean one-pager and export it as a PowerPoint."
- "Design a title slide for our product launch in the McKinsey style."
- "Save this PowerPoint as our template, then restyle last quarter's deck in it."
- "Pull the brand colors and logo from acme.com and use them on every deck."
- "Fix the revenue figure on slide 3, and undo it if the new version looks worse."

Everything the assistant creates also shows up in the user's UltraPoint library, and it spends credits from their workspace — just like the in-app builder.

## Connect from Claude.ai or ChatGPT (no API key)

1. **Add the connector.** In Claude.ai: Settings → Connectors → Add custom connector. In ChatGPT: Settings → Connectors → Create. Name it `UltraPoint`, set the server URL to `https://mcp.ultrapoint.ai`, leave the Advanced settings (OAuth Client ID and Secret) empty, and click Add.
2. **Connect the account.** Find UltraPoint in the connector list and click Connect. A sign-in window opens — sign in with the UltraPoint account and click Authorize.
3. **Enable it in a chat.** Start a new chat and check that UltraPoint is turned on in the tools menu (the sliders icon under the message box in Claude).
4. **Ask for slides.** Try: "Use UltraPoint to create a 5-slide deck on our Q3 results."

Custom connectors require a paid Claude or ChatGPT plan.

## Connect from Cursor, Claude Desktop, Claude Code, or Windsurf (API key)

Create an API key at https://ultrapoint.ai/workspace/developer (sign-in required), then:

Cursor (`~/.cursor/mcp.json`) / Claude Desktop (`claude_desktop_config.json`) / Windsurf:

```json
{
  "mcpServers": {
    "ultrapoint": {
      "url": "https://mcp.ultrapoint.ai",
      "headers": {
        "Authorization": "Bearer up_live_YOUR_KEY"
      }
    }
  }
}
```

Claude Code (CLI):

```bash
claude mcp add --transport http ultrapoint https://mcp.ultrapoint.ai \
  --header "Authorization: Bearer up_live_YOUR_KEY"
```

## Available tools

Long-running tools (generation, restyles, edits, template uploads, answers) return a `job_id` immediately; poll `get_job` until it finishes.

### Styles & brand

| Tool | Description |
| --- | --- |
| `list_styles` | List the designs a deck can use: the workspace's own templates and template packages, built-in firm styles, and `none` for a clean default. Also reports the workspace default. Pass an `id` as `style` to a generate or restyle tool. Free. |
| `upload_template` | Save an uploaded PDF, PowerPoint (.pptx / .ppt), or PNG / JPG / WEBP image as a workspace template. Returns a `job_id`; the finished job's `template.style_id` is the `style` to pass. Free; counts toward the plan's monthly template uploads. |
| `get_brand_kit` / `set_brand_kit` | Read or change the workspace brand kit — colors, typeface, standing instructions, slide logo, and default style — applied to every new deck. Changing it requires an admin or owner. Free. |
| `brand_kit_from_url` | Read a company's colors, typeface, and logo off its website; optionally save them as the brand kit. Free. |

### Source files

| Tool | Description |
| --- | --- |
| `upload_file` | Upload a small source file (PDF, Word, Excel, PowerPoint, CSV, TXT, MD, or image) in one call; returns a `file_id` for a generate tool's `attachments`, or for `upload_template` / `restyle_deck`. |
| `create_upload` / `complete_upload` | Upload a large file straight to storage (start, PUT the bytes, finish), up to the plan's full per-file limit. |

### Create

| Tool | Description |
| --- | --- |
| `answer` | Answer a question about uploaded files in text — figures computed from the data and checked against the source, no slide rendered. |
| `generate_slide` | Generate one slide from a prompt, as a new deck or added to an existing one. With `variations` 2 or 3 it renders alternatives; `choose_variation` keeps one (free). |
| `generate_deck` | Generate a full deck (slide count clamped to the plan's range), optionally with web `research`. With `review_plan: true` it pauses on the outline: `approve_plan` renders it (with optional rewording and reordering), `discard_plan` refunds it. |
| `restyle_deck` | Re-render a deck in the library, or an uploaded PDF, PowerPoint, or image (`file_id`), in another style, keeping every slide's content. The result is a new deck; the source is left as it is. |
| `resume_deck` | Render the slides a generated or restyled deck is missing after a cancel or a failed slide. |
| `get_job` | Poll any job for status and result. (`get_slide` remains as a back-compat alias.) Free. |
| `cancel_job` | Stop a generate, restyle, resume, or edit job. Nothing is charged before rendering starts; a rendering deck keeps its finished slides and refunds the rest. |

### Edit & history

| Tool | Description |
| --- | --- |
| `edit_deck` | Update an existing deck from a natural-language instruction — reword or redesign slides, fix figures, add, delete, or reorder slides. Edits the deck in place. |
| `undo_edit` | Revert an `edit_deck` job's changes to existing slides. Free. |
| `list_slide_versions` / `restore_slide` | Browse every version a slide has had (generated, AI edits, manual edits, restores) and put any of them back. Free. |

### Library

| Tool | Description |
| --- | --- |
| `list_decks` | List the decks in your account and workspace, newest first, with optional text search. Free. |
| `get_deck` | Read one deck: title, status, editable deck link, and every rendered slide's image. `include` adds each slide's text, cited sources, verification of every figure, and which slides are editable. Free. |
| `import_deck` | Open a saved template as an editable deck, page for page, to update it with `edit_deck`. Free. |
| `share_deck` | Make a deck's link public or private, or invite viewers and editors by email. Requires a verified email to share. Free. |
| `delete_deck` | Permanently delete a deck (requires `confirm: true`). Free. |
| `get_account` | Your plan, credit budget (cap, used, remaining, next reset), and deck count. Free. |

### Export

| Tool | Description |
| --- | --- |
| `export_pptx` / `export_pptx_status` | Export a deck as a fully editable PowerPoint. |
| `export_pdf` / `export_pptx_image` | Export a deck as a PDF or a non-editable (image) PowerPoint. Free. |
| `export_social_post` | Stitch the deck's first slides plus a branded UltraPoint tile into one shareable image. Free. |

The authoritative, machine-readable schemas are served by the endpoint itself via the MCP `tools/list` method — clients discover them automatically.

## Credit costs

Generation spends credits from the workspace that owns the connection, exactly like the in-app builder:

- `generate_deck`: 15 credits per slide at `standard` quality, 150 per slide at `high`. An 8-slide standard deck costs 120.
- `generate_slide`: 20 credits at `standard` quality, 155 at `high`. That's the per-slide price plus 5 credits for planning one slide on its own (a deck plans all its slides together, so it skips this). With `variations`, each alternative costs the per-slide price; planning is charged once.
- `research` on `generate_deck`: 70–100 extra credits.
- `restyle_deck`: 15 credits per slide, charged when the restyle starts. Pages of an uploaded file beyond the plan's per-deck cap or the remaining credits are skipped, and `get_job` reports it under `truncation`.
- `resume_deck`: only the slides that were refunded are charged again, at the deck's original per-slide price.
- `answer`: 20 credits, plus source-file credits when files are attached.
- Attached files: uploading is free; each PDF or PowerPoint adds 10 credits when a generation uses it (30 if it's over 80 pages). Word, Excel, CSV, text, and image files are free.
- Long prompts and edit instructions: free up to 300 words; 301–599 words add 5 credits, and 600–700 words add 10.
- `edit_deck`: 15 credits per edited or added slide (deletes and reorders are free), charged only for changes that actually render. Requires a Pro, Team, or Business plan.
- `export_pptx`: 100 credits per editable slide. Requires a Pro, Team, or Business plan.

## Limits & notes

- Prompts are capped at 700 words; deck slide counts are clamped to the plan's range (min 4).
- Up to 3 jobs may be running at once per account, counted across all keys and connections; poll `get_job` before starting more.
- A deck plan held for review (`review_plan`) that nobody approves within 30 minutes is discarded and its credits refunded.
- Uploading files is free, and listing styles, reading decks, sharing, undoing edits, and restoring slide versions never spend credits.
- Deck credits are charged when the plan is committed — exactly like the in-app builder — and any slides that fail to render are automatically refunded. If a job fails outright, `get_job` returns an `error` and the full charge is refunded.
- Single-slide allowances match the builder: Free gets one lifetime trial; every paid plan is limited only by available credits — no per-month generation cap.
