Skip to main content
Glama
webimpianteam

Bayarcash MCP Server

Bayarcash MCP Server πŸ’³

Use AI to manage Bayarcash payments. Create payment links, check transactions, and integrate payment processing using natural language.

installations npm version License: MIT

Quick Install

Smithery (Easiest):

npx -y @smithery/cli install @webimpianteam/bayarcash-mcp-server --client claude

Manual 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:

  1. Ask if you want to use the email from your last payment (if available)

  2. Show your payment portals and ask which one to use

  3. Show payment channels and ask which one to use

  4. Ask if you want to include a phone number (optional)

  5. 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 workflow

  • get_payment_intent - Get payment status by payment intent ID

  • get_transaction - Get transaction by ID

  • get_transaction_by_order - Find transaction by order number

  • list_transactions - List transactions with smart filtering

  • get_portals - List your payment portals

  • get_payment_channels - List available payment channels (10 channels)

  • get_fpx_banks - List FPX online banking banks

Payment Channels (by ID):

  1. FPX - Online Banking (20+ banks)

  2. DuitNow - QR payments

  3. Boost - E-wallet

  4. GrabPay - E-wallet

  5. Touch 'n Go - E-wallet

  6. ShopeePay - E-wallet

  7. SPayLater - BNPL

  8. Boost PayFlex - BNPL

  9. QRIS - QR payments

  10. 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

BAYARCASH_API_TOKEN

Yes

-

Your API token from console.bayar.cash

BAYARCASH_API_SECRET_KEY

Yes

-

Your API secret key

BAYARCASH_SANDBOX

No

true

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?

  1. Restart your AI client completely

  2. Verify API credentials at https://console.bayar.cash

  3. Check config file path is absolute (not relative)

  4. Run npm run build in server directory

Authentication errors?

  • Ensure BAYARCASH_SANDBOX matches your account type

  • Verify 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_channels to see available options

License

MIT License - See LICENSE

Available Tools

8 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_numberYesUnique order number for this payment
amountYesPayment amount in MYR (e.g., 100.50)
payer_emailYesEmail address of the payer. If not provided, get latest transaction email and ask user if they want to use it.
payer_nameYesName of the payer
descriptionYesDescription of the payment
portal_keyYesPortal key selected by user from get_portals list
payment_channelNoPayment channel ID selected by user from get_payment_channels list. Examples: 1=FPX, 2=DuitNow, 3=Boost, 4=GrabPay.
payer_telephone_numberNoPayer phone number (integer, Malaysia numbers only). Ask user: "Would you like to provide a phone number?" Format: 60123456789

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
portal_keyNoOptional portal key to filter channels

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_intent_idYesPayment intent ID from create_payment_intent response (e.g., pi_pGwAaq, trx_z88ymJ). This is the "id" field.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
transaction_idYesTransaction ID to retrieve

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
order_numberYesOrder number to retrieve

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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}?"

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter 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_channelNoFilter 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_emailNoFilter by payer email. If you stored email from previous create_payment_intent, ask user if they want to filter by it.
order_numberNoFilter by order number
reference_numberNoFilter by reference number
pageNoPage number for pagination
per_pageNoNumber of items per page

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 8 tool updatesv1.0.0
    • First observedcreate_payment_intent
    • First observedget_fpx_banks
    • First observedget_payment_channels
    • First observedget_payment_intent
    • First observedget_portals
    • First observedget_transaction
    • First observedget_transaction_by_order
    • First observedlist_transactions

TDQS

A3.5/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects 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.
    17
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access Magpie Payment Platform APIs for processing payments, creating checkout sessions, sending invoices, and managing payment links through natural conversation.
    46
    1
    MIT

Latest Blog Posts

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