# Connect VAUD

![VAUD connection banner](../assets/readme/vaud-banner.svg)

## Hosted connection

- URL: **https://mcp.vaud.studio/mcp**
- Transport: **Streamable HTTP**
- Authentication: **None** for this public, read-only library.

In a client with remote MCP support, add a server named VAUD and paste the URL. Choose no authentication if asked. A browser visit to `/mcp` returns HTTP 405 because this endpoint accepts MCP POST requests; the setup page is [the gallery's connection section](https://mcp.vaud.studio/#connect).

For clients accepting JSON configuration:

```json
{"mcpServers":{"vaud":{"url":"https://mcp.vaud.studio/mcp"}}}
```

For Claude Code:

```sh
claude mcp add --transport http vaud https://mcp.vaud.studio/mcp
```

Client interfaces differ. Use a native Streamable HTTP connection where available. This server does not provide legacy HTTP+SSE transport or OAuth. A client that requires either needs a compatible bridge or the local configuration below.

## Tools

| Tool | Inputs | Result |
| --- | --- | --- |
| `vaud_search_effects` | Optional `query`, `category`, `offset`, `limit` | Catalog matches with a total count and next offset. |
| `vaud_get_effect` | Exact `id` | Metadata, editable HTML, requirements and shared asset locations. |
| `vaud_read_guide` | `guide` | `start`, `workflow`, `onboarding`, `rendering`, `effects`, `editing` or `review`. |
| `vaud_get_file` | Optional `path`, `query`, `offset` | A bundled public text file, or a paginated file listing. |

Begin with the start and onboarding guides. Follow relative guide references with `vaud_get_file`. Shared runtime assets and fonts are downloadable from `https://mcp.vaud.studio/library/effects/shared/` and `https://mcp.vaud.studio/library/assets/fonts/`, using the exact filenames referenced by each source. Synthetic demo media is available under `https://mcp.vaud.studio/library/examples/`. Public setup instructions are at https://mcp.vaud.studio/connect/. Repository access is optional for the hosted connection. The tools read public files and never execute scripts or effect HTML. Rendering runs in the agent's environment; creator footage stays there. This connection has no access to customer accounts, billing, private footage or publishing services.

## Local Python connection

Python 3.10+ is sufficient; no packages or API keys are needed. Replace the argument with the absolute path to your checkout:

```json
{
  "mcpServers": {
    "vaud": {
      "command": "python3",
      "args": ["/absolute/path/to/reel-template-lab/mcp/server.py"]
    }
  }
}
```

The local server provides the original three tools (search, effect and guide). The host reads other files directly from its checkout. It resolves paths relative to the script and works from any working directory.

## Development and release

Node 22+ runs the hosted implementation with the official MCP SDK. Install locked dependencies with `npm ci`, then run:

```sh
npm test
npm run build
netlify deploy --build --prod --site 9c1dc7b1-fff0-4bed-99a9-9b9f108d92b8
npm run test:live
```

`mcp/build-library.mjs` bundles an explicit set of public text directories into an ignored generated JSON file. It includes all 262 effect sources. The build also publishes the allowlisted text files and shared fonts/runtime under `gallery/library/`, served as downloads. Netlify publishes only `gallery/` and bundles `netlify/functions/mcp.mjs` separately. The function is stateless, returns JSON, caps request bodies at 64 KiB, validates browser origins and declares a 100-request/minute per-IP/domain rate limit. Tool logs record tool names without input contents. Public access is deliberate for the public library; add authentication before introducing private data or write tools.

For browser clients, allowed origins are listed in the function. Native clients can omit Origin. Changes to browser origin access require an explicit entry and deployment. GET and DELETE return 405; OPTIONS handles preflight. The [MCP transport specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports) describes the wire protocol.

The previous gallery at `reel-template-lab-gallery.netlify.app` remains a compatibility surface. Publish the same build there using site ID `a050983f-d036-4cd1-aad6-cceefa6954bd` when changing the gallery. Keep `.netlify/` ignored. This repository's main site is VAUD MCP; it is separate from the managed studio's sales and client portal deployments.
