MCP Server

Connect an AI assistant such as Claude or ChatGPT to Fenerum, and you can ask it about your customers, subscriptions, invoices, and revenue in plain language. For example:

  • “What is our total MRR?”
  • “Show me the active subscriptions for Acme Inc.”
  • “List the latest invoices for customer 1234.”
  • “How has our MRR changed month by month this year?”

The connection supports both read and write access. With read access, the assistant can look up and report on your data. With write access, it can also make changes for you, such as creating a customer or cancelling a subscription.

The connection uses MCP (Model Context Protocol), a standard way for AI assistants to talk to other apps. You don't need to know how it works to use it.

Before you start

You need:

  • A Fenerum login. You must be an active member of the organization.
  • Claude or ChatGPT. Both can connect with a few clicks. Developers can also connect other tools. See For developers.

Connect your AI assistant

Connect Claude

This works in Claude.ai and the Claude Desktop app.

  1. In Claude, go to Settings → Connectors → Add custom connector.
  2. Paste this address: https://app.fenerum.com/api/mcp
  3. Leave the other settings as they are, and click Add.
  4. Click Connect, log in to Fenerum, choose your organization, and click Allow.

That's it. Start a new chat and ask Claude something about your Fenerum data.

Connect ChatGPT

This works in ChatGPT on the web, using Developer mode. Depending on your ChatGPT plan, your workspace administrator may need to turn this on for you.

  1. In ChatGPT, open Settings → Security and login and turn on Developer mode.
  2. Open ChatGPT Plugins, click +, and name the connection Fenerum. For the description, you can write “Read and manage Fenerum accounts, subscriptions, invoices, and reporting.”
  3. Paste this address as the MCP server URL: https://app.fenerum.com/api/mcp
  4. Under authentication, choose OAuth with dynamic client registration (DCR), and leave the client ID and client secret empty. If you're asked about transport, choose Streamable HTTP.
  5. Create the connection, log in to Fenerum, choose your organization, and click Allow.
  6. Start a new chat, choose Developer mode from the + menu, and select Fenerum. Try asking “Use Fenerum to show my organization's total MRR.”

When ChatGPT wants to change something in Fenerum, it asks you first. Check what it's about to do before you approve.

For more help with ChatGPT, see OpenAI's guides to Developer mode and connecting to MCP servers.

What the assistant can do

The assistant can do the same things the Fenerum API can. Looking up data needs read access, and creating or changing data needs write access:

AreaWhat it can do
SearchSearch everything in your organization.
Customers (accounts)Look up, list, create, update, and archive customers.
SubscriptionsLook up, list, create, cancel, and reactivate subscriptions. It can also show what a cancellation would do before cancelling.
Billing and catalogWork with invoices, plans, plan terms, products, draft invoice lines, and invoice recipients.
ActivitySee the activity history for customers and subscriptions.
ReportingGet total MRR, MRR per month, and your KPIs.

When the assistant fetches a list, it gets 25 results at a time by default, and up to 100.

Access and security

When you connect Claude or ChatGPT by logging in to Fenerum:

  • The assistant can only do what you can do. It acts as you, with your Fenerum role and permissions.
  • You choose the organization. Access is for the one organization you pick when you connect. To use another organization, connect again and pick that one.
  • You can give read or write access. Read access lets the assistant look at your data. Write access lets it create and change data too. Your Fenerum role must also allow the change.
  • Everything is logged. Actions show up in the Fenerum audit log under your name, marked with MCP.
  • You stay logged in. If you don't use the connection for 90 days, you'll be asked to log in again.

Cancelling a subscription and archiving a customer can't be undone, so check what the assistant is about to do before you confirm.

Troubleshooting

ProblemWhat to do
“MCP server is not enabled for this organization”The MCP server hasn't been enabled for your organization. Contact Fenerum support.
Your organization isn't listed when you log inYou're not an active member of the organization. Check that you're in the right organization, or contact support.
“Unknown client_id”The connection was set up with the wrong login method. Remove it and add it again, leaving the settings at their defaults (in ChatGPT, choose dynamic client registration).
The connection fails or keeps loadingCheck that the address is exactly https://app.fenerum.com/api/mcp. If you're asked about transport, choose Streamable HTTP, not SSE.
You can't find Developer mode in ChatGPTIt depends on your ChatGPT plan and workspace settings. Ask your workspace administrator.
The assistant can't make a changeYou may have only given it read access, or your Fenerum role may not allow the change. Check both. In ChatGPT, make sure you approved the action.
You're asked to log in againThe connection expires after 90 days without use. Reconnect and log in again.
“Rate limit” errorsYou've sent too many requests in a short time. Wait a moment and try again.

Still stuck? Email support@fenerum.com.

For developers

This section covers connecting tools like Claude Code and Cursor with an API token, and the technical connector settings.

Endpoint: https://app.fenerum.com/api/mcp

The server uses Streamable HTTP. Legacy SSE transport is not supported.

Connect with an API token

Use the same organization API token as the REST API. See Getting your API token for where to create it.

API tokens have full access

An organization API token has full access to your organization. It doesn't use the permissions of a signed-in user. Treat the token like a password, and keep it out of shared configuration, source control, and chat messages.

For Claude Code, replace <your-api-token> with your organization's token:

claude mcp add --transport http fenerum https://app.fenerum.com/api/mcp \
  --header "Authorization: Token <your-api-token>"

For other clients that support custom headers, use the endpoint above with the header Authorization: Token <your-api-token> and Streamable HTTP.

Clients using mcp-remote

If your client supports neither custom headers nor OAuth, but can launch a local MCP process, use mcp-remote. This requires Node.js and npx. Add the following to the client's MCP configuration:

{
  "mcpServers": {
    "fenerum": {
      "command": "npx",
      "args": ["mcp-remote", "https://app.fenerum.com/api/mcp", "--header", "Authorization: Token <your-api-token>"]
    }
  }
}

This configuration contains your token, so keep it private.

Claude connector settings

If you need to change the defaults when adding the Claude connector, use these settings:

SettingChooseWhy
AuthenticationAlways required (auto-detected)Every request needs authentication; Fenerum exposes no anonymous tools.
OAuth clientNo client ID — register one automatically (auto-detected)Fenerum supports dynamic client registration (RFC 7591).
OAuth client — Anthropic hosted client metadata (CIMD)Not supportedConnection will fail with “Unknown client_id”.
OAuth client — Use your own OAuth clientOnly if Fenerum pre-registered one for youRequires a client ID issued by Fenerum and an exact matching redirect URI. Leave the client secret blank: Fenerum uses PKCE public clients.
Managed authorization (identity provider)OffNot supported; access is tied to a Fenerum user and one organization.
Additional request headersNoneOAuth connections use the bearer token. No additional headers are needed.
Transport (Advanced)Streamable HTTP (auto-detected)SSE (legacy) is not supported and will fail.

In ChatGPT, don't choose CIMD, No Authentication, or Mixed Authentication.

API details

MCP tools mirror the Fenerum REST API, including its results, filters, sorting, paging, and validation. Lists return 25 results by default and 100 at most. Requests are rate-limited per organization. See the API reference for resource details.

background logo

We invoice 2 billion DKK annually for our customers. Let's put your invoicing on autopilot today!