Bayarcash MCP Server
Enables payment processing through Boost e-wallet as one of the available payment channels in the Bayarcash payment gateway.
Enables payment processing through GrabPay e-wallet as one of the available payment channels in the Bayarcash payment gateway.
Enables payment processing through ShopeePay e-wallet as one of the available payment channels in the Bayarcash payment gateway.
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., "@Bayarcash MCP Servercreate a payment for RM 150 for customer@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.
Bayarcash MCP Server π³
Use AI to manage Bayarcash payments. Create payment links, check transactions, and integrate payment processing using natural language.
Quick Install
Smithery (Easiest):
npx -y @smithery/cli install @webimpianteam/bayarcash-mcp-server --client claudeManual Setup:
Add to your config file (~/.config/claude-code/mcp_settings.json):
{
"mcpServers": {
"bayarcash": {
"command": "node",
"args": ["/path/to/bayarcash-mcp-server/build/index.js"],
"env": {
"BAYARCASH_API_TOKEN": "your_token",
"BAYARCASH_API_SECRET_KEY": "your_secret",
"BAYARCASH_SANDBOX": "true"
}
}
}
}Get your API credentials from https://console.bayar.cash β Settings β API
For detailed usage examples and workflows, see USAGE.md.
Related MCP server: PayArk MCP Server
What You Can Do
Talk to your AI naturally. The AI will guide you through an intelligent workflow:
Smart Payment Creation
"Create a payment for RM 100"The AI will automatically:
Ask if you want to use the email from your last payment (if available)
Show your payment portals and ask which one to use
Show payment channels and ask which one to use
Ask if you want to include a phone number (optional)
Create the payment and store the payment intent ID
Quick Payment Checks
"Check status of that payment"
"Show me the payment I just created"The AI uses the stored payment intent ID to check status.
Smart Transaction Filtering
"Show all transactions"The AI will ask: "Filter by email from last payment: test@example.com?"
More Examples:
"Create payment for RM 50 with portal abc123 using FPX"
"List all successful FPX payments today"
"Find transactions for customer@example.com"
"What payment channels are available?"
"Show me FPX banks"Features
8 Tools Available:
create_payment_intent- Create payment with guided workflowget_payment_intent- Get payment status by payment intent IDget_transaction- Get transaction by IDget_transaction_by_order- Find transaction by order numberlist_transactions- List transactions with smart filteringget_portals- List your payment portalsget_payment_channels- List available payment channels (10 channels)get_fpx_banks- List FPX online banking banks
Payment Channels (by ID):
FPX - Online Banking (20+ banks)
DuitNow - QR payments
Boost - E-wallet
GrabPay - E-wallet
Touch 'n Go - E-wallet
ShopeePay - E-wallet
SPayLater - BNPL
Boost PayFlex - BNPL
QRIS - QR payments
NETS - Card payments
Smart Features:
β Guided payment creation workflow
β Auto-suggests email from last payment
β Auto-suggests filtering by last payment email
β Stores payment intent ID for quick status checks
β Sandbox & production environments
β API v3 support (always latest version)
β Paginated transaction lists with filters
β Input validation (email, phone, amount)
β Comprehensive error handling
β Full TypeScript type safety
Configuration
Environment Variables:
Variable | Required | Default | Description |
| Yes | - | Your API token from console.bayar.cash |
| Yes | - | Your API secret key |
| No |
| Use sandbox (true) or production (false) |
Note: Server always uses API v3 (latest version). No need to specify version.
Use Cases
For Developers:
"Help me integrate Bayarcash in my Laravel app"
"Create a test payment for RM 50"
"Show me payment channels for my portal"For Business:
"Show all successful payments today"
"Find transactions for customer@example.com"
"What's the total revenue from FPX this week?"For more detailed examples and workflows, see USAGE.md.
Troubleshooting
Server not connecting?
Restart your AI client completely
Verify API credentials at https://console.bayar.cash
Check config file path is absolute (not relative)
Run
npm run buildin server directory
Authentication errors?
Ensure
BAYARCASH_SANDBOXmatches your account typeVerify no extra spaces in API token/secret
Try regenerating credentials
Validation errors?
Email must be valid format
Phone numbers must be Malaysian format: 60123456789 (starts with 60)
Amount must be positive with max 2 decimal places
Payment channel must be 1-10
Status codes must be 0-4
Getting API errors?
The server provides detailed error messages for debugging
Check the error message for specific validation failures
Use
get_payment_channelsto see available options
Links
Smithery Marketplace: https://smithery.ai/server/@webimpianteam/bayarcash-mcp-server
Repository: https://github.com/webimpianteam/bayarcash-mcp-server
Bayarcash: https://bayar.cash
MCP Docs: https://modelcontextprotocol.io
Issues: https://github.com/webimpianteam/bayarcash-mcp-server/issues
License
MIT License - See LICENSE
Available Tools
8 toolscreate_payment_intentA
Create a new payment intent for processing payments through Bayarcash. Returns payment intent ID in response. WORKFLOW: 1) If user did not provide payer_email, call list_transactions (per_page=1) to get latest email and ask: "Use email from last payment: {email}?" 2) If user did not provide portal_key, call get_portals and ask user to select. 3) If user did not specify payment channel, call get_payment_channels and ask user to select. 4) Ask if they want to provide phone number (optional). IMPORTANT: Store the returned "id" field (e.g., pi_pGwAaq) to check payment status later.
| Name | Required | Description | Default |
|---|---|---|---|
| order_number | Yes | Unique order number for this payment | |
| amount | Yes | Payment amount in MYR (e.g., 100.50) | |
| payer_email | Yes | Email address of the payer. If not provided, get latest transaction email and ask user if they want to use it. | |
| payer_name | Yes | Name of the payer | |
| description | Yes | Description of the payment | |
| portal_key | Yes | Portal key selected by user from get_portals list | |
| payment_channel | No | Payment channel ID selected by user from get_payment_channels list. Examples: 1=FPX, 2=DuitNow, 3=Boost, 4=GrabPay. | |
| payer_telephone_number | No | Payer phone number (integer, Malaysia numbers only). Ask user: "Would you like to provide a phone number?" Format: 60123456789 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it creates a payment intent, returns a payment intent ID, and requires storing the 'id' field for future status checks. It also outlines a multi-step workflow with conditional calls to other tools and user prompts, adding valuable context beyond basic functionality.
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 appropriately sized but could be more front-loaded. It starts with the core purpose but then dives into a detailed workflow, which, while useful, makes it slightly dense. Every sentence earns its place by providing necessary guidance, but the structure could be improved by summarizing key points first.
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 complexity of the tool (8 parameters, no annotations, no output schema), the description is quite complete. It covers the purpose, workflow, and important behavioral notes like storing the ID. However, it lacks details on error handling or response format beyond the ID, which would enhance completeness for a creation 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 description coverage is 100%, so the input schema already documents all parameters thoroughly. The description does not add significant meaning beyond the schema, such as explaining parameter interactions or constraints not covered in schema descriptions. It references some parameters in the workflow but without new semantic details.
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's purpose: 'Create a new payment intent for processing payments through Bayarcash.' It specifies the verb ('create'), resource ('payment intent'), and platform ('Bayarcash'), distinguishing it from sibling tools like get_payment_intent or list_transactions which retrieve rather than create.
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 provides explicit workflow guidance on when to use this tool versus alternatives. It details steps like calling list_transactions if payer_email is missing, get_portals if portal_key is missing, and get_payment_channels if payment_channel is unspecified, directly referencing sibling tools and specifying user interaction patterns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fpx_banksB
Get list of FPX banks for online banking payments
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states what the tool returns (a list) but doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, error conditions, or what format the list comes in. For a tool with zero annotation coverage, 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, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple lookup tool and front-loads 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?
Given the lack of annotations and no output schema, the description should provide more context about what the returned list contains, format, authentication requirements, or error handling. For a tool that presumably interacts with payment systems, this minimal description leaves significant gaps in understanding how to use it effectively.
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 with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist, which is correct. Baseline for zero parameters is 4.
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 verb ('Get') and resource ('list of FPX banks for online banking payments'), making the purpose immediately understandable. It doesn't differentiate from sibling tools, but it's specific enough to understand what this tool does without being tautological.
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 provides no guidance on when to use this tool versus alternatives like 'get_payment_channels' or other payment-related siblings. It states what the tool does but gives no context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_channelsC
Get list of available payment channels
| Name | Required | Description | Default |
|---|---|---|---|
| portal_key | No | Optional portal key to filter channels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states what the tool does at a high level. It doesn't describe whether this is a read-only operation, what permissions might be required, whether results are paginated, what format the list returns in, or any rate limits or constraints. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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 extremely concise - a single sentence that directly states the tool's purpose with zero wasted words. It's front-loaded with the core functionality and doesn't include any unnecessary elaboration or redundant 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?
For a tool with no annotations and no output schema, the description is insufficiently complete. While it states what the tool does at a high level, it doesn't provide enough context about the behavior, return format, or practical usage scenarios. Users would need to guess about the structure of the returned payment channels list and how to effectively use this tool in context with the 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?
The schema description coverage is 100%, so the parameter 'portal_key' is already documented in the schema as 'Optional portal key to filter channels.' The description doesn't add any additional meaning beyond what the schema provides, such as explaining what a portal key represents or providing examples of when filtering would be useful. The baseline of 3 is appropriate when the schema does the heavy lifting.
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's purpose with a specific verb ('Get') and resource ('list of available payment channels'), making it immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'get_portals' or 'get_fpx_banks' that might also retrieve lists of related 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?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_portals' and 'get_fpx_banks' that might retrieve related payment information, there's no indication of when this specific tool is appropriate or what distinguishes it from those other list-retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_intentA
Get payment intent details and status by payment intent ID. Returns comprehensive payment history including all attempts.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_intent_id | Yes | Payment intent ID from create_payment_intent response (e.g., pi_pGwAaq, trx_z88ymJ). This is the "id" field. |
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 discloses that the tool returns 'comprehensive payment history including all attempts', which adds behavioral context beyond a simple read operation. However, it lacks details on error handling, rate limits, authentication needs, or response format, leaving gaps for a tool with no annotation coverage.
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 front-loaded with the core purpose in the first sentence and adds valuable context in the second sentence without redundancy. Both sentences earn their place by clarifying the action and the return data, making it efficient and well-structured with zero waste.
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's complexity (a read operation with one parameter) and no annotations or output schema, the description is moderately complete. It explains what the tool does and what it returns, but lacks details on behavioral aspects like error cases or response structure, which could be important for an agent to use it correctly without structured output guidance.
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 the schema already documents the single parameter 'payment_intent_id' with its type, description, and example values. The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or usage tips, meeting the baseline for high schema coverage.
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 specific action ('Get payment intent details and status') and resource ('by payment intent ID'), distinguishing it from sibling tools like get_transaction or list_transactions which handle different payment-related queries. It explicitly mentions what information is retrieved ('comprehensive payment history including all attempts'), making the purpose unambiguous.
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 by referencing the 'create_payment_intent response' for the ID parameter, suggesting this tool is for retrieving details after creation. However, it does not explicitly state when to use this versus alternatives like get_transaction or get_transaction_by_order, nor does it provide exclusions or prerequisites beyond the ID requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portalsB
Get list of available payment portals
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't clarify if it requires authentication, has rate limits, returns paginated results, or what format the list takes. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence with zero wasteβit directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple list-retrieval tool and front-loaded with the key action.
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's simplicity (0 parameters, no output schema), the description is adequate but has clear gaps. It doesn't explain what a 'payment portal' entails or the structure of the returned list, which could be important for an agent to use it effectively. With no annotations, it should provide more behavioral context to be fully 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?
The input schema has 0 parameters with 100% description coverage, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly avoids mentioning any. A baseline of 4 is appropriate since the schema fully handles the lack of parameters.
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 verb ('Get') and resource ('list of available payment portals'), making the purpose immediately understandable. It distinguishes this from siblings like 'get_transaction' or 'get_payment_intent' by focusing on portals rather than transactions or intents. However, it doesn't specify if this returns all portals or filtered ones, keeping it from a perfect score.
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 provides no guidance on when to use this tool versus alternatives like 'get_payment_channels' or 'get_fpx_banks', which might also relate to payment methods. There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionC
Get transaction details by transaction ID
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes | Transaction ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets' details, implying a read-only operation, but doesn't clarify aspects like authentication requirements, error handling (e.g., for invalid IDs), rate limits, or response format. This leaves significant gaps for a tool that likely interacts with transactional data.
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, efficient sentence that directly states the tool's purpose without redundancy. It is front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, with no wasted verbiage.
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 tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., safety, errors), output structure, or usage context relative to siblings. Given the transactional nature implied by the name and siblings, more guidance is needed to ensure proper agent invocation.
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%, with the parameter 'transaction_id' fully documented in the schema. The description adds minimal value beyond the schema by implying the ID is used to retrieve details, but doesn't provide additional context like ID format or examples. Baseline 3 is appropriate as the schema does the heavy lifting.
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 verb ('Get') and resource ('transaction details'), specifying it retrieves details by transaction ID. It distinguishes from siblings like 'list_transactions' (which returns multiple) and 'get_transaction_by_order' (which uses a different identifier), though it doesn't explicitly mention these distinctions.
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 provides no guidance on when to use this tool versus alternatives like 'get_transaction_by_order' or 'list_transactions'. It lacks context about prerequisites (e.g., needing a valid transaction ID) or exclusions, leaving the agent to infer usage from the name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transaction_by_orderC
Get transaction details by order number
| Name | Required | Description | Default |
|---|---|---|---|
| order_number | Yes | Order number to retrieve |
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 of behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention whether it requires authentication, has rate limits, returns errors for invalid order numbers, or provides pagination details. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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, efficient sentence that directly states the tool's function. It's front-loaded with the core purpose and contains no unnecessary words or redundant information. Every part of the sentence earns its place.
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 lack of annotations and output schema, the description is incomplete for a retrieval tool. It doesn't explain what transaction details are returned, error handling, or authentication requirements. While the purpose is clear, the behavioral and output context is insufficient for an agent to use it confidently without additional assumptions.
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 schema description coverage is 100%, with the single parameter 'order_number' fully documented in the schema. The description adds no additional parameter details beyond what's in the schema (e.g., format examples, constraints). According to the rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
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's purpose with a specific verb ('Get') and resource ('transaction details'), and specifies the lookup method ('by order number'). It distinguishes from the sibling 'get_transaction' (which likely uses a different identifier) and 'list_transactions' (which retrieves multiple records). However, it doesn't explicitly differentiate from all siblings, so it's not a perfect 5.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_transaction' (presumably by transaction ID) or 'list_transactions', nor does it specify prerequisites or exclusions. The agent must infer usage from the name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsB
List all transactions with optional filters. If you have payer_email from previous payment creation, ask user: "Filter by email from last payment: {email}?"
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by transaction status code (integer). Status codes: 0=New, 1=Pending, 2=Failed, 3=Success, 4=Cancelled. Example: Use 3 for successful transactions, not "success". | |
| payment_channel | No | Filter by payment channel ID (number, not string). Use channel IDs: 1=FPX, 2=DuitNow, 3=Boost, 4=GrabPay, 5=TNG, 6=ShopeePay, 7=SPayLater, 8=BoostPayFlex, 9=QRIS, 10=NETS. Example: For FPX payments use 1, not "fpx". | |
| payer_email | No | Filter by payer email. If you stored email from previous create_payment_intent, ask user if they want to filter by it. | |
| order_number | No | Filter by order number | |
| reference_number | No | Filter by reference number | |
| page | No | Page number for pagination | |
| per_page | No | Number of items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions optional filters and a user interaction suggestion for payer_email, but fails to disclose critical behavioral traits such as whether this is a read-only operation, pagination behavior (implied by parameters but not explained), rate limits, authentication requirements, or what the return format looks like. For a list tool with 7 parameters and no annotation coverage, this is inadequate.
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 appropriately concise with two sentences that each serve a purpose: the first states the core functionality, and the second provides a specific usage tip. It's front-loaded with the main purpose, though the second sentence could be more directly integrated with the parameter guidance.
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's complexity (7 parameters, list operation with filtering and pagination), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (transaction objects, arrays, metadata), how pagination works in practice, error conditions, or behavioral constraints. The description should provide more context for effective agent use.
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%, providing detailed documentation for all 7 parameters including enums and examples. The description adds minimal value beyond the schema by mentioning 'optional filters' and the payer_email interaction suggestion, but doesn't provide additional semantic context about parameter relationships or usage patterns. Baseline 3 is appropriate when the schema does the heavy lifting.
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's purpose as 'List all transactions with optional filters,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_transaction' or 'get_transaction_by_order,' which appear to retrieve individual transactions rather than lists.
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 provides implied usage guidance by mentioning a specific scenario involving 'payer_email from previous payment creation' and suggesting user interaction. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_transaction' or 'get_transaction_by_order,' and doesn't specify when-not-to-use cases or prerequisites.
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.
8 tool updates
v1.0.0- First observed
create_payment_intent - First observed
get_fpx_banks - First observed
get_payment_channels - First observed
get_payment_intent - First observed
get_portals - First observed
get_transaction - First observed
get_transaction_by_order - First observed
list_transactions
TDQS
Most tools have distinct purposes, such as create_payment_intent for initiating payments and get_fpx_banks for retrieving bank lists. However, get_transaction and get_transaction_by_order could be slightly confusing as they both retrieve transaction details using different identifiers, though their descriptions clarify the distinction.
All tool names follow a consistent verb_noun pattern, such as create_payment_intent, get_fpx_banks, and list_transactions. There are no deviations in naming conventions, making the set predictable and easy to understand.
With 8 tools, the server is well-scoped for payment processing, covering key operations like creating and retrieving payment intents, listing transactions, and accessing payment channels and portals. Each tool serves a clear purpose without redundancy.
The toolset provides good coverage for payment processing workflows, including creation, status checks, and transaction retrieval. A minor gap is the lack of tools for updating or canceling payment intents, which might limit full lifecycle management, but core operations are well-covered.
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
Malaysia payments for AI agents β FPX banking, DuitNow QR, cards via Billplz. Never holds funds.
Malaysian SME accounting, e-Invoice and payroll for your AI. 63 tools; writes are approved drafts.
Stripe payments for AI agents. Create links, verify, manage customers.
Taiwan payments (ECPay ηΆ η + NewebPay θζ°) & e-invoices for AI agents. Stateless, never holds funds.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects AI assistants to the Bayarcash payment gateway API, enabling users to create payment intents, check transactions, monitor revenue, and manage Malaysian payment channels through natural language.81MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI agents to Nepal's payment infrastructure through the PayArk API. It enables users to monitor transaction history, manage projects, and generate hosted checkout links using natural language.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Magpie Payment Platform APIs for processing payments, creating checkout sessions, sending invoices, and managing payment links through natural conversation.461MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to accept Malaysian payments (FPX, DuitNow) through Billplz, providing tools to create payment links and check payment status.MIT
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/webimpianteam/bayarcash-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server