# Wavegrain for developers

> Connect AI agents and automation tools to Wavegrain through its MCP server. One endpoint, an access key, and 48 tools.

> Index of these docs: https://wavegrain.com/developers/llms.txt

Wavegrain makes carousels and TikTok slideshows.
Its public interface is an MCP server: one endpoint that AI agents and automation tools call to read your brands and slideshows, change saved work, and make new slideshows with your credits.
MCP, the Model Context Protocol, is the open standard that Claude, ChatGPT, Codex, Cursor, n8n, Make and Zapier use to call tools.

## What you can build

- An agent that writes a week of posts for a brand and puts them on your Wavegrain Calendar for you to approve.
- An n8n, Make or Zapier workflow that asks for a slideshow every Monday.
- A script that exports finished slideshows as ZIP files.

Wavegrain makes the slides; your agent decides what to make.
An agent can schedule a slideshow on the Calendar, but you approve it in Wavegrain before anything is posted.

## Quickstart

**1. Make an access key.**
In Wavegrain, open Settings and find Connect an AI agent.
Make a key with the `read` permission.
It starts with `wg_pat_` and is shown once.
Save it in an environment variable:

```bash
export WAVEGRAIN_MCP_TOKEN="wg_pat_..."
```

**2. List your tools.**

```bash
curl -N https://wavegrain.com/api/mcp \
  -H "Authorization: Bearer $WAVEGRAIN_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

**3. Call a tool.**

```bash
curl -N https://wavegrain.com/api/mcp \
  -H "Authorization: Bearer $WAVEGRAIN_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_slideshows","arguments":{"limit":5}}}'
```

The answer is a JSON-RPC result with your slideshows in `structuredContent`.
It may arrive as one server-sent `message` event (`data: {...}`), so accept both content types.
The server is stateless: no `initialize` call or session is needed first.

In practice you will not write these requests yourself.
Add the server to your agent or automation tool instead; the guides below show each one.

## Next

- [Authentication](/developers/authentication): access keys, permissions, and OAuth for hosted apps.
- [MCP tool reference](/developers/mcp-tools): every tool with its inputs and outputs.
- [Limits and errors](/developers/limits-and-errors): rate limits, credits and what each error means.
- [API reference](/developers/api-reference): the OpenAPI document for the endpoint and the OAuth server.
- Guides: [Claude](/developers/guides/claude), [ChatGPT](/developers/guides/chatgpt), [Codex](/developers/guides/codex), [Cursor](/developers/guides/cursor), [n8n](/developers/guides/n8n), [Make](/developers/guides/make), [Zapier](/developers/guides/zapier).

## For AI tools

Every page here has a Markdown version: add `.md` to its address.
[`/developers/llms.txt`](/developers/llms.txt) lists the pages, and [`/developers/llms-full.txt`](/developers/llms-full.txt) holds all of them in one file.
The tool list is also JSON at [`/developers/mcp-tools.json`](/developers/mcp-tools.json), and the OpenAPI document at [`/developers/openapi.json`](/developers/openapi.json).

Wavegrain has no public REST API for slideshows yet; the MCP server is the supported way in.
