# MCP clients

If you're setting up for the first time, the [install tutorial](/get-started/install) is shorter — pick your client, copy the snippet. This page is the lookup surface for the things the tutorial doesn't cover: OS-specific config paths, removal, scope semantics, multi-workspace setups, and connecting any MCP-spec client we haven't listed by name.

The Lessly MCP server is `https://mcp.lessly.com` for every client. Auth is Google OAuth, handled by the client on first connect.

## Config file paths

Some clients edit a JSON file directly; others manage MCP servers in-app.

| Client | Config location |
|---|---|
| Claude Code | No config file — `claude mcp add` / `claude mcp remove` |
| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Claude Desktop (Windows) | `%APPDATA%\Claude\claude_desktop_config.json` |
| Claude Desktop (Linux) | Not officially supported |
| Cursor | In-app: Settings → MCP |
| OpenCode (macOS / Linux) | `~/.config/opencode/opencode.json` |
| OpenCode (Windows) | `%APPDATA%\opencode\opencode.json` |

If the file doesn't exist, create it. Clients pick up MCP servers at startup, not on file change — restart after editing.

## Removal

| Client | How |
|---|---|
| Claude Code | `claude mcp remove lessly` |
| Claude Desktop | Delete the `lessly` key from `mcpServers` in the JSON file, restart the app |
| Cursor | Settings → MCP → click the row → Remove |
| OpenCode | Delete the `lessly` key from `mcp` in the JSON file, restart |

## Scope

By default, Lessly registers globally for the client — every project, every conversation sees it. Some clients support project-scoped MCP servers:

- **Claude Code:** `claude mcp add lessly https://mcp.lessly.com --scope local` registers in the current project's `.mcp.json` instead of globally.
- **Cursor:** Settings → MCP → Scope dropdown lets you pick Project instead of Global.
- **Claude Desktop:** global only — the config file is per-installation.
- **OpenCode:** check `opencode.json` location — a `./opencode.json` in your project root takes precedence over the user-level config.

## Multiple workspaces

The MCP endpoint is the same for every Lessly workspace. Workspace selection happens at the auth layer: when you sign in via Google, Lessly uses your account's default workspace. To switch:

1. Sign in to [lessly.com](https://lessly.com), change the default workspace in account settings.
2. Disconnect and reconnect the MCP server in your client (some clients cache the auth token).

The MCP server reports the active workspace in its initialization message. If a call returns results from the wrong workspace, that line is your first check.

## Connecting any spec-compliant MCP client

The Lessly MCP server speaks the [Model Context Protocol](https://modelcontextprotocol.io) over HTTP. Any client that implements the spec can connect — these are the connection values:

| Field | Value |
|---|---|
| Transport | HTTP (server-sent events for streamed responses) |
| URL | `https://mcp.lessly.com` |
| Auth | OAuth 2.0 via Google sign-in (browser flow on first connect) |
| Server-name convention | `lessly` (display only; clients accept any) |

The generic JSON shape most clients use:

```json
{
  "mcpServers": {
    "lessly": {
      "url": "https://mcp.lessly.com"
    }
  }
}
```

The wrapping key varies: Claude Desktop uses `mcpServers`, OpenCode uses `mcp`, others vary. The Lessly side is the same regardless.

### stdio bridge

For clients that only speak stdio (the original MCP transport) and not HTTP, run a local bridge process. The [mcp-proxy](https://github.com/sparfenyuk/mcp-proxy) project covers this — point it at `https://mcp.lessly.com` and your client gets a local stdio endpoint that proxies to Lessly.

## Troubleshooting

**The client lists no Lessly tools.**
Most clients read MCP config at startup, not on file change. Quit fully and reopen the client (Claude Desktop on macOS: Cmd+Q, then relaunch; Cursor: quit the app, not just close the window).

**Calls return results from the wrong workspace.**
The MCP server names the active workspace in its initialization message. If it's not the one you expected, change your account's default workspace at [lessly.com](https://lessly.com) and reconnect.

**Auth prompt loops or never opens.**
Some clients suppress browser-open behavior in headless / remote environments. Run the client on a machine with a default browser, or check the client's logs for the OAuth URL and open it manually.

**A specific tool isn't appearing.**
Tools come from the platform's [tool catalog](/reference/mcp-tools). If a tool you expect is missing there, the source service may not yet declare it upstream — the catalog fills in as services publish their tools.
