Skip to content

MCP clients

Connection values, client setup and fixes for the Lepsto MCP server.

Connect a remote HTTP MCP client to https://mcp.lepsto.com. Use browser sign-in for an interactive session, or a platform API key for a background agent.

This page lists connection settings, client configuration, and fixes for common failures. For a guided first connection, follow connect Lepsto MCP.

Connection values

The endpoint is shared by every product. Every caller sees the same tool list; each product-scoped call names its product in an argument: product_id, or productId where the tool declares it. The tool schema shows which.

Field
Value
URL
https://mcp.lepsto.com — one endpoint for every product
Transport
HTTP, JSON-RPC 2.0, POST only; stateless, with no MCP session to keep
Interactive sign-in
OAuth 2.1 authorization code flow with PKCE; approve the access request in the browser opened by your client.
Headless credential
Authorization: Bearer <API key>, with a platform API key (lsk_…) created on the product’s Developer page
Authentication metadata
https://mcp.lepsto.com/.well-known/oauth-protected-resource
Server name
lepsto in the examples below; this is a name in your client, not a separate server address.

Add and remove Lepsto

Choose your client below. Use the endpoint exactly as shown, without an added path.

Client
Add
Remove
Claude Code
claude mcp add --transport http lepsto https://mcp.lepsto.com, then open /mcp and sign in
claude mcp remove lepsto
Claude Desktop
Customize → Connectors → + → Add custom connector, enter https://mcp.lepsto.com, then connect and approve access. On Team and Enterprise plans an owner adds it under Organization settings → Connectors first.
Customize → Connectors, then Remove on the connector
Cursor
Add a lepsto entry with "url": "https://mcp.lepsto.com" under mcpServers in .cursor/mcp.json (one project) or ~/.cursor/mcp.json (every project)
Delete the lepsto entry from that file
OpenCode
Add "lepsto": { "type": "remote", "url": "https://mcp.lepsto.com" } under mcp in opencode.json, then run opencode mcp auth lepsto
Delete the entry, or set "enabled": false to keep it switched off; opencode mcp logout lepsto clears the stored sign-in
ChatGPT
Add Lepsto as a custom app for a remote MCP server using https://mcp.lepsto.com, then sign in with OAuth. Availability depends on your ChatGPT plan and workspace settings; follow the developer-mode instructions linked below.
Remove the app in ChatGPT

Client configuration controls which projects can use the connection. In Claude Code, the default is the current project. Use --scope project to write a shared .mcp.json in the project root, or --scope user to make the connection available across your projects.

For current client-specific details, see Claude Code, Claude custom connectors, Cursor, OpenCode, and ChatGPT developer mode.

Use an API key instead of signing in

A platform API key lets CI and background agents connect without a person approving a browser sign-in. Use Claude Code, Cursor, or OpenCode for the key configuration below. The Claude custom connector documents OAuth sign-in only; this page also covers ChatGPT through OAuth.

  1. Create a key on the product’s Developer page in the web app. Copy its plaintext value when shown; you cannot retrieve it later. See key management.

  2. Set LEPSTO_API_KEY to the key in your shell, then add the bearer header. For Claude Code:

    claude mcp add --transport http lepsto https://mcp.lepsto.com \
      --header "Authorization: Bearer $LEPSTO_API_KEY"

    For Cursor or OpenCode, add "Authorization": "Bearer <key>" to the server entry’s headers object, replacing <key> with your key. Keep credentials out of committed files, including a shared .mcp.json.

  3. Ask the agent to list the Lepsto tools available to it. If authentication fails, use the 401 checks below.

A raw API key is bound to the product it was created in. Calls may omit the product argument and use that product; a call whose product argument names another product is refused with no_tool_permission, even if you belong to that product. The server checks the key on every request; revoking it stops the next call made with that key.

Choose the product

The server does not remember a product between calls. Ask the agent to list your products; it calls organization_product_list. Then name the product you want in the request, for example:

List the services in product <product-id>.

The agent passes that ID on every product-scoped tool call, as product_id or, where the tool declares it, productId. Check the product name in the list before asking for product-specific work. With a raw API key, the product argument may be omitted: the key’s own product is the only one available.

Troubleshooting

Symptom
Check and next action
401 with a WWW-Authenticate header
Reconnect and sign in. No credential reached the server; the header points an OAuth-capable client to the authentication metadata.
401 without a WWW-Authenticate header
Replace the rejected credential, such as a revoked or mistyped key. The server does not send an OAuth discovery pointer when a credential was supplied and rejected.
A tool error starting with product_id_required
The call named no product. Pass the product’s ID in the argument the tool schema declares, product_id or productId; get it from organization_product_list.
A tool error starting with no_tool_permission
Check the product argument first. API key: use a key created in the intended product; membership elsewhere does not extend the key. OAuth: confirm your product access and role permissions. The code does not say which check failed.
A tool call returns Unknown tool
The name is not a tool on the server. Product selection is one such case: it is not available over MCP, so pass the product argument on each product-scoped call instead. For another name, check the live tools/list.
405, 415, or 400 with -32600 from the endpoint
Configure the client for remote HTTP (not SSE). The server accepts one JSON-RPC message per POST with Content-Type: application/json; it rejects GET, DELETE, and batches.
A tool description starts with DEPRECATED — use <new name>
Switch to the replacement named in the description. The old name remains available for one release cycle after a rename.
The client lists no Lepsto tools after you edit its config
Quit the client completely and reopen it so clients that read configuration at startup load the change.
No browser opens for sign-in
Run the client in a session with a browser, or configure an API key for headless use.
Was this page helpful?
Esc

Start typing to search the docs.

↑↓navigate↵select