Cursor

ChatGPT is the live host today.

Cursor is a planned MCP host for POINTS. It is not QA-passed on production, and POINTS does not publish a date.

This page will carry the connection guide once the host passes QA on production. Until then, ChatGPT is the host to use; see the ChatGPT guide.

Host status comes from /docs/catalog.json. For how any MCP host discovers POINTS, see Discovery.

Draft setup (not yet QA-passed)

This draft is for the Cursor QA run only. It is not a production guarantee and does not change Cursor's Planned status.

  1. Add the POINTS server to Cursor's MCP config at ~/.cursor/mcp.json or the project .cursor/mcp.json:

    {
      "mcpServers": {
        "points": {
          "url": "https://thepoints.io/mcp"
        }
      }
    }
    

    The in-app POINTS setup modal also offers an Add to Cursor button. It opens Cursor's install prompt with the same URL prefilled and Cursor still asks you to confirm before anything connects. The raw deeplink is Add to Cursor.

  2. Open Cursor Settings → MCP, find the points server, and choose Connect. Cursor opens a browser sign-in to POINTS. You do not need a client id or secret: Cursor registers itself and can call through the fixed loopback callback http://localhost:8787/callback, or the web/Agents callback https://www.cursor.com/agents/mcp/oauth/callback.

  3. On the POINTS consent page, review the client name, the redirect host, and the requested scopes, then approve. The QA run approves only balances:read payments:draft payments:status module-status:read (add identity:read if prompted).

  4. Confirm the green connection status and the advertised tools. See MCP tools. prepare_payment should be present and create_payment_draft should not be advertised.

Check the connection

  1. Ask Cursor to call get_agent_pay_policy_vocabulary and get_wallet_status. Expect the real vocabulary and only this account's stored data.
  2. Prepare a draft with prepare_payment for the saved test payee. The response shows status: "requires_approval". Approve does not execute.
  3. Approve the draft in POINTS as the QA owner from the browser, then call get_payment_status. It shows approved and executed: false.
  4. Wait past the 15-minute access-token lifetime and call a tool again. It works without a new consent step. Revoke the connection in POINTS and the next call returns HTTP 401.

Troubleshooting

SymptomWhat to check
Redirect mismatch: Cursor tried a fallback callback (port 8787 busy)Free port 8787 and reconnect. The desktop IDE/CLI uses the fixed loopback callback on port 8787.
invalid_grant at the token endpointKeep the resource value exactly https://thepoints.io/mcp, with no trailing slash.
HTTP 401 on every callThe connection was revoked or the token expired. Reconnect.
Missing required scope: <scope>Reconnect and approve the scope the tool needs. See OAuth scopes.

Modes that still present the cursor:// custom-scheme fallback are not supported. Use the loopback path above, or connect through Cursor web/Agents.