> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langmail.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect other MCP clients

> Connect Cursor or any MCP client that supports remote Streamable HTTP servers with OAuth to the Langmail MCP server.

Any MCP client can use Langmail if it supports two things:

1. **Remote servers over the Streamable HTTP transport** — the server lives at `https://mcp.langmail.me/mcp`; there is no local process to spawn.
2. **The MCP authorization flow (OAuth 2.1)** — the client discovers the authorization server, registers itself dynamically, and opens a browser for you to sign in and consent. No manual API keys are involved.

If your client meets both, connecting is one config entry.

## Cursor

Add the server to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` in a project:

```json mcp.json theme={null}
{
  "mcpServers": {
    "langmail": {
      "url": "https://mcp.langmail.me/mcp"
    }
  }
}
```

Open Cursor's MCP settings, find **langmail**, and complete the login prompt — the browser opens for Google sign-in and consent. Once authorized, the tools show up in the agent's tool list.

## Any other client

Point the client at the server URL using its remote/HTTP server option:

```text theme={null}
https://mcp.langmail.me/mcp
```

The client handles the rest through standard MCP authorization discovery. What it needs to support, concretely:

* OAuth 2.0 protected resource metadata (RFC 9728) and authorization server metadata (RFC 8414)
* Dynamic client registration (RFC 7591) as a public client
* The authorization code grant with PKCE (S256)

Every step, with the exact endpoints and example responses, is documented in [How authorization works](/connect/authorization) — useful if you are building an MCP client or debugging one.

<Note>
  The user signing in needs a Langmail account with an active `@langmail.me` mailbox. Tokens for accounts without a mailbox are rejected with `401 invalid_token`.
</Note>

## Verify the connection

However you connected, the check is the same — ask the agent:

```text Prompt theme={null}
List my Langmail calendars.
```

A connected agent calls `list_calendars` and returns your calendars with their CalDAV URLs.
