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

# Mcp

## MCP Server

Connect AI assistants to LanderLab via the [Model Context Protocol](https://modelcontextprotocol.io). Manage landing pages, analytics, leads, and A/B tests from Claude, Cursor, Windsurf, Manus, ChatGPT, or any MCP-compatible client.

```text theme={null}
https://api.landerlab.dev/mcp
```

OAuth sign-in · 30+ tools · Works everywhere

## Overview

The LanderLab MCP server gives AI assistants the ability to list landers, pull analytics, publish and unpublish pages, manage leads, run A/B tests, and more on your behalf. Instead of switching between your AI tool and the LanderLab dashboard, your assistant handles it in one conversation.

**Who is this for?** Performance marketers, media buyers, and teams who want to manage their LanderLab account faster. Ask your AI assistant what you need in plain English and it calls the right API for you.

**How it works.** The MCP server exposes tools that your AI assistant can call during a conversation. When you say "list my landers in workspace 1," the assistant calls `landers_list` and returns the results.

***

## Connect

In Claude, search for LanderLab under **Settings > Connectors > Browse connectors** and click **Connect**. In every other client, add `https://api.landerlab.dev/mcp` as a remote MCP server. Either way, you complete a LanderLab sign-in prompt in your browser. There is no API key and no header.

Step-by-step guides for each client:

* [Claude.ai](/mcp/ai-assistants/claude)
* [Claude Desktop](/mcp/ai-assistants/claude-desktop)
* [Claude Code](/mcp/ai-assistants/claude-code)
* [Cursor](/mcp/ai-assistants/cursor)
* [Windsurf](/mcp/ai-assistants/windsurf)
* [Manus](/mcp/ai-assistants/manus)
* [ChatGPT](/mcp/ai-assistants/chatgpt)
* [Gemini CLI](/mcp/ai-assistants/gemini-cli)

For any other client that supports the MCP HTTP transport, the minimal config is:

```json theme={null}
{
  "mcpServers": {
    "landerlab": {
      "type": "http",
      "url": "https://api.landerlab.dev/mcp"
    }
  }
}
```

<Note>
  The previous endpoint, `https://api.landerlab.dev/api/v2/mcp` with an `X-API-Key` header, is being retired. Remove it from your config and reconnect using the URL above.
</Note>

***

## Tools Reference

Your organization is auto-resolved from your signed-in account. No need to pass an organization ID.

### Read-Only

| Tool                  | Description                              |
| --------------------- | ---------------------------------------- |
| `workspaces_list`     | List all workspaces                      |
| `landers_list`        | List landing pages in a workspace        |
| `domains_list`        | List domains in a workspace              |
| `domains_list_global` | List all domains across the organization |
| `integrations_list`   | List configured integrations             |
| `leads_list`          | List leads for a lander                  |
| `leads_list_org`      | List leads across the organization       |
| `variants_list`       | List A/B test variants                   |
| `api_key_list`        | List API keys                            |
| `dashboard_get`       | Get visits, conversions, and leads stats |
| `analytics_graphs`    | Get graph data for a lander              |
| `analytics_stats`     | Get detailed stats for a lander          |
| `analytics_reports`   | Generate reports for a lander            |
| `reporting_get`       | Run multi-lander reporting               |
| `editor_load`         | Load HTML and settings for a variant     |

### Mutations

| Tool                         | Description                         |
| ---------------------------- | ----------------------------------- |
| `lander_publish`             | Publish a landing page              |
| `lander_unpublish`           | Unpublish a landing page            |
| `editor_save`                | Save HTML content for a variant     |
| `editor_save_settings`       | Save variant settings               |
| `variants_set_weights`       | Set A/B test traffic split          |
| `variants_enable`            | Enable a variant                    |
| `variants_disable`           | Disable a variant                   |
| `leads_update`               | Update a lead                       |
| `leads_delete`               | Delete a lead                       |
| `leads_update_org`           | Update a lead (org-level)           |
| `leads_delete_org`           | Delete a lead (org-level)           |
| `lander_integration_enable`  | Enable an integration on a lander   |
| `lander_integration_disable` | Disable an integration on a lander  |
| `lander_integration_delete`  | Remove an integration from a lander |
| `integration_create`         | Create an org-level integration     |
| `api_key_revoke`             | Revoke an API key                   |
| `api_key_update`             | Update an API key                   |

Full schemas and parameters: [API documentation](https://api.landerlab.dev/api/v2/docs)

***

## Authentication

The MCP server uses OAuth. On first connection, your client sends you to a LanderLab sign-in page. You approve the access request once, and the client stores and refreshes the token on its own.

Access is tied to the account you sign in with, and your organization is resolved automatically. To revoke access, open **Settings > Connected Apps** in LanderLab, or remove the connector in your AI tool.

API keys are still used for direct REST API calls. See [Generate an API Key](/mcp/generate-api-key).

***

## Example Prompts

Once connected, just talk to your AI assistant in plain English:

> **"List all my landers and their status"** Calls `landers_list` and returns page names, URLs, and publish status.

> **"Show me analytics for lander X over the last 7 days"** Calls `analytics_stats` with the date range and returns visits, conversions, and leads.

> **"Unpublish lander X"** Calls `lander_unpublish` to take the page offline.

> **"Set A/B test weights to 70/30 for lander X"** Calls `variants_set_weights` to adjust traffic distribution between variants.

> **"Show me all leads from workspace 1"** Calls `leads_list` and returns lead data for that workspace.

***

## Troubleshooting

**Sign-in window does not open** - Your client or browser is blocking the pop-up. Allow pop-ups for your AI tool and reconnect.

**Connected but no tools appear** - Restart your AI tool. Most clients only load the tool list at the start of a session.

**401 Unauthorized** - Your session expired or access was revoked. Remove the connector and add it again to sign in fresh.

**Not Acceptable** - The `Accept` header must include both `application/json` and `text/event-stream`. This usually shows up when testing with curl or a custom client.

**Still using the old endpoint** - Configs pointing at `https://api.landerlab.dev/api/v2/mcp` with an `X-API-Key` header should be replaced with `https://api.landerlab.dev/mcp`.
