Receipts

Receipts · Last updated October 19, 2026

Connect an assistant

Step-by-step setup for connecting Receipts to your assistant or coding agent, with config you can copy. Read Using an AI assistant first: your assistant acts as you, and host actions it takes are marked AGENT-ASSISTED for everyone in the pool. Points only.

What you need

Where an app has both, the steps below show both. Sign-in is the better choice when it works: there's no secret sitting in a config file.

Give it the least access it needs

Whichever way you connect, you choose what the assistant can do: on our sign-in page for OAuth, or with the checkboxes when you make a token.

Start with Read, and add Play or Host when you want it to do more. A token can also expire on its own (30 days, 90 days or a year); pick one if you're only trying an app out. Different apps get different connections, so a coding agent can have Read while your phone's assistant has Play.

Claude (claude.ai and Claude Desktop)

  1. Open Customize → Connectors, then + Add → Add custom connector.
  2. Name it Receipts and paste the URL:
https://ivegotreceipts.com/mcp
  1. Continue, leave the OAuth client on the recommended option, and sign in when it sends you to Receipts.

On a Team or Enterprise plan, an owner adds the connector under Organization settings → Connectors first; then you press Connect under Customize → Connectors.

With a token

On the same screen, choose No sign in and add a request header:

Authorization: Bearer igr_...

ChatGPT

This is on chatgpt.com in a browser, on Plus, Pro or a work plan.

  1. Turn on developer mode: Settings → Security and login → Developer mode. Many accounts have it on already. (In the desktop app, the "Developer mode" under browser settings is something else; leave it off.) On a work account, an admin may have to allow developer mode for the workspace first.
  2. Go to chatgpt.com/plugins, press Add, then Create MCP App. Not the MCPs tab: servers added there are for Codex, and chats can't use them.
  3. Name it Receipts, and under Connection paste the server URL:
https://ivegotreceipts.com/mcp
  1. Choose OAuth for authentication, confirm, and create it. Sign in when it sends you to Receipts.
  2. In a chat, press +, choose Developer mode and tick Receipts. It's off in every new chat until you do.

ChatGPT signs in with OAuth only. It can't send a token, so there's no token form here.

Gemini app

  1. At gemini.google.com, open Settings → Connected Apps.
  2. Under Custom apps, press Add a custom app, paste the URL and press Next:
https://ivegotreceipts.com/mcp
  1. Sign in when it sends you to Receipts. Once added on the web, it's on your phone too.

Google limits custom apps to personal accounts (not work or school) in the US, aged 18 and over, in English, with Keep Activity on: in Gemini, open Settings → Activity (or myactivity.google.com/product/gemini) and turn it on. If Agree and continue on Google's linking page does nothing, one of these is usually why. Sign-in only: there's no token form.

Cursor

Add Receipts to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project). Cursor signs you in the first time it connects:

{
  "mcpServers": {
    "receipts": {
      "url": "https://ivegotreceipts.com/mcp"
    }
  }
}

With a token

Keep the token in an environment variable, IGR_TOKEN, rather than in the file:

{
  "mcpServers": {
    "receipts": {
      "url": "https://ivegotreceipts.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:IGR_TOKEN}"
      }
    }
  }
}

VS Code (GitHub Copilot)

Add Receipts to .vscode/mcp.json in your project, or run MCP: Open User Configuration for every project. Note "servers", not "mcpServers", and "type": "http". VS Code signs you in when it first connects:

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

With a token

VS Code asks for the token once and keeps it out of the file:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "igr-token",
      "description": "Receipts token (igr_...)",
      "password": true
    }
  ],
  "servers": {
    "receipts": {
      "type": "http",
      "url": "https://ivegotreceipts.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:igr-token}"
      }
    }
  }
}

Devin Desktop (formerly Windsurf)

In the Cascade panel, open the … menu and choose Open MCP config file, which opens mcp_config.json wherever your version keeps it. The key is serverUrl:

{
  "mcpServers": {
    "receipts": {
      "serverUrl": "https://ivegotreceipts.com/mcp"
    }
  }
}

