Source: https://billingmart.com/developers/mcp # The same API, as tools an assistant can call Every tool is a REST v1 call under the connecting person’s grant. Anything that sends or moves money becomes a request, and the connection’s mode — Ask, Plan or Auto — decides who approves it. [API reference](https://billingmart.com/developers/api) [OpenAPI document](https://api.billingmart.com/v1/openapi.json) MCP server ## The rules, in order 01 ## The endpoint `https://api.billingmart.com/mcp` speaks Streamable HTTP, statelessly, protocol 2025-06-18 or later. It authenticates with the OAuth grant described in [Authentication](https://billingmart.com/developers/authentication#oauth) . A request without a token gets `401` with a pointer to the discovery document. 02 ## Tools come from the registry A connection given every scope an assistant may hold is offered 318 tools: the API operations under their tool names, plus search and fetch. An operation’s tool name is the reference’s “MCP tool” line. Each tool is a REST v1 call made with the connecting person’s grant; the MCP server never reads a workspace’s data any other way. What each kind of tool may do | Effect | Annotation | What happens | | --- | --- | --- | | read | readOnlyHint | Returns data. Contact details stay masked without contacts:read. | | write | — | Creates or edits a draft or a record. Nothing reaches a customer. | | irreversible | destructiveHint | Files a request. A person approves it, or the owner’s Auto rule does for the kinds it may cover. | 03 ## The tool list follows the grant `tools/list` is built from the live grant: its scopes, the person’s role today and the mode. A read-only connection lists no write tools. In Plan, the connection lists read tools only; a write or action you call anyway runs as a dry run and answers `planned` — nothing is saved, sent or charged. Narrow a grant in the console and the next list is shorter, with the same token. 04 ## Ask, Plan and Auto Connection modes | Mode | Who sets it | What a request does | | --- | --- | --- | | Ask | the person connecting (default) | waits for a signed-in person to approve | | Plan | the person connecting | dry run: shows what would happen, runs nothing | | Auto | the workspace owner only, with MFA | runs at once if the owner’s capped rule matches it | For a connected assistant, refunds, voids, credit notes, write-offs, card or bank entry, autopay, merges, anything the assistant wrote itself, deleting a workspace, a webhook or a template or theme draft, and every admin kind always need a person, whatever the rule says. That list is in code, not in a setting. The owner’s rule can cover only a short, closed list of kinds for a connection: sending an invoice or an estimate, sending a reminder that carries no text of its own, capturing a payment with no amount override, renewing a pay link that has expired or been revoked, and deleting a time, expense or mileage entry that is unbilled and was created by that same connection. Opening a bill and billing unbilled work always wait for a person. Every other kind waits for a person too. 05 ## Tenant text is marked as data A client can call themselves “ignore your instructions”. Every tenant-supplied string comes back inside an explicit untrusted-data envelope, and tool descriptions never carry tenant data. 06 ## Connecting an assistant The step-by-step pages are on [Assistants](https://billingmart.com/agents) and [MCP](https://billingmart.com/mcp) . If you would rather not connect anything, the [BillingMart Agent](https://billingmart.com/agent) will run the same tools inside the console. 07 ## Install the BillingMart skill The BillingMart Agent Skill tells an assistant how this server works before it connects: the endpoint, the modes and where the live plans are read. It ships from one source through each channel below, and `/agent-info.json` lists the same channels under `skill`. ### Agent Skills index (npx skills) [https://billingmart.com/.well-known/agent-skills/index.json](https://billingmart.com/.well-known/agent-skills/index.json) 1. `npx skills add https://billingmart.com` A draft discovery convention (agent-skills discovery v0.2.0), not a standard. Installing from it with npx skills has not been verified yet. Each entry carries the sha256 of the file it names. ### Claude Code plugin marketplace [https://billingmart.com/claude-plugin/marketplace.json](https://billingmart.com/claude-plugin/marketplace.json) 1. `/plugin marketplace add https://billingmart.com/claude-plugin/marketplace.json` 2. `/plugin install billingmart@billingmart` The plugin carries the skill and the MCP server at https://api.billingmart.com/mcp. ### ZIP for claude.ai [https://billingmart.com/skills/billingmart.zip](https://billingmart.com/skills/billingmart.zip) Download the ZIP and upload it to claude.ai as a skill. It holds the same files as the index. ### Public GitHub mirror No public address yet. Not published yet: there is no repository until the owner creates one. Next guide ## Connect an assistant Claude and Claude Code, ChatGPT with a custom connector, Gemini Enterprise, Gemini Business and the Gemini CLI. Each page says which steps we have run against the platform and which we have not. [Continue to Connect an assistant →](https://billingmart.com/developers/connect) ## Try it in your sandbox A bmk_test_ key reaches only your sandbox workspace. [Start free](https://app.billingmart.com/sign-up) [All guides](https://billingmart.com/developers) --- This is the Markdown copy of https://billingmart.com/developers/mcp. Live plans, prices and limits are published as JSON at https://billingmart.com/plans.json and https://billingmart.com/agent-info.json.