bitrefill-mcp-server
A Model Context Protocol Server connector for Bitrefill public API, to enable AI agents to search and shop on Bitrefill.
Documentation
Bitrefill MCP Server (Sample Implementation)
> This is a sample / reference implementation. For production use, connect to the official hosted Bitrefill eCommerce MCP at `https://api.bitrefill.com/mcp` instead. It is maintained by Bitrefill, supports OAuth, and exposes the same tools without you having to run, deploy, or update anything.
>
> Use this repository if you want to learn how a Bitrefill MCP can be built, fork it, extend it, or self-host a customized variant on top of the Bitrefill API v2.
This server wraps the Bitrefill API v2 (`https://api.bitrefill.com/v2`) using `Authorization: Bearer ${BITREFILL_API_KEY}`. Only request parameters are validated with Zod; API responses are returned as JSON text unchanged.
Use the official remote MCP (recommended for production)
The Bitrefill eCommerce MCP is hosted by Bitrefill and is the recommended way to integrate with ChatGPT, Claude Desktop / Code, Cursor, and any other MCP-compatible client.
- OAuth (recommended). Point your client at:
https://api.bitrefill.com/mcpYou'll be redirected to Bitrefill to sign in and authorize access. No API key handling required.
- API key. Append your key from bitrefill.com/account/developers:
https://api.bitrefill.com/mcp/YOUR_API_KEYSetup guides per client: ChatGPT, Claude Desktop, Claude Code, Cursor.
When to use this repo instead
Run this local MCP only if you need to:
- Study a working reference implementation of a Bitrefill MCP server.
- Fork it to add custom tools, prompts, validation, logging, or routing.
- Self-host inside a private network or air-gapped environment.
- Experiment with a wider set of v2 endpoints (this sample exposes 18 tools, while the official remote MCP intentionally exposes a curated set of 7; see eCommerce MCP).
For everyday "buy gift cards / eSIMs from my AI assistant" use cases, prefer the hosted server above.
Configuration
1. Create an API key: Bitrefill account → Developers.
2. Set in the environment (or `.env` for local runs):
BITREFILL_API_KEY=your_api_key_hereIf `BITREFILL_API_KEY` is missing, no tools are registered (v2 requires authentication even for `ping`).
Tools (v1.0.0)
| Tool | API |
|---|---|
| `search-products` | `GET /products/search` (with `q`) or `GET /products` (browse) |
| `product-details` | `GET /products/{id}` |
| `buy-products` | `POST /invoices` |
| `get-invoice-by-id` | `GET /invoices/{id}` |
| `get-order-by-id` | `GET /orders/{id}` |
| `list-invoices` | `GET /invoices` |
| `list-orders` | `GET /orders` |
| `pay-invoice` | `POST /invoices/{id}/pay` |
| `get-account-balance` | `GET /accounts/balance` |
| `check-phone-number` | `GET /check_phone_number` |
| `ping` | `GET /ping` |
| `list-esim-products` | `GET /products/esims` |
| `get-esim-product` | `GET /products/esims/{id}` |
| `create-esim-invoice` | `POST /esims` |
| `get-esim-invoice` | `GET /esims/invoice/{id}` |
| `pay-esim-invoice` | `POST /esims/invoice/{id}/pay` |
| `list-esims` | `GET /esims` |
| `get-esim` | `GET /esims/{id}` |
Breaking change vs 0.x: old snake_case tool names (`search`, `create_invoice`, `unseal_order`, ...) were removed. Use the names above. There is no `unseal_order` in v2; `GET /orders/{id}` returns `redemption_info` when delivered.
Resources
- `bitrefill://payment-methods`: allowed `payment_method` strings for `buy-products` / `create-esim-invoice`
- `bitrefill://category-slugs`: B2B `category` query values for product list/search
- `bitrefill://product-types`: product family keys
- `bitrefill://product-types/{productType}`: category slugs per family
Project layout
src/
index.ts
types/api.ts # Optional TS shapes for API JSON (not validated at runtime)
constants/ # payment_method list, category slugs
handlers/ # resources.ts, tools.ts
schemas/ # Zod: inputs only
services/ # API calls (search, products, invoices, orders, esims, misc)
utils/api/ # base (BitrefillApiError), authenticated (Bearer v2)Development
pnpm install
pnpm run build
pnpm run typecheck
pnpm run lintSmoke tests (this repo’s MCP only)
Smoke tests always start this package’s server (`node build/index.js` after `pnpm run build`). They do not open `https://api.bitrefill.com/mcp` or any other remote MCP URL.
Recommended: MCP client in-process (stdio to `build/index.js`):
pnpm run build
pnpm run smokeSame as `pnpm run test-services` (alias).
Optional: MCP Inspector CLI, still only against this server:
pnpm run build
pnpm run smoke:inspectorAll 18 tools (Inspector CLI, summary lines, dummy ids on purpose):
pnpm run test:inspector:all-toolsThe Inspector uses `--tool-arg key=value` (repeat for multiple keys), not a single JSON blob. For nested data, use JSON in the value, e.g.
`--tool-arg 'products=[{"product_id":"x","value":10}]'`.
Interactive UI (local server only):
pnpm run build
pnpm run inspectorExamples:
pnpm dlx @modelcontextprotocol/inspector node build/index.js --cli --method tools/call --tool-name ping
pnpm dlx @modelcontextprotocol/inspector node build/index.js --cli --method tools/call --tool-name product-details --tool-arg id=test-gift-card-codeClient examples (self-hosted sample)
> Reminder: for production, prefer the hosted `https://api.bitrefill.com/mcp` (OAuth) over the stdio config below.
Cursor / Claude-style MCP config, pass the key in `env`:
{
"mcpServers": {
"bitrefill": {
"command": "npx",
"args": ["-y", "bitrefill-mcp-server"],
"env": {
"BITREFILL_API_KEY": "your_api_key_here"
}
}
}
}Docker, e.g. `-e BITREFILL_API_KEY=...` or `--env-file .env`.
Hosted remote MCP (no install, recommended):
{
"mcpServers": {
"bitrefill": {
"url": "https://api.bitrefill.com/mcp"
}
}
}Documentation
- Bitrefill docs (llms index)
- Bitrefill eCommerce MCP (hosted): official remote server, recommended for production
- Setup guides: ChatGPT, Claude, Cursor
License
MIT
Frequently asked questions
What is bitrefill-mcp-server?
bitrefill-mcp-server is A Model Context Protocol Server connector for Bitrefill public API, to enable AI agents to search and shop on Bitrefill.
How do I install bitrefill-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is bitrefill-mcp-server open source?
Yes — it is hosted on GitHub at https://github.com/bitrefill/bitrefill-mcp-server and has 5 stars.
Related MCP tools
🐬DeepChat - A smart assistant that connects powerful AI to your personal world for the Model Context Protocol. Enhance AI assistants with powerful integrations
A Model Context Protocol server that executes commands in the current iTerm session - useful for REPL and CLI assistance
An MCP server for Azure DevOps TypeScript-based implementation.
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini...
FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, ...
📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Lan...
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP