Connect an agent
One URL is all an agent needs. Copy it from Slippy's panel, add it to your agent, and it can work in the app.
Get Slippy's URL
Click Copy connection in Slippy's panel. It copies a URL like this, with your token at the end:
http://127.0.0.1:7331/mcp/<token> # Illustrator
http://127.0.0.1:7332/mcp/<token> # Photoshop
That's an MCP server over streamable HTTP, which almost every agent supports. The token keeps other programs out and stays the same across launches, so you add Slippy to an agent once.
:7332). With both, an agent can work in Illustrator and Photoshop in one conversation.At a glance
| Agent | How to add Slippy |
|---|---|
| Claude Code | claude mcp add --transport http … |
| Codex | codex mcp add … --url … or ~/.codex/config.toml |
| Gemini CLI | gemini mcp add --transport http … |
| GitHub Copilot CLI | copilot mcp add --transport http … |
| OpenCode | opencode.json, "type": "remote" |
| Amp | settings.json, amp.mcpServers |
| Goose | goose configure > Remote Extension (Streamable HTTP) |
| Cursor | ~/.cursor/mcp.json, "url" |
| VS Code (Copilot) | mcp.json, "type": "http" |
| Windsurf | mcp_config.json, "serverUrl" |
| Zed | settings.json, context_servers |
| Cline | cline_mcp_settings.json, "type": "streamableHttp" |
| Roo Code | mcp_settings.json, "type": "streamable-http" |
| Continue | config.yaml, type: streamable-http |
| JetBrains AI Assistant / Junie | Settings, or .junie/mcp/mcp.json |
| Kiro | ~/.kiro/settings/mcp.json |
| Claude Desktop | claude_desktop_config.json + mcp-remote |
| LM Studio | ~/.lmstudio/mcp.json |
| Warp | Settings > Agents > MCP servers |
| Anything else | the URL, or npx mcp-remote |
Terminal agents
Claude Code
claude mcp add --transport http slippy-illustrator http://127.0.0.1:7331/mcp/<token>
claude mcp add --transport http slippy-photoshop http://127.0.0.1:7332/mcp/<token>
Add --scope user to have Slippy in every project. Start a new session (or run /mcp) to see its tools.
Codex
codex mcp add slippy-illustrator --url http://127.0.0.1:7331/mcp/<token>
Or in ~/.codex/config.toml:
[mcp_servers.slippy-illustrator]
url = "http://127.0.0.1:7331/mcp/<token>"
On an older Codex without url, use the bridge instead: command = "npx", args = ["-y", "mcp-remote", "<URL>"].
Gemini CLI
gemini mcp add --transport http slippy-illustrator http://127.0.0.1:7331/mcp/<token>
Or in ~/.gemini/settings.json (note: httpUrl, not url):
{
"mcpServers": {
"slippy-illustrator": { "httpUrl": "http://127.0.0.1:7331/mcp/<token>" }
}
}
GitHub Copilot CLI
copilot mcp add --transport http slippy-illustrator http://127.0.0.1:7331/mcp/<token>
Or in ~/.copilot/mcp-config.json: {"mcpServers": {"slippy-illustrator": {"type": "http", "url": "…"}}}.
OpenCode
In opencode.json (the project's, or ~/.config/opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"slippy-illustrator": { "type": "remote", "url": "http://127.0.0.1:7331/mcp/<token>", "enabled": true }
}
}
Amp
In Amp's settings.json:
"amp.mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" }
}
Goose
Run goose configure, choose Add Extension > Remote Extension (Streamable HTTP),
name it, and paste the URL. Or in ~/.config/goose/config.yaml (note: uri, not url):
extensions:
slippy-illustrator:
type: streamable_http
name: slippy-illustrator
enabled: true
uri: "http://127.0.0.1:7331/mcp/<token>"
timeout: 300
Editors
Cursor
In ~/.cursor/mcp.json (or the project's .cursor/mcp.json):
{
"mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" },
"slippy-photoshop": { "url": "http://127.0.0.1:7332/mcp/<token>" }
}
}
VS Code (GitHub Copilot)
Run MCP: Add Server from the Command Palette, pick HTTP, and paste the URL. Or in .vscode/mcp.json
(or your profile's mcp.json), which uses servers, not mcpServers:
{
"servers": {
"slippy-illustrator": { "type": "http", "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Windsurf
In ~/.codeium/windsurf/mcp_config.json (note: serverUrl, not url):
{
"mcpServers": {
"slippy-illustrator": { "serverUrl": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Zed
In Zed's settings.json. Zed starts an OAuth sign-in when a server has no Authorization header, so pass the token
as a header instead of in the URL:
"context_servers": {
"slippy-illustrator": {
"url": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
Cline
In Cline's MCP settings (MCP Servers > Configure, cline_mcp_settings.json). Set the type, or Cline assumes the older SSE transport:
{
"mcpServers": {
"slippy-illustrator": { "type": "streamableHttp", "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Roo Code
In mcp_settings.json (global) or the project's .roo/mcp.json:
{
"mcpServers": {
"slippy-illustrator": { "type": "streamable-http", "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Continue
In Continue's config.yaml:
mcpServers:
- name: slippy-illustrator
type: streamable-http
url: http://127.0.0.1:7331/mcp/<token>
JetBrains AI Assistant and Junie
In Settings > Tools > AI Assistant > Model Context Protocol (MCP), add a server as JSON (IDE 2025.3 or later for URLs).
For Junie, use .junie/mcp/mcp.json in the project or ~/.junie/mcp/mcp.json:
{
"mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Kiro
In ~/.kiro/settings/mcp.json (or the project's .kiro/settings/mcp.json):
{
"mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Desktop apps
Claude Desktop
Claude Desktop's Connectors reach servers from the cloud, so they can't see Slippy on your computer. Add it
to the config file instead (Settings > Developer > Edit Config, claude_desktop_config.json), through the
mcp-remote bridge (needs Node.js):
{
"mcpServers": {
"slippy-illustrator": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://127.0.0.1:7331/mcp/<token>"]
}
}
}
Restart Claude Desktop afterwards.
LM Studio
With a local model, in ~/.lmstudio/mcp.json (Program > Install > Edit mcp.json):
{
"mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Warp
Open Settings > Agents > MCP servers (or Open MCP Servers from the command palette), click Add, and paste:
{
"mcpServers": {
"slippy-illustrator": { "url": "http://127.0.0.1:7331/mcp/<token>" }
}
}
Any other agent
- Takes an HTTP (streamable HTTP) MCP server: give it the URL. If it asks for a type, pick HTTP or streamable HTTP, not SSE.
- Only starts servers as commands (stdio): use the bridge as the command:
npx -y mcp-remote http://127.0.0.1:7331/mcp/<token>. - Wants the token as a header: use
http://127.0.0.1:7331/mcpwithAuthorization: Bearer <token>(orX-Slippy-Token: <token>).
The terminal in Illustrator's panel
The chevron at the bottom of Illustrator's Slippy panel opens a terminal (macOS). Slippy's URL is already in it, as
$SLIPPY_URL, so an agent started there connects with nothing to paste:
claude mcp add --transport http slippy "$SLIPPY_URL"
The tools agents get
Agents see the everyday commands as their own tools (document_info, art_tree, art_transform,
layer_set…), plus four of Slippy's own:
| Tool | What it does |
|---|---|
slippy_find | Searches every command by words (“gradient”, “symbol”, “blur”) and returns their parameters. |
slippy_call | Runs any command by name. |
slippy_batch | Runs several commands as one undo step. |
slippy_status | Checks the app is there: versions, open documents. |
That keeps the tool list short, which every client handles. For clients that do well with hundreds of tools, add
?tools=all to the URL to get every command as its own tool.
Scripts and curl
Slippy also speaks plain JSON-RPC at /rpc/<token>, for scripts:
curl -s http://127.0.0.1:7331/rpc/<token> -d '{"jsonrpc":"2.0","id":1,"method":"document.info"}'
Send an array of calls to run them as one undo step.
If an agent can't connect
- Is the app open? Slippy only runs while Illustrator or Photoshop is.
curl http://127.0.0.1:7331/healthshould answer. - Right token? Copy the URL again from the panel. If you deleted the token file, the token changed.
- Restart the agent after adding Slippy; most only read their MCP settings on startup.
- Right transport? Slippy speaks streamable HTTP. An agent set to SSE won't connect.