With a token

{
  "mcpServers": {
    "receipts": {
      "serverUrl": "https://ivegotreceipts.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:IGR_TOKEN}"
      }
    }
  }
}

OpenClaw

From the command line, then sign in:

openclaw mcp add receipts --url https://ivegotreceipts.com/mcp --transport streamable-http
openclaw mcp login receipts

Or in ~/.openclaw/openclaw.json:

{
  "mcp": {
    "servers": {
      "receipts": {
        "url": "https://ivegotreceipts.com/mcp",
        "transport": "streamable-http",
        "auth": "oauth"
      }
    }
  }
}

With a token

Leave out "auth": "oauth": with it on, OpenClaw ignores a fixed Authorization header.

{
  "mcp": {
    "servers": {
      "receipts": {
        "url": "https://ivegotreceipts.com/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer ${IGR_TOKEN}"
        }
      }
    }
  }
}

Gemini CLI

Use httpUrl, not url: in Gemini CLI, url means an SSE server, and Receipts doesn't have one. In ~/.gemini/settings.json (or .gemini/settings.json in a project); Gemini CLI finds our sign-in on its own:

{
  "mcpServers": {
    "receipts": {
      "httpUrl": "https://ivegotreceipts.com/mcp"
    }
  }
}

With a token

gemini mcp add --transport http --header "Authorization: Bearer igr_..." receipts https://ivegotreceipts.com/mcp

or, in the file:

{
  "mcpServers": {
    "receipts": {
      "httpUrl": "https://ivegotreceipts.com/mcp",
      "headers": {
        "Authorization": "Bearer igr_..."
      }
    }
  }
}

Antigravity CLI

Type /mcp to open the MCP manager, or edit ~/.gemini/config/mcp_config.json (every project) or .agents/mcp_config.json (one project). The key is serverUrl, not url or httpUrl. Antigravity signs you in on its own:

{
  "mcpServers": {
    "receipts": {
      "serverUrl": "https://ivegotreceipts.com/mcp"
    }
  }
}

With a token

{
  "mcpServers": {
    "receipts": {
      "serverUrl": "https://ivegotreceipts.com/mcp",
      "headers": {
        "Authorization": "Bearer igr_..."
      }
    }
  }
}

Microsoft Copilot Studio

  1. In your agent, open Tools → Add a tool → New tool → Model Context Protocol.
  2. Server name Receipts, a short description, and the server URL:
https://ivegotreceipts.com/mcp
  1. For authentication, choose OAuth 2.0 with type Dynamic discovery. Then Add tool, Create a new connection, sign in to Receipts, and Add to agent.

With a token

Choose API key, type Header, header name Authorization. When you make the connection, paste the whole value, including the word Bearer:

Bearer igr_...

An agent you publish acts with whichever connection it uses. If other people can talk to it, give it Read only.

Meta Muse

Muse has no setting for an MCP server URL. It can build its own custom connector from an API description instead:

  1. On your account page, press Set up Muse. It makes a token that can read and pick (not host) and shows you what to send.
  2. Ask Muse:
Build a custom connector for Receipts from the OpenAPI description at
https://ivegotreceipts.com/api/v1/openapi.json
It authenticates with the header "Authorization: Bearer <token>".
  1. When Muse asks for the token, save it in Muse's Secure Credentials Store. Don't paste it into the chat.

Anything else

Any app that can add a remote MCP server over Streamable HTTP can use https://ivegotreceipts.com/mcp, with sign-in or a token as above. An app that calls APIs instead can read the OpenAPI 3.1 description at /api/v1/openapi.json and send a token. A short summary for AI tools is at /llms.txt.

Menus move. If a step here doesn't match what you see, the app's own help is the place to check.

Revoking access

Every connection, signed in or token, is listed on your account page with when it was last used. Revoke one there and it's cut off at its very next request. To change what a connection can do, revoke it and connect again. If a token ends up somewhere it shouldn't (a shared repo, a chat, a screenshot), revoke it right away and make a new one.

Questions: hello@ivegotreceipts.com

← Back to Receipts