Instamojo MCP by usefulapi

Read Instamojo payment requests, payments and refunds; create payment links and refund payments.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
98%
Naming quality
71%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'instamojo_list_payment_requests' name length outside 3-30 rangein instamojo_list_payment_requests
  • LOWTool 'instamojo_create_payment_request' name length outside 3-30 rangein instamojo_create_payment_request
  • LOWTool 'instamojo_disable_payment_request' name length outside 3-30 rangein instamojo_disable_payment_request
  • LOWTool 'instamojo_enable_payment_request' name length outside 3-30 rangein instamojo_enable_payment_request

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,102Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (1.64% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "instamojo": {
      "url": "https://instamojo.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://instamojo.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢instamojo_list_payment_requests(page, limit)

List the payment requests (payment links) of the account with id, purpose, amount (INR), buyer, status (Pending, Sent, Failed, Completed), short and long URL and timestamps. Paged: use next_page. GET /payment-requests/.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Rows per page, 1-500 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢instamojo_get_payment_request(payment_request_id)

One payment request by id, with its status and the payments made against it (the payment ids go to instamojo_get_payment). GET /payment-requests/{id}/.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_request_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Payment request id (a 32-character hex id from instamojo_list_payment_requests)."
    }
  },
  "required": [
    "payment_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡instamojo_create_payment_request(amount, purpose, buyer_name, email, phone, ...)

WRITE: create a payment request (a payment link) and return its id and URLs (longurl, shorturl) to share with the buyer. Amount is in INR. The buyer is NOT emailed or texted unless send_email / send_sms is true (they then need email / phone). Nothing is charged; the buyer pays on the link. POST /payment-requests/.

Input Schema

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000,
      "description": "Amount in INR (Instamojo documents a minimum of 9 and a maximum of 200000 per request)."
    },
    "purpose": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "What the payment is for (shown to the buyer). Often used as your own order reference."
    },
    "buyer_name": {
      "description": "Name of the payer.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "Email of the payer (required when send_email is true).",
      "type": "string",
      "maxLength": 200,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone number of the payer (required when send_sms is true).",
      "type": "string",
      "minLength": 5,
      "maxLength": 20
    },
    "redirect_url": {
      "description": "URL the buyer is redirected to after paying (Instamojo appends payment_request_id, payment_status and payment_id).",
      "type": "string",
      "maxLength": 500,
      "format": "uri"
    },
    "webhook": {
      "description": "URL Instamojo POSTs the payment details to after a payment.",
      "type": "string",
      "maxLength": 500,
      "format": "uri"
    },
    "allow_repeated_payments": {
      "description": "true = the link accepts several payments (Instamojo's default); false = one payment only.",
      "type": "boolean"
    },
    "send_email": {
      "description": "true = Instamojo emails the link to the payer (needs email). Default false: nothing is sent.",
      "type": "boolean"
    },
    "send_sms": {
      "description": "true = Instamojo texts the link to the payer (needs phone). Default false: nothing is sent.",
      "type": "boolean"
    }
  },
  "required": [
    "amount",
    "purpose"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴instamojo_disable_payment_request(payment_request_id)

WRITE: disable a payment request so its link no longer accepts payments (instamojo_enable_payment_request undoes it). Existing payments are not touched. POST /payment-requests/{id}/disable/.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_request_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Payment request id."
    }
  },
  "required": [
    "payment_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡instamojo_enable_payment_request(payment_request_id)

WRITE: enable a previously disabled payment request so its link accepts payments again. POST /payment-requests/{id}/enable/.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_request_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Payment request id."
    }
  },
  "required": [
    "payment_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢instamojo_get_payment(payment_id)

One payment by its id (MOJO...): status (Credit = paid, Failed), amount, fees, buyer, instrument (card, UPI, netbanking, wallet), failure reason, payout and the payment request it belongs to. GET /payments/{id}/.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Payment id, e.g. MOJO5a06005J21512197 (from instamojo_get_payment_request)."
    }
  },
  "required": [
    "payment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢instamojo_list_refunds(page, limit)

List refunds with id (case id), payment id, status, reason type, refund and total amount (INR) and date. Paged: use next_page. GET /refunds/.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Rows per page, 1-500 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢instamojo_get_refund(refund_id)

One refund by its id (the case id from instamojo_list_refunds, e.g. C5c0751272). GET /refunds/{id}/.

Input Schema

{
  "type": "object",
  "properties": {
    "refund_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Refund id (case id)."
    }
  },
  "required": [
    "refund_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴instamojo_create_refund(payment_id, type, body, refund_amount, transaction_id, ...)

WRITE (moves money): refund a payment, in full or in part. Instamojo allows only ONE refund per payment, so a partial refund cannot be topped up later. Without confirm: true nothing is sent and the call returns a preview of the refund; ask the user to confirm, then call again with confirm: true. Reason types: RFD = duplicate/delayed payment, TNR = product/service no longer available, QFL = customer not satisfied, QNR = product lost/damaged, EWN = digital download issue, TAN = event was canceled/changed, PTH = problem not described above. POST /refunds/.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "description": "Payment id (MOJO...) of the payment to refund."
    },
    "type": {
      "type": "string",
      "enum": [
        "RFD",
        "TNR",
        "QFL",
        "QNR",
        "EWN",
        "TAN",
        "PTH"
      ],
      "description": "Reason code. RFD = duplicate/delayed payment, TNR = product/service no longer available, QFL = customer not satisfied, QNR = product lost/damaged, EWN = digital download issue, TAN = event was canceled/changed, PTH = problem not described above."
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Text explaining the refund."
    },
    "refund_amount": {
      "description": "Amount to refund in INR; default the full paid amount.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000
    },
    "transaction_id": {
      "description": "Your own unique id for this refund case; Instamojo uses it to refuse a replayed call (mandatory from the second refund case onwards).",
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9_-]+$"
    },
    "confirm": {
      "description": "Must be true to actually create the refund; otherwise only a preview is returned.",
      "type": "boolean"
    }
  },
  "required": [
    "payment_id",
    "type",
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools