MCP clients
Per-client config paths, removal, scopes, and the generic pattern for any spec-compliant MCP client.
If you’re setting up for the first time, the install tutorial 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 localregisters in the current project’s.mcp.jsoninstead 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.jsonlocation — a./opencode.jsonin 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:
- Sign in to lessly.com, change the default workspace in account settings.
- 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 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:
{
"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 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 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. 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.