billforward-mcp
Enables LLMs to interact with Billforward's billing and subscription management API, providing tools for accounts, subscriptions, invoices, payments, and more with read-only safety by default.
README
Billforward MCP Server ๐
A high-performance Model Context Protocol (MCP) server for integrating Billforward's robust billing and subscription management API with LLMs.
<a href="https://ko-fi.com/gregorisoria" target="_blank"><img height="36" style="border:0px;height:36px;" src="https://storage.ko-fi.com/cdn/kofi2.png?v=3" border="0" alt="Buy Me a Coffee at ko-fi.com" /></a>
๐ Features
- Entity Discovery: Quickly list and inspect Accounts and Subscriptions.
- Protocol Purity: Zero log leakage to
stdout, ensuring 100% reliable JSON-RPC communication. - Security First: Built-in
BILLFORWARD_READ_ONLY=true(default) mode to protect your data with instructional LLM error rejections. - Modern SDK: Uses the latest
@modelcontextprotocol/sdksignatures (registerTool). - Fully Testable: Includes protocol compliance and unit tests via Vitest.
๐ How to Get Your API Token
You need an API token to allow the MCP server to communicate with Billforward.
- Log in to your Billforward environment.
- Navigate to Setup > Personal > API Keys.
- Create a new token and copy it.
Quick Links:
โ๏ธ Configuration
To run this server with npx (local or published):
{
"mcpServers": {
"billforward": {
"command": "npx",
"args": [
"-y",
"billforward-mcp"
],
"env": {
"BILLFORWARD_ACCESS_TOKEN": "your_private_access_token",
"BILLFORWARD_ENVIRONMENT": "sandbox",
"BILLFORWARD_READ_ONLY": "true"
}
}
}
}
Advanced Environment Variables
The server behaves differently depending on these configurations:
| Variable | Default Value | Description |
|---|---|---|
BILLFORWARD_ENVIRONMENT |
sandbox |
Sets the target API. Change to production when ready. |
BILLFORWARD_READ_ONLY |
true |
When true, POST/PUT actions return instructional error messages to the LLM preventing data mutation. |
BILLFORWARD_PRODUCTION_URL |
https://app.billforward.net/v1/ |
Base URL used when environment is production. |
BILLFORWARD_SANDBOX_URL |
https://app-sandbox.billforward.net/v1/ |
Base URL used when environment is sandbox. |
BILLFORWARD_DEFAULT_RESULTS |
10 |
The default number of results parsed per paginated tool response. |
BILLFORWARD_MAX_RESULTS |
200 |
The hard limit cap on how many records the LLM can ask for per tool call. |
BILLFORWARD_TIMEOUT |
15000 |
Fallback timeout in milliseconds before failing a stuck Axios request. |
๐งฐ Available Tools
๏ฟฝ Search & Insights
search: Parallelized unified search across Accounts, Subscriptions, and Invoices using email, ID, or keyword.get-customer-summary: 360-degree dashboard of a customer (profile, subs, recent invoices, dunning status).get-metadata-schema: Analyzes metadata keys in use across your environment to help filter queries.
๏ฟฝ๐ Guidance
help: Get an overview of available entities and usage patterns.get-me: Validate your connection and view profile metadata.
๐ฅ Accounts
list-accounts: Fetch a paginated list of accounts (limit,offset,metadata,created_after).get-account: Retrieve full details for a specific UUID.get-account-by-email: Find an account quickly by its exact email address.
๐ Subscriptions
list-subscriptions: Fetch a paginated list of subscriptions (limit,offset,created_after).get-subscription: Retrieve full details for a specific UUID.
๐งพ Invoices & Payments
list-invoices/get-invoice: Fetch invoices and draft details.list-payments/list-receipts: Fetch payments and their corresponding receipts.
๐ณ Pricing & Catalog
list-products: List the main product lines.list-product-rate-plans: List specific rate plans (the entities that accounts subscribe to).
๐ก Security
Enable Read-Only Mode by ensuring the environment variable BILLFORWARD_READ_ONLY=true is set (it is true by default for safety).
If the LLM attempts to use tools like create-account or update-subscription while Read-Only is active, the operation will be blocked, and the LLM will receive a descriptive error instructing it to inform you that modifications are disabled.
๐งช Development
Build
pnpm run build
Test
pnpm test
Includes a special protocol.test.ts to ensure no third-party package ever leaks logs to the MCP stream again.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.