A Model Context Protocol Server connector for Bitrefill public API, to enable AI agents to search and shop on Bitrefill.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"bitrefill": {
"env": {
"BITREFILL_API_KEY": "your_api_key_here"
},
"args": [
"-y",
"bitrefill-mcp-server"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A TypeScript-based MCP server that provides access to Bitrefill services, allowing you to search for gift cards, mobile topups, and more. This server implements the Model Context Protocol to expose Bitrefill functionality to AI assistants.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
Five weighted categories — click any category to see the underlying evidence.
pnpm has Path Traversal via arbitrary file permission modification
### Summary When pnpm processes a package's `directories.bin` field, it uses `path.join()` without validating the result stays within the package root. A malicious npm package can specify `"directories": {"bin": "../../../../tmp"}` to escape the package directory, causing pnpm to chmod 755 files at arbitrary locations. **Note:** Only affects Unix/Linux/macOS. Windows is not affected (`fixBin` gated by `EXECUTABLE_SHEBANG_SUPPORTED`). ### Details Vulnerable code in `pkg-manager/package-bins/src
pnpm: Binary ZIP extraction allows arbitrary file write via path traversal (Zip Slip)
### Summary A path traversal vulnerability in pnpm's binary fetcher allows malicious packages to write files outside the intended extraction directory. The vulnerability has two attack vectors: (1) Malicious ZIP entries containing `../` or absolute paths that escape the extraction root via AdmZip's `extractAllTo`, and (2) The `BinaryResolution.prefix` field is concatenated into the extraction path without validation, allowing a crafted prefix like `../../evil` to redirect extracted files outsid
pnpm has Windows-specific tarball Path Traversal
### Summary A path traversal vulnerability in pnpm's tarball extraction allows malicious packages to write files outside the package directory on Windows. The path normalization only checks for `./` but not `.\`. On Windows, backslashes are directory separators, enabling path traversal. **This vulnerability is Windows-only.** ### Details **1. Incomplete Path Normalization (`store/cafs/src/parseTarball.ts:107-110`)** ```typescript if (fileName.includes('./')) { fileName = path.posix.join('/'
pnpm scoped bin name Path Traversal allows arbitrary file creation outside node_modules/.bin
### Summary A path traversal vulnerability in pnpm's bin linking allows malicious npm packages to create executable shims or symlinks outside of `node_modules/.bin`. Bin names starting with `@` bypass validation, and after scope normalization, path traversal sequences like `../../` remain intact. ### Details The vulnerability exists in the bin name validation and normalization logic: **1. Validation Bypass (`pkg-manager/package-bins/src/index.ts`)** The filter allows any bin name starting wit
pnpm has symlink traversal in file:/git dependencies
### Summary When pnpm installs a `file:` (directory) or `git:` dependency, it follows symlinks and reads their target contents without constraining them to the package root. A malicious package containing a symlink to an absolute path (e.g., `/etc/passwd`, `~/.ssh/id_rsa`) causes pnpm to copy that file's contents into `node_modules`, leaking local data. **Preconditions:** Only affects `file:` and `git:` dependencies. Registry packages (npm) have symlinks stripped during publish and are NOT affe
Click any tool to inspect its schema.
payment-methodsAllowed payment_method strings for buy-products and create-esim-invoice
bitrefill://payment-methods
category-slugsB2B category query values for product list/search
bitrefill://category-slugs
product-typesProduct family keys
bitrefill://product-types
product-types-categoriesCategory slugs per product family
bitrefill://product-types/{productType}
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in finance / ecommerce
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
A Model Context Protocol server for building an investor agent
AI agents get on-chain identity, credentials, reputation, escrow, and persistent memory on XRPL.
Remote MCP server to integrate and validate self-hosted PayRam deployments.
MCP Security Weekly
Get CVE alerts and security updates for Bitrefill Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
This is a sample / reference implementation. For production use, connect to the official hosted Bitrefill eCommerce MCP at
https://api.bitrefill.com/mcpinstead. 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.
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/mcp
You'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_KEY
Setup guides per client: ChatGPT, Claude Desktop, Claude Code, Cursor.
Run this local MCP only if you need to:
For everyday "buy gift cards / eSIMs from my AI assistant" use cases, prefer the hosted server above.
.env for local runs):BITREFILL_API_KEY=your_api_key_here
If BITREFILL_API_KEY is missing, no tools are registered (v2 requires authentication even for ping).
| 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.
bitrefill://payment-methods: allowed payment_method strings for buy-products / create-esim-invoicebitrefill://category-slugs: B2B category