Connect your AI agent

Die Entwicklerdokumentation wird auf Englisch gepflegt.

Expense Hunter and Focused Capitalist expose your own data to AI agents over the Model Context Protocol. You add one server to your agent, approve it once in the browser, and the agent can then ask about your ledgers, transactions, budgets, portfolios and net worth on your behalf. It is the same account and the same permissions you already have; nothing new is shared, and nothing is copied out of the product.

What the connection can and cannot do

The scope of a connection is narrow on purpose.

  • Read-only in v1. The tools return data. No tool writes, edits or deletes anything.
  • Scopes are per connection and approved in the browser. The consent screen names what the agent asks for: eh:read for Expense Hunter data, fc:read for Focused Capitalist data. You approve or decline.
  • Revocable at any time. Revoking a connection ends the agent’s access on its next call.
  • No secrets to copy. There is no API key, no token and no password to paste anywhere. Authorization runs over OAuth 2.1 with PKCE and dynamic client registration, so the credential is issued to your agent by the browser step and never passes through you. A setup with nothing to leak is one fewer thing to keep safe.
  • You still see only what your account can see. Sharing rules and permissions apply unchanged.

Endpoints

The server answers on three hosts. All three serve the same MCP endpoint at /mcp, with the same tools.

  • https://mcp.expensehunter.com/mcp

    Expense Hunter branded. Used in every snippet on this page.

  • https://mcp.focusedcapitalist.com/mcp

    Focused Capitalist branded. What the Focused Capitalist site links to.

  • https://api.expensehunter.com/mcp

    Neutral. Neither product’s branding.

A connection works on all three, and every host serves the whole catalog. The host decides the branding you see while authorizing. What the agent can read is decided by the scopes you approve.

The browser authorization step always happens on a branded domain. Connecting to the neutral host sends you through the Expense Hunter sign-in. It is the same account either way.

Setup

Two commands, then one browser approval. Both clients handle the OAuth flow themselves.

Claude Code

Add the server:

claude mcp add --transport http expense-hunter https://mcp.expensehunter.com/mcp

Claude Code opens the authorization page on first use, or prompts you with the /mcp command. Approve it in the browser and the tools appear in the session.

Codex CLI

Add the server:

codex mcp add expense-hunter --url https://mcp.expensehunter.com/mcp

Then start the authorization:

codex mcp login expense-hunter

Codex opens the browser for you and stores the result. The tools are available in the next session.

What the browser step shows

If you are not signed in to the web app, you sign in first. Same credentials as always.

Then a consent screen names the agent and the scopes it asks for. Read it, then approve or decline.

You approve once per agent. The agent keeps working until you revoke the connection or it expires.

Managing connections

The product web app will show your connected agents, with the scopes each one holds and when it was approved, and let you revoke any of them.

Revoking takes effect immediately: the next tool call the agent makes fails as unauthorized. Reconnecting means running the setup command again and approving a new consent screen.

The exact place in the web app is described here once that screen ships.

Troubleshooting

The authorization page asks you to log in.
You have no active web-app session. Sign in, and the consent screen follows.
The agent reports unauthorized.
The connection was revoked or has expired. Run the setup command again and approve the new consent screen.
The agent gets a 429.
You hit the rate limit. Wait and retry; the error names when the limit resets.
A tool is not visible.
The scope for that product was not granted. Expense Hunter tools need eh:read, Focused Capitalist tools need fc:read. The host makes no difference. Run the setup command again and approve the scopes you want.
A third-party client fails to connect at all.
The endpoint is streamable HTTP. The client must send Accept: application/json, text/event-stream. Claude Code and Codex CLI do this on their own.

Tool reference

Every tool in the catalog, with its inputs, scope and result limits.

Browse the tool reference