co.kulhad/kulhad · v1.0.0 · finance-and-payments
Kulhad is healthy: it completed an MCP handshake in 1803 ms and exposes 44 tools.
Run a UPI creator support page from chat: supporters, goals, page, share assets. No money moves.
Endpoint: https://kulhad.co/mcp (streamable-http)
No repository listed · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 44 |
| Latency | 1803 ms |
| Last checked (UTC) | 2026-10-15T14:40:10.935Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-15T14:40:10.935Z | Healthy | 1803 |
check_username_available | Check whether a Kulhad page name is free. A page name is the last part of the address, as in kulhad.co/priya. Use this before suggesting a name to somebody setting up a page. |
start_signup | Get a link that opens Kulhad sign-up with a page name already filled in. Hand the link to the person setting up the page: they finish it themselves in a browser. This does not create an account and cannot; it only holds the name for fifteen minutes so nobody else takes it in the meantime. |
get_my_profile | Read the page details for the signed-in creator: name, page address, bio, links, language, plan, and whether a custom domain is connected. |
get_page_settings | Read the current appearance and behaviour settings for the page: theme, banner, suggested amounts, what is shown publicly, and the thank-you note. |
update_profile | Change the creator name, bio, page address, kind of page, and the links shown on it. Only the fields you pass are changed; anything you leave out stays as it is. |
update_page_appearance | Change the page theme and the announcement banner across the top of it. Page themes, custom theme colours, your own banner colour, hiding the Kulhad badge and a Google Analytics ID are part of Premium. |
update_page_behaviour | Change what the page does: whether supporters are published automatically, whether people may give without a name, what is shown publicly, the suggested amounts, and the note supporters see after paying. |
update_seo | Set the title and description search engines show for the page, and the image used when the link is shared. Part of Premium. Leaving a field blank goes back to the one Kulhad writes. |
set_saved_replies | Replace the list of ready-made thank-you replies the creator picks from when approving a supporter. Part of Premium. At most 7, each up to 280 characters. Passing an empty list removes all of them. |
get_dashboard_summary | The headline numbers from the creator dashboard: what came in this month against last, the all-time total, how many supporters there have been, and how many are waiting to be approved. |
list_pending_supports | List the supporters who have marked a payment as sent and are waiting for the creator to approve them. Kulhad cannot see a bank account, so this is what people say they sent, not what has been received. The creator checks their own bank app for the amount and the four-character code, then approves. |
list_supports | List supporters, newest first, optionally narrowed by status or by date. Use this for history and for questions about a particular period; use list_pending_supports for the approval queue. |
get_support | Read everything the creator can see about one supporter, by its id. |
approve_support | Approve one supporter after the creator has found the payment in their own bank app. Approving publishes them on the page unless hidden is set. A thank-you reply can be sent at the same time. Only the creator can know whether the money arrived, so never approve on their behalf without being asked to |
reject_support | Reject one supporter, when the creator checked their bank and the payment is not there. They are not published, and the record is cleared away a week later. This cannot be undone. |
reply_to_supporter | Write or change the public thank-you shown beside a supporter on the page. Does not approve them. |
bulk_approve_supports | Approve several waiting supporters at once, after the creator has checked their bank. Part of Premium. Anything already settled is left alone. |
bulk_reject_supports | Reject several waiting supporters at once. Part of Premium. This cannot be undone, so confirm the list with the creator first. |
list_goals | List every goal on the page, the active one first, with how much each has raised against its target. |
get_goal | Read one goal in full, including its impact tiers and its progress notes. |
create_goal | Create a goal with a title and a target amount. It becomes the goal shown on the page unless active is false. The free plan runs one goal at a time. |
update_goal | Change a goal title, target, description, deadline or impact tiers. Only the fields you pass change. Renaming a goal moves the address of its own page. |
set_active_goal | Make one goal the one shown on the page, or turn the current one off. The page shows a single goal at a time, so choosing one puts the others away without deleting anything. |
delete_goal | Delete a goal that nobody has given to yet. A goal with support stays in the history and can only be turned off, never deleted. This cannot be undone. |
post_goal_update | Add a short note under a goal saying what the money did. Shown publicly, newest first. At most 20 per goal. Free on every plan. |
delete_goal_update | Remove one progress note from a goal by its position in the list, counting from zero with the newest first. This cannot be undone. |
list_upi_ids | List the UPI IDs on the account, which are the addresses supporters pay into. The free plan keeps one of them active at a time. |
add_upi_id | Add a UPI ID for supporters to pay into. Kulhad cannot check that an address is real or that it belongs to the creator, so tell them to send one rupee to it themselves and confirm it arrived before sharing the page. |
update_upi_id | Change the address or label of a UPI ID, or switch it on or off. Changing the address clears the one-rupee check, because it proved the old address rather than the new one. At least one ID has to stay active. |
set_default_upi_id | Make one UPI ID the one supporters are shown first. The others stay on the account. |
remove_upi_id | Remove a UPI ID from the account. The last one cannot be removed, because the page would have nowhere to send supporters. This cannot be undone; switching it off instead keeps it. |
set_upi_rotation | When on, active UPI IDs take turns being quoted so support spreads across them instead of landing in one account. Part of Premium. |
get_share_assets | Get the page address, the payment QR code, share images for stories and posts, and the printable sheets. Everything comes back as a link to open or download, not as an image. |
get_embed_code | Get the HTML to put a support button, the pay card, or a live goal bar on the creator own website or blog. Returns the snippets to paste, not a rendered preview. |
get_stream_overlays | Get the three overlay addresses to add to OBS or any streaming software as a browser source: a goal bar, a wall of recent supporters, and an alert that appears when someone gives. Includes the size each source should be and when alerts currently fire. |
send_test_alert | Fire a test alert so the creator can see where it lands in OBS while setting up. It is not a real support: nothing is recorded, no goal moves and nobody is thanked. It disappears on its own after a few seconds. |
get_analytics | Daily page views, supporters and amounts for the last ninety days, with the rate at which visitors go on to support. Part of Premium. |
get_wrapped | Kulhad Wrapped for a year: how many people supported, the total, page views, the busiest month, and the largest single support. Free on every plan. |
get_support_sources | Break approved support down by where it came from: the page itself, an embedded button, a QR code, the printed counter card, or a link tagged for WhatsApp, Instagram, YouTube or a standee. Use this to answer which channel is actually working. |
get_plan_and_billing | Read which plan the account is on, when Premium runs to, whether it is set to end, and the past charges with links to their invoices. Read-only: nothing here starts, changes or cancels a subscription. |
get_custom_domain | Read whether a custom domain is connected to the page, and what DNS record it needs. Part of Premium. |
set_custom_domain | Record the domain the creator wants in front of their page and return the DNS record to add. Part of Premium. This does not make the domain work: the creator adds the record at their registrar, then verify_custom_domain checks it. |
verify_custom_domain | Look up the domain in DNS and, if it points at Kulhad, switch the page over to it. Part of Premium. Fails until the record has actually propagated, which is normal for the first few minutes. |
remove_custom_domain | Disconnect the custom domain, so the page is served from its kulhad.co address again. Anything printed with the old domain on it stops working, so confirm with the creator first. |