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 responsesGET /mcp— returns405 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):
- The client hits
POST /mcpunauthenticated and receives401withWWW-Authenticate: Bearer resource_metadata="…". - The client fetches
GET /.well-known/oauth-protected-resource(RFC 9728) to learn the authorization server URL. - The client fetches
GET /.well-known/oauth-authorization-server(RFC 8414) to learn the authorization, token, and registration endpoints. - The client registers itself via
POST /oauth/register(Dynamic Client Registration, RFC 7591). - The client opens your browser to
/oauth/authorize, where you log in (if needed) and approve the connection. - The client exchanges the returned authorization code at
POST /oauth/tokenusing PKCE and receives an access token and refresh token. - 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 list — betterdating should appear in the output.
ChatGPT (Plus / Team / Enterprise)
- Open Settings in ChatGPT
- Select Connectors (or Apps & Connectors)
- Click Add Custom Connector
- Fill in the details:
- Name: BetterDating
- MCP Server URL:
https://betterdating.app/mcp - Authentication type: OAuth
- 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 |
|---|---|---|
| Connections | list_connections | List connections with optional filters |
| get_connection | Get a specific connection by ID | |
| create_connection | Create a new connection | |
| update_connection | Update a connection's details | |
| delete_connection | Permanently delete a connection | |
| archive_connection | Archive or unarchive a connection | |
| Meetings | list_meetings | List meetings with optional filters |
| get_meeting | Get a specific meeting by ID | |
| create_meeting | Log a new meeting with a connection | |
| update_meeting | Update a meeting's details | |
| delete_meeting | Delete a meeting | |
| Reflections | list_reflections | List reflections, optionally by connection |
| get_reflection | Get a specific reflection by ID | |
| create_reflection | Write a new reflection | |
| update_reflection | Update an existing reflection | |
| delete_reflection | Delete a reflection | |
| Dashboard | get_dashboard_summary | Get an overview of activity and statistics |
| upcoming_birthdays | Get 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-resourceshould return a JSON document withresourceandauthorization_serversfields. - Confirm the
authorization_serversURL is reachable and returnsauthorization_endpoint,token_endpoint, andregistration_endpointfields 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.