Bitrefill MCP Server
Allows searching for and purchasing Amazon gift cards through Bitrefill.
Enables search and purchase of AT&T mobile topups and gift cards.
Provides Bitcoin as a payment method for purchasing products via invoices.
Offers Lightning Network payments for instant invoice settlement.
Supports searching for and buying Netflix gift cards via Bitrefill.
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., "@Bitrefill MCP Serversearch for Netflix gift cards"
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.
Bitrefill MCP Server
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.
How It Works
The server operates using the Model Context Protocol (MCP) to communicate with Claude and similar AI assistants. It:
Runs as a standalone process using stdio for communication
Registers resources and tools for accessing Bitrefill services
Interfaces with the Bitrefill API to provide product search and details
Returns structured JSON responses that can be processed by AI assistants
Architecture
The app server follows this architecture:
src/
├── index.ts # Main entry point
├── constants/ # Static data
│ ├── categories.ts # Product categories
│ └── payment_methods.ts # Payment methods
├── handlers/ # MCP request handlers
│ ├── resources.ts # Resource endpoints
│ └── tools.ts # Tool implementations
├── schemas/ # Data validation schemas
│ ├── detail.ts # Product detail response types
│ ├── invoice.ts # Invoice schemas
│ ├── misc.ts # Miscellaneous schemas
│ ├── order.ts # Order schemas
│ └── search.ts # Search parameters and response types
├── services/ # API services
│ ├── invoices.ts # Invoice service
│ ├── misc.ts # Miscellaneous services
│ ├── orders.ts # Order services
│ ├── products.ts # Product details service
│ └── search.ts # Search functionality
└── utils/ # Utility functions
├── index.ts # Error logging, etc.
└── api/ # API clients
├── authenticated.ts # Authenticated API client
├── base.ts # Base API client
└── public.ts # Public API clientRelated MCP server: MCP Bitnovo Pay
Features
Resources
bitrefill://product-types- List of available product types on Bitrefillbitrefill://categories/{type}- List of available categories for a specific product type (e.g.,bitrefill://categories/gift-cards)
Tools
search- Search for gift cards, esims, mobile topups and moreRequired:
query(e.g., 'Amazon', 'Netflix', 'AT&T' or '*' for all)Optional:
country,language,limit,skip,category
detail- Get detailed information about a productRequired:
id(product identifier)
categories- Get the full product type/categories mapNo required parameters
create_invoice- Create a new invoice for purchasing products (requires API key)Required:
products(array of products to include in the invoice)Each product requires:
product_idOptional product fields:
quantity,value,package_id,phone_number,email,send_email,send_sms
Required:
payment_method(one of: "balance", "bitcoin", "lightning")Optional:
webhook_url,auto_pay
get_invoices- Retrieve a list of invoices with optional filteringOptional:
start,limit,after,before
get_invoice- Retrieve details for a specific invoice by IDRequired:
id(invoice identifier)
pay_invoice- Pay an unpaid invoice (only works with 'balance' payment method)Required:
id(invoice identifier)
get_orders- Retrieve a list of orders with optional filteringOptional:
start,limit,after,before
get_order- Retrieve details for a specific order by IDRequired:
id(order identifier)
unseal_order- Reveal codes and PINs for a specific order by IDRequired:
id(order identifier)
get_account_balance- Retrieve your account balanceNo required parameters
ping- Check if the Bitrefill API is availableNo required parameters
Configuration
API Key Setup
To use the all the tools that rely on the Bitrefill API except for search, categories and detail, you need to set up Bitrefill API credentials:
Create a Bitrefill account
Ask for a developer API key by filing a request on this form
Create a
.envfile in the root directory (you can copy from.env.example)Add your Bitrefill API credentials:
BITREFILL_API_SECRET=your_api_key_here BITREFILL_API_ID=your_api_id_here
The create_invoice tool will only be available if the API credentials are set. If the API credentials are not set, the tool will not be registered and won't appear in the list of available tools.
Development
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchDebugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspectorThe Inspector will provide a URL to access debugging tools in your browser.
Installation
Installing via Smithery
To install Bitrefill for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @bitrefill/bitrefill-mcp-server --client claudeClaude Desktop
Add the server config at:
MacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"bitrefill": {
"command": "npx",
"args": ["-y", "bitrefill-mcp-server"],
"env": {
"BITREFILL_API_SECRET": "your_api_key_here",
"BITREFILL_API_ID": "your_api_id_here"
}
}
}
}Cline
Open the Cline extension settings
Open "MCP Servers" tab
Click on "Configure MCP Servers"
Add the server config:
{
"mcpServers": {
"github.com/bitrefill/bitrefill-mcp-server": {
"command": "npx",
"args": ["-y", "bitrefill-mcp-server"],
"disabled": false,
"autoApprove": ["search", "detail", "categories"],
"env": {
"BITREFILL_API_ID": "your_api_id_here",
"BITREFILL_API_SECRET": "your_api_key_here"
}
}
}
}Additional Cline configuration options:
disabled: Set tofalseto enable the serverautoApprove: List of tools that don't require explicit approval for each use
Cursor
Open the Cursor settings
Open "Features" settings
In the "MCP Servers" section, click on "Add new MCP Server"
Choose a name, and select "command" as "Type"
In the "Command" field, enter the following:
npx -y bitrefill-mcp-server(Optional) If you're using the
create_invoicetool, add environment variables:BITREFILL_API_SECRET: your_api_key_here
BITREFILL_API_ID: your_api_id_here
Docker
You can also run the server using Docker. First, build the image:
docker build -t bitrefill-mcp-server .Then run the container:
docker run -e BITREFILL_API_SECRET=your_api_key_here -e BITREFILL_API_ID=your_api_id_here bitrefill-mcp-serverFor development, you might want to mount your source code as a volume:
docker run -v $(pwd):/app --env-file .env bitrefill-mcp-serverAvailable Tools
12 toolscategoriesA
Get the full product type/categories map. It's suggested to use this tool to get the categories and then use the search tool to search for products in a specific category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool returns a map but does not disclose any behavioral traits such as read-only, idempotency, or potential side effects. For a simple retrieval, this is minimal but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences. The first states purpose, the second gives usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description is fairly complete. It tells what it does and how to use it with a sibling tool. However, it could describe the structure of the returned map.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%. According to guidelines, baseline for 0 parameters is 4. The description adds no parameter info (none needed), so it meets baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the full product type/categories map, using a specific verb 'Get' and a specific resource. It also distinguishes from sibling tools by suggesting use with 'search' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly suggests using this tool first to get categories, then using 'search' for products in a specific category, providing clear context. However, it does not explicitly state when not to use this tool, but its purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoiceB
Create a new invoice for purchasing products with various payment methods
| Name | Required | Description | Default |
|---|---|---|---|
| auto_pay | No | Optional: Automatically pay with balance | |
| products | Yes | Array of products to include in the invoice | |
| webhook_url | No | Optional: URL for webhook notifications | |
| payment_method | Yes | Required payment method. Available methods: balance, lightning, bitcoin, eth_base, usdc_base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Create a new invoice' but discloses no behavioral traits such as idempotency, side effects, auth needs, or what happens after creation (e.g., payment processing). The description is too sparse for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, no output schema, and no annotations. The description fails to explain return values, error handling, or example usage. For a creation tool with complex nested parameters, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; 'various payment methods' is already detailed in the enum. No additional parameter context provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new invoice for purchasing products', which is a specific verb+resource. It distinguishes from sibling tools like get_invoice and pay_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating invoices but provides no explicit guidance on when to use this tool versus alternatives such as pay_invoice or get_invoice. No when-not or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detailB
Get detailed information about a product
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique identifier of the product |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose behavior beyond the basic action—no mention of error handling, authentication requirements, or what 'detailed information' includes. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is maximally concise and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter and no output schema, the description is minimally adequate. However, it is vague about what 'detailed information' entails, leaving ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no parameter-specific information beyond what the schema already provides. The schema already describes 'id' as a unique identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('product'), but does not differentiate from sibling tools like 'get_order' or 'get_invoice' which also retrieve details. The name 'detail' is generic, but the description specifies 'product', making it moderately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. For example, it does not explain how 'detail' differs from 'search' or 'get_invoice' for retrieving product information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_balanceA
Retrieve your account balance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing any behavioral traits such as side effects, authentication requirements, or rate limits. For a read operation, the description is minimal and does not add value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is front-loaded and to the point, earning its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal but adequate for a read-only tool with no parameters and no output schema. However, it could be improved by mentioning what is included in the balance (e.g., currency, pending transactions) to provide complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the schema provides all necessary information. According to the rules, 0 parameters yields a baseline of 4. The description does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the account balance, using a specific verb ('Retrieve') and resource ('your account balance'). It distinguishes itself from sibling tools like 'get_invoice' and 'get_order' which deal with different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit when-to-use or alternatives are given, the description is sufficient for the simple task of retrieving a balance. It implicitly suggests usage when the user needs account balance information, and the sibling tools indicate other financial operations, so differentiation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceA
Retrieve details for a specific invoice by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique invoice identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Retrieve details', implying read-only, but lacks details on authorization, rate limits, or return structure. Without output schema, description should hint at returned fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple retrieval tool with one parameter; description is adequate but lacks detail on what 'details' entail, especially with no output schema. Could be more complete for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for parameter 'id'. Description adds no extra meaning beyond schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Retrieve', resource 'invoice', and method 'by ID'. Distinguished from sibling 'get_invoices' (plural) which implies a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use when you have an invoice ID. No explicit when-to-use or alternatives mentioned, but name and sibling context provide indirect guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoicesC
Retrieve a list of invoices with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Start date for limiting results (Inclusive). Format: YYYY-MM-DD HH:MM:SS | |
| limit | No | Maximum number of records. Maximum/Default: 50 | |
| start | No | Start index. Default: 0 | |
| before | No | End date for limiting results (Non-Inclusive). Format: YYYY-MM-DD HH:MM:SS |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'retrieve a list of invoices' without disclosing read-only nature, response format, or any side effects. The schema covers parameters but not behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the core purpose. It is efficient but could benefit from slight expansion to include pagination context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description provides only the essential purpose. It implies a list of invoices but omits details on response format, pagination behavior, and safety considerations. The schema covers parameters, but overall completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no meaning beyond the schema, merely stating 'optional filtering' without explaining parameter usage or relationships (e.g., date range for after/before, pagination for limit/start).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of invoices with optional filtering. It distinguishes from sibling 'get_invoice' (singular) but does not explicitly mention other listing tools like 'get_orders'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_invoice' for a single invoice. The description lacks context on prerequisites or filtering behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderB
Retrieve details for a specific order by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique order identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the operation. It does not disclose auth requirements, side effects, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, but could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval, it lacks context about return values, included fields, or any limitations; no output schema to fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes the 'id' parameter as 'Unique order identifier'; description adds no extra meaning beyond 'by ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Retrieve', resource 'order details', and identifier 'by ID', distinguishing it from siblings like 'get_orders'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'detail' or 'get_orders'; no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersB
Retrieve a list of orders with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Start date for limiting results (Inclusive). Format: YYYY-MM-DD HH:MM:SS | |
| limit | No | Maximum number of records. Maximum/Default: 50 | |
| start | No | Start index. Default: 0 | |
| before | No | End date for limiting results (Non-Inclusive). Format: YYYY-MM-DD HH:MM:SS |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so the description must disclose behaviors. It only says 'retrieve', which implies read-only, but does not mention pagination, sorting, or any side effects. Schema provides some constraints but description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. All words are necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal for a list tool with no output schema. Could specify default sort order or response format. Adequate but not complete given sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description's 'optional filtering' adds no new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Retrieve a list of orders'. It mentions optional filtering, which distinguishes it from 'get_order' (single order) but not from 'search' (which may offer more complex queries).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like 'search' or 'get_order'. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pay_invoiceA
Pay an unpaid invoice (only works with 'balance' payment method)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique invoice identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It reveals that the tool is a mutating action (pay) and the payment method constraint, but lacks details on idempotency, error states, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the action and a critical constraint with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential function and constraint. It lacks details on return value or side effects, but the context signals indicate low complexity, making it mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the 'id' parameter. The tool description adds no additional parameter information, so it meets the baseline without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action 'pay' on resource 'invoice', and adds the key constraint that it only works with 'balance' payment method, distinguishing from other invoice operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear usage condition (only works with 'balance' method), but does not explicitly mention when not to use or suggest alternatives like other payment methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Check if the Bitrefill API is available
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a non-destructive health check, but with no annotations, it lacks details about the response format (e.g., boolean or status object). The behavioral intent is clear but not fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, straightforward sentence with no unnecessary words. Perfectly concise for the tool's trivial scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health-check tool with no parameters or output schema, the description is nearly complete. It could mention the expected return type, but the current description is sufficient for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100% by default. The description adds no parameter info, which is acceptable given no parameters exist. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('check') and resource ('Bitrefill API availability'), clearly distinguishing it from sibling tools that deal with categories, invoices, orders, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search or get_order. The description does not mention prerequisites or the tool's role in a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Search for gift cards, esims, mobile topups and more. It's suggested to use the categories tool before searching for products, to have a better understanding of what's available.
| Name | Required | Description | Default |
|---|---|---|---|
| col | No | Column layout parameter | |
| rec | No | Recommendation parameter | |
| sec | No | Security parameter | |
| src | No | Source of the request | |
| cart | No | Cart identifier | |
| skip | No | Number of results to skip (for pagination) | |
| limit | No | Maximum number of results to return | |
| query | Yes | Search query (e.g., 'Amazon', 'Netflix', 'AT&T' or '*' for all the available products) | |
| prefcc | No | Preferred country code parameter | |
| country | No | Country code (e.g., 'US', 'IT', 'GB') | |
| category | No | Filter by category (e.g., 'gaming', 'entertainment') | |
| language | No | Language code for results (e.g., 'en') | |
| beta_flags | No | Beta feature flags | |
| do_recommend | No | Enable recommendations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states it 'searches' but omits details like pagination, result format, or any side effects. The security and recommendation parameters are not explained in context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool's purpose. Every sentence is useful, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no output schema, and no annotations, the description is minimal. It suggests using categories first but fails to cover pagination, filters, or result handling, leaving significant gaps for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it only implies the query parameter. No enrichment of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for gift cards, esims, mobile topups, and more. However, it does not explicitly differentiate from sibling tools like 'categories' or 'detail', though it suggests using categories first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance to use the 'categories' tool before searching for better understanding. Does not mention when not to use this tool or alternatives for different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unseal_orderB
Reveal codes and PINs for a specific order by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique order identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Reveal' but does not disclose potential side effects, access restrictions, logging implications, or whether this is a read-only operation. For a tool that exposes sensitive data, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no waste. It is appropriately front-loaded and efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so the description should explain the return format. It only mentions 'codes and PINs' without structure or error handling. For a sensitive operation involving revealing data, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'id', which is described as 'Unique order identifier'. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reveal'), the resource ('codes and PINs for a specific order'), and the parameter ('by ID'). It distinguishes from siblings like get_order which likely returns general order info without sensitive codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_order or detail. No prerequisites, exclusions, or context about sensitivity are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v0.3.0- First observed
categories - First observed
create_invoice - First observed
detail - First observed
get_account_balance - First observed
get_invoice - First observed
get_invoices - First observed
get_order - First observed
get_orders - First observed
pay_invoice - First observed
ping - First observed
search - First observed
unseal_order
TDQS
Each tool targets a distinct operation: browsing categories, searching products, getting details, managing invoices and orders, checking balance, and pinging. No two tools overlap in purpose.
Most tools follow a verb_noun pattern (e.g., create_invoice, get_invoice, pay_invoice), but 'categories', 'detail', and 'ping' deviate slightly. Overall, names are understandable and predictable.
12 tools cover the core workflow of a purchase platform without being excessive. Each tool serves a clear role, and the count is well-scoped for the domain.
The tool set covers the full purchase lifecycle: browsing, product details, account balance, invoicing, payment, order retrieval, and order fulfillment. Minor gaps like cancellation or refund are absent but not critical for typical use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
1Let AI agents add Yolfi crypto checkout, paylinks, webhooks, and status checks.
Non-custodial crypto payments for AI assistants: balances, payments, and create payment links.
Directory of APIs, merchants, and tools AI agents can actually use.
Related MCP Servers
- AlicenseAqualityDmaintenanceThis MCP wraps Bitrefill public API to allow agents to search for products and shop using cryptocurrencies like Bitcoin, Ethereum, Solana, and many more.322MIT

MCP Bitnovo Payofficial
AlicenseAqualityCmaintenanceEnables AI agents to create cryptocurrency payments, check payment status, generate QR codes, and manage transactions through Bitnovo Pay API integration with automatic webhook support.5194MIT
LNbits MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage Lightning wallets through LNbits, including balance checks, invoice creation, payments, and extension operations, all via natural language.7MIT
Blink MCP Serverofficial
AlicenseBqualityCmaintenanceEnables AI assistants to interact with the Blink Bitcoin and Lightning Network API for managing wallets, payments, invoices, and L402 services.55171MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/mcpflow/bitrefill-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server