Developers
Ask your assistant about your invoices, your taxes or your pending signatures, using the data BMC manages for your company and only the access you choose.
Your AI assistant (ChatGPT, Claude or another) connects to your BMC account and looks up your data when you ask, with no file exports and no copying figures. For example:
The assistant only sees and does what you allow when you connect it, and BMC checks that permission on every request. You can cut the connection at any time.
| Assistant | How it connects | What you need |
|---|---|---|
| ChatGPT | You sign in to BMC from ChatGPT (OAuth) | ChatGPT Business, Enterprise or Edu, on the web. On Pro, read tools only. |
| Claude (web and Desktop) | You sign in to BMC from Claude (OAuth) | Any Claude subscription. On Free, one custom connector. |
| Claude Code | OAuth or token | Claude Code installed. |
| Gemini CLI | Token or OAuth | Gemini CLI installed. |
| Cursor | Token | Cursor installed. |
| Your own agents | Token | The OpenAI or Anthropic API. |
| n8n, Make and Zapier | Token and webhooks | An account on the tool. For webhooks, a public https address. |
A "token" is a bmc_live_… key you create in the client area
(how to create a token). With OAuth you copy no key: you sign in to BMC and choose
what the assistant can do.
It works on ChatGPT Business, Enterprise and Edu, on the web (chatgpt.com), not in the mobile app. On ChatGPT Pro, OpenAI only allows read tools. On ChatGPT Plus, OpenAI does not confirm availability today. In a workspace, developer mode depends on what its administrator allows.
https://app.bm.consulting/mcp and, if asked, choose OAuth.
ChatGPT does not accept bmc_live_… keys: only signing in with BMC. On ChatGPT Business and Enterprise, an
administrator can create the connection for the whole workspace under Workspace settings › Apps and
publish it. ChatGPT keeps the list of tools the administrator saw when approving it, so the administrator should
connect with the widest role the team will use.
It works on every Claude subscription. On Claude Free you can add one custom connector. On Claude Team and Enterprise an Owner adds it and each person connects with their own account.
https://app.bm.consulting/mcp. If asked for the OAuth client, choose Register automatically.On Claude Team and Enterprise, the Owner adds it under Organization settings › Connectors (Add › Custom, type Web, same address) and each person clicks Connect under Customize › Connectors. Connectors on your account also appear in Claude Desktop.
It is the same for ChatGPT, Claude and any client that uses OAuth:
The connection appears under Developers › API & MCP, tab Credentials, as a credential of type MCP. Roles and expiry in detail under MCP server.
The clients in this section connect to the BMC MCP server (https://app.bm.consulting/mcp) with a bmc_live_…
token in the Authorization: Bearer header, or to the REST API (https://app.bm.consulting/api/v1). With a token:
BMC_TOKEN in the examples), never in code.Signing in with BMC: add the server and, inside Claude Code, run /mcp, choose bmc and click Authenticate.
claude mcp add --transport http bmc https://app.bm.consulting/mcp With a token:
claude mcp add --transport http bmc https://app.bm.consulting/mcp \
--header "Authorization: Bearer $BMC_TOKEN" With a token:
gemini mcp add --transport http \
--header "Authorization: Bearer $BMC_TOKEN" bmc https://app.bm.consulting/mcp Signing in with BMC (needs a browser on the same machine):
gemini mcp add --transport http bmc https://app.bm.consulting/mcp
# then, inside Gemini CLI:
/mcp auth bmc
Add BMC to ~/.cursor/mcp.json (for all your projects) or to .cursor/mcp.json (for one) and set
the BMC_TOKEN environment variable:
{
"mcpServers": {
"bmc": {
"url": "https://app.bm.consulting/mcp",
"headers": { "Authorization": "Bearer ${env:BMC_TOKEN}" }
}
}
} Signing in with BMC (OAuth) from Cursor does not work yet: coming soon. Until then, use the token.
For an agent that works on its own, create a dedicated token with the fewest permissions, an expiry and, if it needs to write, no critical actions beyond the essential ones. Python examples:
import os
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model=os.environ["OPENAI_MODEL"],
input="Which sales invoices did we issue in September?",
tools=[{
"type": "mcp",
"server_label": "bmc",
"server_url": "https://app.bm.consulting/mcp",
"authorization": os.environ["BMC_TOKEN"], # bmc_live_…, without "Bearer"
"require_approval": "never", # only with a read-only token
}],
)
print(resp.output_text) import asyncio
import os
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
async with MCPServerStreamableHttp(
name="BMC",
params={
"url": "https://app.bm.consulting/mcp",
"headers": {"Authorization": f"Bearer {os.environ['BMC_TOKEN']}"},
},
) as bmc:
agent = Agent(
name="Assistant",
instructions="Use the BMC tools to answer.",
mcp_servers=[bmc],
)
result = await Runner.run(agent, "Which sales invoices did we issue in September?")
print(result.final_output)
asyncio.run(main()) import os
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model=os.environ["ANTHROPIC_MODEL"],
max_tokens=1024,
messages=[{"role": "user", "content": "Which sales invoices did we issue in September?"}],
mcp_servers=[{
"type": "url",
"url": "https://app.bm.consulting/mcp",
"name": "bmc",
"authorization_token": os.environ["BMC_TOKEN"],
}],
tools=[{"type": "mcp_toolset", "mcp_server_name": "bmc"}],
betas=["mcp-client-2025-11-20"],
)
print(response.content) If your agent does not speak MCP, use the REST API with the same token: the OpenAPI contract is at https://app.bm.consulting/api/v1/openapi/client and the operations are in the API reference.
An automation with BMC has two parts:
Authorization: Bearer header and your token:
GET https://app.bm.consulting/api/v1/billing?limit=50
Authorization: Bearer bmc_live_… https://app.bm.consulting/mcp with the token as Bearer.
Microsoft Copilot Studio, Microsoft 365 Copilot and Gemini Enterprise cannot connect to BMC yet, nor can Cursor by signing in with BMC. If you need them, write to plataforma@bm.consulting.
| Symptom | What to do |
|---|---|
| You do not see the Developers section in the client area, or your company is not listed when you authorise. | API access is not enabled for that company, or you are neither holder nor administrator. Write to plataforma@bm.consulting. |
| The assistant connects but shows no tools. | The role or the permissions open none. Check the connection or the token under Credentials. |
With a token, the client says it is not valid (invalid_token). | The token has an allowed-IP list, is turned off or revoked, or has expired. Empty the list or create another one. |
| ChatGPT or Claude stop seeing BMC after a while. | Connect again from the assistant. If you set a short expiry, choose a longer one. |
If the problem persists, write to plataforma@bm.consulting with the assistant's name and the time of the attempt.