# Coding tools (Claude Code, Cursor, VS Code)

Replace `gt_live_XXXX` with your API key. When you create or rotate a key on your Account page, one-click "Add to Cursor" and "Add to VS Code" buttons set everything up for you.

Rotating a key revokes the old one immediately and gives you a new key with the same name — use it if a key may have leaked.

## Claude Code

```bash
claude mcp add --transport http gimmetext https://gimmetext.com/api/mcp --header "Authorization: Bearer gt_live_XXXX"
```

## Cursor

`~/.cursor/mcp.json` (or `.cursor/mcp.json` in your project):

```json
{
  "mcpServers": {
    "gimmetext": {
      "url": "https://gimmetext.com/api/mcp",
      "headers": { "Authorization": "Bearer gt_live_XXXX" }
    }
  }
}
```

## VS Code

`.vscode/mcp.json`:

```json
{
  "servers": {
    "gimmetext": {
      "type": "http",
      "url": "https://gimmetext.com/api/mcp",
      "headers": { "Authorization": "Bearer gt_live_XXXX" }
    }
  }
}
```

## ChatGPT, Claude, Perplexity, Le Chat

No key needed: these connect by signing in. See [Connect your AI](/connect).

## Windsurf

`mcp_config.json` (open it from Cascade's MCP menu):

```json
{
  "mcpServers": {
    "gimmetext": {
      "serverUrl": "https://gimmetext.com/api/mcp",
      "headers": { "Authorization": "Bearer gt_live_XXXX" }
    }
  }
}
```

## Gemini CLI

`~/.gemini/settings.json`:

```json
{
  "mcpServers": {
    "gimmetext": {
      "httpUrl": "https://gimmetext.com/api/mcp",
      "headers": { "Authorization": "Bearer gt_live_XXXX" }
    }
  }
}
```

## Tools

| Tool | What it does |
| --- | --- |
| `create_upload_link` | Returns a single-use link (valid 30 minutes) where you drop a file while signed in. |
| `list_jobs` | Your recent jobs, newest first (`limit` 1–100). |
| `get_job` | Status, progress and error for one job. |
| `get_transcript` | Transcript as `txt`, `srt` or `json`. Long transcripts come in pages: pass `offset` and `max_chars` (1000–100000, default 50000); follow `next_offset` until it is absent. |
| `get_usage` | Your plan and remaining minutes. |

## Prompts

| Prompt | What it does |
| --- | --- |
| `summarize_recording` | **Summarize my recording:** a short summary plus key points. |
| `meeting_action_items` | **Pull action items from a meeting:** decisions, action items with owners if mentioned, and open questions. |
| `lecture_study_notes` | **Turn a lecture into study notes:** an outline, key terms with definitions, and 5 review questions. |

Each prompt accepts an optional `job_id` (UUID); omit it to use your latest finished recording. Discover them with `prompts/list` and request one with `prompts/get`. The response is a single user message guiding your AI to check `get_job`, then fetch every page with `get_transcript` before answering; it never embeds transcript text. Poll unfinished jobs about every 10 seconds until done or failed.

## Example conversation

> **You:** Give me an upload link.
>
> **AI:** Here's your link: https://gimmetext.com/app/upload?t=XXXX (single use, 30 minutes).

Open it, drop your video or audio file, wait for it to finish.

> **You:** Summarise my latest transcript.
>
> **AI:** *(calls `list_jobs`, then `get_job`, then every page of `get_transcript`)* Here's a summary…

Transcript text is treated as information, never as instructions to the AI.

## Also listed on

- [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=gimmetext) as `com.gimmetext/gimmetext`
- [Glama](https://glama.ai/mcp/connectors/com.gimmetext/gimmetext)
- [Smithery](https://smithery.ai/servers/gimmetext-support/gimmetext)
