Set up Claude Code, Cursor & Windsurf

Five minutes to give every agent in your toolchain the same component truth: install the MCP server, add a rules file so it knows to call the tools, and verify with one prompt.

0. Install

bash
# In your project (dev dependency — agents run it locally)
pnpm add -D @slipstream-ui/mcp-server
# Verify the binary answers on stdio
npx -y @slipstream-ui/mcp-server </dev/null || true # starts and waits for MCP input

1. Claude Code

Project-scoped config lives in .mcp.json at the repo root (commit it — teammates and CI share it):

json
{
"mcpServers": {
"slipstream-ui": {
"command": "npx",
"args": ["-y", "@slipstream-ui/mcp-server"]
}
}
}

Verify inside Claude Code with /mcp — the server should list five tools (list_components, search_components, get_component_manifest, get_usage_examples, validate_usage).

2. Cursor

json
// .cursor/mcp.json (project) — or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"slipstream-ui": {
"command": "npx",
"args": ["-y", "@slipstream-ui/mcp-server"]
}
}
}

Settings → MCP shows the server status. Green = the five tools are available to Cursor's agent.

3. Windsurf

json
// ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"slipstream-ui": {
"command": "npx",
"args": ["-y", "@slipstream-ui/mcp-server"]
}
}
}

4. Teach the agent to reach for the tools

MCP availability is not a habit. Add two sentences to your rules file (CLAUDE.md, .cursorrules, or AGENTS.md):

markdown
# UI components
This project uses Slipstream UI. Before writing any component JSX:
1. search_components / get_component_manifest for the component you need.
2. Follow its props exactly — never invent prop names.
3. Run validate_usage on the generated JSX before finishing.
4. Respect anti-patterns and composition rules from the manifest.

5. Verify with one prompt

text
Ask your agent: "Add a prompt input with stop-generation to our chat page,
then validate the JSX before showing me the diff."
Healthy run: search_components("chat input")
get_component_manifest("prompt-input")
validate_usage(...) -> ok
diff shown
Unhealthy run: props like onSubmitChat / isBusy appear — the agent skipped
the tools. Strengthen the rules file, then re-ask.

Troubleshooting

Server shows "failed to start"

Use the full local path to node_modules/@slipstream-ui/mcp-server/dist/index.js instead of npx if your sandbox blocks npx downloads.

Tools listed but always error

The server reads manifests from the installed packages — run pnpm install and confirm @slipstream-ui/core is present.

Agent never calls the tools

Rules file missing or too weak; name the tools explicitly (see step 4). Also check the agent has MCP permission enabled.

Global vs project scope

Project-scoped configs (committed) beat global ones — they version the tool access with the codebase.

Was this page helpful?