---
title: MCP Server
description: Connect the StealThis MCP server to claude.ai, Claude Desktop, Claude Code or Cursor and access 2,000+ UI resources from any AI agent.
---

import { Image } from "astro:assets";
import connectorShot from "../../assets/claude-add-connector.png";

The StealThis MCP server runs at **`https://mcp.stealthis.dev/mcp`** and exposes the full resource catalog (2,000+ components, animations, pages and design systems) via the [Model Context Protocol](https://modelcontextprotocol.io). It is free, public, and requires no API key.

> **Landing page:** [mcp.stealthis.dev](https://mcp.stealthis.dev) has a quick visual setup guide and copy-paste prompts. A [use-case build log](https://mcp.stealthis.dev/use-cases) shows real workflows end to end.

## Connect from claude.ai (web & desktop)

Connectors on claude.ai and Claude Desktop are **remote** — nothing runs on your machine.

1. Copy the server URL: `https://mcp.stealthis.dev/mcp`
2. Open [**Settings → Connectors → Add custom connector**](https://claude.ai/customize/connectors?modal=add-custom-connector) (that link opens the modal directly).
3. Name it **Stealthis**, paste the URL, and click **Add**. Leave the OAuth fields empty — no authentication is needed.

<Image src={connectorShot} alt="Claude's Add custom connector modal with the name Stealthis and the URL https://mcp.stealthis.dev/mcp filled in" />

The five StealThis tools are now available in every conversation.

## Connect from Claude Code

One command:

```bash
claude mcp add stealthis --transport http https://mcp.stealthis.dev/mcp
```

## Connect from Cursor (or any JSON-configured client)

```json
{
  "mcpServers": {
    "stealthis": {
      "type": "http",
      "url": "https://mcp.stealthis.dev/mcp"
    }
  }
}
```

## Tools

The server exposes five MCP tools:

| Tool | Arguments | Returns |
|------|-----------|---------|
| `list_resources` | `category?`, `difficulty?` (`easy`/`med`/`hard`), `tech?` | Catalog metadata for matching resources |
| `get_resource` | `slug` | Full metadata for one resource, incl. available snippets and links |
| `get_snippet` | `slug`, `target` (`html`, `css`, `js`, `react`, `next`, `vue`, `svelte`, `astro`, …) | The actual source code |
| `search` | `query` | Full-text search across titles, descriptions, tags and tech |
| `get_lab` | `slug` | The full-screen live demo URL on lab.stealthis.dev |

Example prompts once connected:

- "Find me a scroll animation from StealThis"
- "Get the React snippet for the magnetic-button resource"
- "Build a gym landing page using StealThis snippets"

## MCP endpoint (Streamable HTTP)

The primary transport is JSON-RPC over `POST /mcp` (MCP Streamable HTTP). Handled methods: `initialize`, `notifications/initialized`, `ping`, `tools/list`, `tools/call`.

```bash
# List the tools
curl -s https://mcp.stealthis.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Call a tool
curl -s https://mcp.stealthis.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search","arguments":{"query":"parallax"}}}'
```

## REST endpoints (no MCP client needed)

The same tools are available as plain HTTP GET routes:

### `GET /tools/list_resources`

Optional query params: `category`, `difficulty`, `tech`.

```
GET /tools/list_resources?category=web-animations&difficulty=easy
```

### `GET /tools/get_resource/:slug`

```
GET /tools/get_resource/scroll-fade
```

### `GET /tools/get_snippet/:slug/:target`

```
GET /tools/get_snippet/scroll-fade/react
```

### `GET /tools/search?q=`

```
GET /tools/search?q=parallax+scroll+effect
```

### `GET /tools/get_lab/:slug`

```
GET /tools/get_lab/scroll-fade
```

A machine-readable server summary lives at `GET /api`.

## Local development

The hosted server is what connectors use — local setup only matters if you're hacking on the worker itself:

```bash
bun run dev:mcp
# → point a local MCP client at http://localhost:8787/mcp
```
