Skip to content
MCP Server

MCP Server

Connect Claude, Cursor, VS Code, Windsurf, Codex, and any MCP-compatible AI agent to your Setgreet platform.

MCP Server

MCP is coming soon. The hosted endpoint at https://mcp.setgreet.com/mcp isn't live yet — the install steps below are a preview of how it'll work the day it ships. Drop your email to get the launch notification:

The Setgreet MCP server lets AI agents read and write your Setgreet workspace -- flows, analytics, experiments, segments, theme, localization, billing, team, and integrations -- through a single OAuth connection. It implements the Model Context Protocol, the open standard supported by Claude, Cursor, VS Code, Windsurf, Codex, and a growing list of other clients. Setgreet hosts the server at https://mcp.setgreet.com/mcp -- there is no install, no local process, no API key to manage.

Install

Pick your client. Each tab is a copy-paste install. The hosted endpoint is the same in every case; only the client config differs.

Open ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (or %APPDATA%\Claude\claude_desktop_config.json on Windows) and add the Setgreet server:

{
  "mcpServers": {
    "setgreet": {
      "url": "https://mcp.setgreet.com/mcp"
    }
  }
}

Restart Claude Desktop. The first tool call opens a browser for OAuth sign-in.

claude mcp add setgreet --transport http --scope user https://mcp.setgreet.com/mcp

The --scope user flag makes Setgreet available across every project; swap it for --scope project to write a .mcp.json at the project root that you can commit. Run /mcp inside a Claude Code session to confirm setgreet is listed.

Add Setgreet to either ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):

{
  "mcpServers": {
    "setgreet": {
      "url": "https://mcp.setgreet.com/mcp"
    }
  }
}

Restart Cursor. Setgreet appears in Settings -> MCP.

Add Setgreet to .vscode/mcp.json (workspace) or your user MCP config (Command Palette -> MCP: Open User Configuration):

{
  "servers": {
    "setgreet": {
      "type": "http",
      "url": "https://mcp.setgreet.com/mcp"
    }
  }
}

Or one-shot from the terminal:

code --add-mcp '{"name":"setgreet","type":"http","url":"https://mcp.setgreet.com/mcp"}'

Setgreet is then available in Copilot Chat under Agent mode.

Add Setgreet to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "setgreet": {
      "serverUrl": "https://mcp.setgreet.com/mcp"
    }
  }
}

Restart Windsurf and refresh the MCP server list in Cascade.

Codex CLI configures HTTP MCP servers in ~/.codex/config.toml -- the codex mcp add CLI is stdio-only today. Add this block:

[mcp_servers.setgreet]
url = "https://mcp.setgreet.com/mcp"

The next codex session picks up the new server.

ChatGPT calls custom MCP servers "Connectors" and exposes them via the dashboard, not a config file. You need a Business, Enterprise, or Edu workspace with Developer Mode enabled (Workspace Settings -> Permissions & Roles -> Connected Data Developer mode) -- Plus and Pro plans get read/fetch-only custom connectors even with Developer Mode on.

  1. In ChatGPT, open Settings -> Connectors -> Create.
  2. Name it Setgreet, set the MCP Server URL to https://mcp.setgreet.com/mcp, and write a one-line description.
  3. Save. The first tool call prompts the OAuth sign-in.

Setgreet's MCP transport is Streamable HTTP -- it speaks the same wire format ChatGPT expects for custom connectors.

ChatGPT connector support is still in beta and the available tool surface depends on your workspace plan. Claude Desktop, Claude Code, Cursor, VS Code, and Windsurf get the full 71-tool surface today.

Any spec-compliant MCP client can connect over Streamable HTTP at:

https://mcp.setgreet.com/mcp

The server advertises OAuth discovery at /.well-known/oauth-authorization-server per RFC 8414, so MCP clients that support OAuth discovery auto-configure from that single URL.

Authorize

The first time your agent calls a Setgreet tool, the MCP server opens a browser to the Setgreet dashboard. You sign in with your existing account, the browser hands the redirect back to the client, and the agent prints your user, organization, role, and granted scopes.

Setgreet uses OAuth 2.1 with PKCE -- there is no shared secret to leak, and the agent never touches your refresh token. Access tokens are short-lived (5 minutes) and refresh transparently in the background; refresh tokens rotate on every use and stay valid for 30 days.

You can list and revoke active MCP sessions from the dashboard at Settings -> MCP Connections (/settings/mcp-connections). Revoking a session takes effect immediately -- the agent's next tool call gets authentication_required and prompts re-authorization.

To verify the install, ask the agent:

Call the setgreet whoami tool.

It returns your user, org, role, granted scopes, and token expiry.

How scopes work

Scopes are not requested by the client. They are derived from your dashboard role at token issuance and written directly into the JWT. A viewer's token literally cannot carry flows:write -- the scope is absent from the scope claim, so even a malicious client cannot use it. Admins can create segments and manage team; viewers cannot. Role demotions take effect on the next token refresh (within 5 minutes).

Destructive operations (delete, unpublish, complete experiment, remove member, regenerate share token) require an explicit confirm: true parameter -- the agent has to ask you before passing it. If it doesn't, the MCP server refuses the call with confirmation_required before the API is touched.

End-user PII (email, phone, name, address, IP) is partitioned behind a separate endusers:read:pii scope granted to admins and above. Without it, the backend silently replaces those fields with "[redacted]" -- enforced server-side, not at the MCP layer.

Plan availability

MCP access is included on Growth and Scale plans. Starter (free) workspaces are blocked at sign-in with an upgrade prompt. See pricing.

What's next

  • Tools -- the full 71-tool catalog grouped by domain.
  • Troubleshooting -- error codes (authentication_required, scope_required, plan_required, confirmation_required) and how to resolve each.

On this page