← Back to Documentation

MCP Server Setup

Connect AI assistants directly to your BetterDating account

Overview

The BetterDating MCP (Model Context Protocol) server lets you connect AI assistants directly to your account. Once connected, your AI assistant can read and manage your connections, log meetings, write reflections, and more — all through natural language.

The server implements MCP specification version 2025-11-25 and uses the Streamable HTTP transport exclusively:

  • POST /mcp — JSON-RPC requests and responses
  • GET /mcp — returns 405 Method Not Allowed (server-initiated streams are not used)

All MCP clients that speak the current spec connect through POST /mcp. For a detailed walkthrough, see the full MCP setup guide.

Step 1 — Authentication

The server uses OAuth 2.1 with PKCE (RFC 7636). BetterDating is both the authorization server and the resource server — the same login you use in the web UI authorizes MCP clients. There are no static API tokens; every MCP client goes through the OAuth authorization code flow.

Discovery flow (performed automatically by modern MCP clients):

  1. The client hits POST /mcp unauthenticated and receives 401 with WWW-Authenticate: Bearer resource_metadata="…".
  2. The client fetches GET /.well-known/oauth-protected-resource (RFC 9728) to learn the authorization server URL.
  3. The client fetches GET /.well-known/oauth-authorization-server (RFC 8414) to learn the authorization, token, and registration endpoints.
  4. The client registers itself via POST /oauth/register (Dynamic Client Registration, RFC 7591).
  5. The client opens your browser to /oauth/authorize, where you log in (if needed) and approve the connection.
  6. The client exchanges the returned authorization code at POST /oauth/token using PKCE and receives an access token and refresh token.
  7. Subsequent MCP requests include the access token in the Authorization: Bearer <token> header. Expired tokens are refreshed automatically.

Because the entire flow is automatic, client configuration typically only needs the server URL — no tokens, no manual client registration.

Step 2 — Configure Your AI Client

Claude Desktop

Open your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the following to the mcpServers object:

{
  "mcpServers": {
    "betterdating": {
      "url": "https://betterdating.app/mcp"
    }
  }
}

Restart Claude Desktop after saving. The first time you use a BetterDating tool, a browser window opens so you can sign in and approve the connection. OAuth tokens are cached and refreshed automatically.

Start a new conversation and ask "What tools do you have available?" to verify the connection.

Claude Code

Claude Code has built-in support for remote MCP servers with Streamable HTTP transport and handles OAuth natively:

claude mcp add betterdating \
  --transport http \
  https://betterdating.app/mcp

The first request triggers the OAuth flow: Claude Code prints a URL, opens it in your browser, and prompts you to authorize. Tokens are stored and refreshed automatically.

Verify with claude mcp listbetterdating should appear in the output.

ChatGPT (Plus / Team / Enterprise)

  1. Open Settings in ChatGPT
  2. Select Connectors (or Apps & Connectors)
  3. Click Add Custom Connector
  4. Fill in the details:
    • Name: BetterDating
    • MCP Server URL: https://betterdating.app/mcp
    • Authentication type: OAuth
  5. Click Save and follow the prompts to sign in to BetterDating and approve the connection

ChatGPT performs OAuth discovery against the server URL, registers itself as a client, and redirects you through the authorization flow. BetterDating tools become available in new conversations once the connection is authorized.

Gemini CLI

Open or create ~/.gemini/settings.json and add the BetterDating server:

{
  "mcpServers": {
    "betterdating": {
      "url": "https://betterdating.app/mcp"
    }
  }
}

Restart the Gemini CLI session — run gemini and verify the tools are listed. The first invocation opens a browser for OAuth consent; refer to the Gemini CLI documentation for the latest MCP configuration options if your version requires a different key shape.

Available Tools

The BetterDating MCP server provides 18 tools across four categories:

Category Tool Description
Connectionslist_connectionsList connections with optional filters
get_connectionGet a specific connection by ID
create_connectionCreate a new connection
update_connectionUpdate a connection's details
delete_connectionPermanently delete a connection
archive_connectionArchive or unarchive a connection
Meetingslist_meetingsList meetings with optional filters
get_meetingGet a specific meeting by ID
create_meetingLog a new meeting with a connection
update_meetingUpdate a meeting's details
delete_meetingDelete a meeting
Reflectionslist_reflectionsList reflections, optionally by connection
get_reflectionGet a specific reflection by ID
create_reflectionWrite a new reflection
update_reflectionUpdate an existing reflection
delete_reflectionDelete a reflection
Dashboardget_dashboard_summaryGet an overview of activity and statistics
upcoming_birthdaysGet connections with birthdays in the next N days

Troubleshooting

401 Unauthorized errors

  • Confirm you completed the OAuth consent flow in your browser. If you cancelled or closed the browser early, trigger a new request and approve it.
  • Access tokens expire; your client should refresh them automatically via the OAuth refresh token flow. If a client keeps failing, clear its cached credentials and reconnect.
  • Verify you can log in to the BetterDating web UI. OAuth consent reuses the same login session.

OAuth discovery fails or returns unexpected content

  • Verify the server URL is reachable: curl https://betterdating.app/.well-known/oauth-protected-resource should return a JSON document with resource and authorization_servers fields.
  • Confirm the authorization_servers URL is reachable and returns authorization_endpoint, token_endpoint, and registration_endpoint fields at /.well-known/oauth-authorization-server.

Connection refused or network errors

  • Verify the server URL is correct
  • Check that your network allows outbound HTTPS connections

Claude Desktop does not show tools after restart

  • Validate the JSON in claude_desktop_config.json (no trailing commas, correct brackets)
  • Clear any stale OAuth state and restart Claude Desktop to re-authorize
  • Check the Claude Desktop logs for error messages

Tools listed but fail to execute

To reproduce a call with curl, you need an OAuth access token obtained through a client that has completed the flow. Then:

curl -X POST https://betterdating.app/mcp \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-11-25" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

A successful response returns a JSON object containing the list of available tools.

429 Rate limit exceeded

The MCP server enforces per-token rate limits. Wait a moment before retrying. Each MCP client receives its own access token through OAuth, so separate clients do not share rate-limit buckets.

Still having trouble? Contact support through the BetterDating web interface.