billforward-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@billforward-mcpget customer summary for john@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Billforward MCP Server ๐
A high-performance Model Context Protocol (MCP) server for integrating Billforward's robust billing and subscription management API with LLMs.
๐ 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.
Related MCP server: QuickFile MCP Server
๐ 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 |
|
| Sets the target API. Change to |
|
| When true, POST/PUT actions return instructional error messages to the LLM preventing data mutation. |
|
| Base URL used when environment is production. |
|
| Base URL used when environment is sandbox. |
|
| The default number of results parsed per paginated tool response. |
|
| The hard limit cap on how many records the LLM can ask for per tool call. |
|
| 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 Accounts, Subscriptions, and Invoices 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/created_before).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,period_start_after/period_start_beforeโ Billforward has no native filter on subscription creation date, so this filters by billing period start instead).get-subscription: Retrieve full details for a specific UUID.
๐งพ Invoices & Payments
list-invoices/get-invoice: Fetch invoices and draft details.list-invoicessupportsperiod_start_after/period_start_before(same caveat as subscriptions โ no native created-date filter exists). Unlike accounts/subscriptions, Billforward doesn't embed invoicemetadatain the base payload โget-invoicealways fetches it from the dedicated metadata sub-resource;list-invoicesfetches it per-invoice only whenincludeMetadata=trueis passed (adds one extra API call per invoice, so keeplimitsmall).list-payments/get-payment/list-receipts: Fetch payments, a single payment by ID (including the offline payment justification text in itsdescriptionfield), and receipts.created_after/created_beforeare supported on the list tools but Billforward has no native date filter on these endpoints, so matches are filtered client-side after fetching sorted bycreated.
๐ณ 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 buildTest
pnpm testIncludes a special protocol.test.ts to ensure no third-party package ever leaks logs to the MCP stream again.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GregoriSoria/billforward-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server