Kulhad

co.kulhadPublished by kulhad.coOfficial publisherv1.0.0Updated Oct 24, 2026

Run a UPI creator support page from chat: supporters, goals, page, share assets. No money moves.

VerifiedStreamable HTTPWeb executableFinanceData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Manage a Kulhad UPI creator support page from chat: profile, page settings, supporters, goals, UPI IDs, share assets and analytics.

What you can do
  • Check page-name availability and start sign-up with a prefilled name
  • Read and update the creator profile, page appearance, page behaviour and SEO text
  • Review dashboard totals, list supporters, approve, reject, bulk-settle and reply to them
  • Create, edit, activate and delete goals, and post or remove goal progress notes
  • Manage UPI IDs: add, update, set default, remove and turn on rotation
  • Fetch share assets, embed snippets, stream overlay addresses, test alerts, analytics, Wrapped and support sources
When to use it
For creators who already run a Kulhad support page and want to handle the approval queue, goals, page settings and channel analytics conversationally instead of through the dashboard. Also useful when helping someone pick a free page name and hand them a sign-up link.
Requirements
A remote MCP endpoint at kulhad.co over streamable HTTP; no packages, environment variables or headers are declared. A Kulhad creator account is needed for the profile, supporter, goal and billing tools, and some features (custom themes, SEO, saved replies, bulk approval, rotation, analytics) require the Premium plan.
Before you install
Approving, rejecting and bulk actions are irreversible and move money-related records: Kulhad cannot see a bank account, so the creator must verify each payment in their own bank app first. Rejecting deletes voice recordings immediately. Deleting goals and progress notes cannot be undone, and renaming a goal breaks its old address. UPI IDs are not validated, so a one-rupee test is advised. Links replace whole lists, and replies cannot be blanked.

Installation

In SourceWeft

  1. Open Kulhad in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/co.kulhad%2Fkulhad/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "kulhad": {
      "type": "http",
      "url": "https://kulhad.co/mcp"
    }
  }
}

Tools

44

check_username_available

Check a page name

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.

Parametersusernamerequired

start_signup

Start setting up a page

Get a link that opens Kulhad sign-up with a page name already filled in. Hand it to the person setting up the page; they finish it themselves in a browser. This does not create an account and cannot. It marks the name as taken for check_username_available for fifteen minutes; it does not stop anyone signing up with that name directly. Nothing is sent.

Parametersusernamerequired

get_my_profile

Read my page details

Read the page details for the signed-in creator: name, page address, bio, links, language, plan, and any custom domain recorded on the account with its status (pending, active or disabled).

Takes no parameters.

get_page_settings

Read how my page looks and behaves

Read the current appearance and behaviour settings for the page: theme, banner, suggested amounts, what is shown publicly, and the thank-you note.

Takes no parameters.

update_profile

Change my page details

Change the creator's name, bio, page address, kind of page (person or organisation), page language, dashboard language, and the links on the page. Only the fields you pass change. Links replace the whole list, so pass every link that should stay. The bio keeps bold, italic, links and line breaks and is cut at 280 characters. Changing the page address stops the old kulhad.co address working at once, with no redirect: printed QR codes, embeds and OBS overlay links break, and the old name is free for anyone to take. Not allowed while a custom domain is active. Writes to the creator's own Kulhad account only.

ParametersbiokindnamesocialsusernameuiLanguagepageLanguage

update_page_appearance

Change how my page looks

Change the page theme and the announcement banner across the top of it. Page themes, a custom theme colour (shown only when the theme is "custom"), your own banner colour, hiding the Kulhad badge, and a Google Analytics measurement ID are Premium. The measurement ID is stored as a page setting; Kulhad itself does not contact Google. Each value passed replaces the current one. Writes to the creator's own Kulhad account only.

ParametersthemethemeColorbadgeHiddenoccasionTextoccasionColoroccasionUntilgaMeasurementIdoccasionColorHex

update_page_behaviour

Change how my page behaves

Change what the page does: whether new supporters go up without approval, whether people may give without a name, whether the supporter count and total show, the three suggested amounts and their labels, the headline on the pay card, the note supporters see after paying, when stream alerts fire, and whether voice messages are allowed (Premium). Passing amounts replaces all three. A label or headline that fails the word filter is blanked. Affects future supports only. Writes to the creator's own Kulhad account only.

ParametersamountsamountStyleautoPublishcardHeadlinethankYouNotestreamAlertOnallowAnonymousshowTotalRaisedcounterQrEnabledshowSupporterCountvoiceBlessingsEnabled

update_seo

Change how my page appears in search

Set the title (up to 60 characters) and description (up to 160) in the page's HTML head, which search engines and link previews read. Part of Premium. A blank value goes back to the text Kulhad generates. This does not set an image and does not contact any search engine; it only changes what the page serves.

ParametersseoTitleseoDescription

set_saved_replies

Set my 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; blank replies and any containing a link or a flagged word are dropped and counted. Passing an empty list removes all of them.

Parametersrepliesrequired

get_dashboard_summary

Read my dashboard summary

The headline numbers from the creator dashboard: what came in this month against last, the all-time total, how many approved supports there have been, and how many are waiting to be approved.

Takes no parameters.

list_pending_supports

List supporters waiting for approval

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.

Parameterslimit

list_supports

List my supporters

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.

Parameterstofrompagelimitstatus

get_support

Read one supporter

Read everything the creator can see about one supporter, by its id.

Parametersidrequired

approve_support

Approve a supporter

Approve one supporter after the creator has found the payment in their own bank app. This cannot be undone. The supporter's name and amount then show on the creator's page and stream overlays and count toward totals and the active goal; if that fills the goal, the goal is marked complete and taken off the page. With hidden set, the message and any voice recording stay private while the name and amount still show. A thank-you reply (up to 280 characters, word-filtered) can be set at the same time and replaces any existing reply. Nothing is sent to the supporter. Only the creator can know whether the money arrived, so never approve without being asked to for that specific supporter.

Parametersidrequiredreplyhidden

reject_support

Reject a supporter

Reject one supporter when the creator has checked their bank and the payment is not there. This cannot be undone. Any voice recording is deleted immediately; the record itself is cleared a week later. Nothing shows on the page and nothing is sent to the supporter.

Parametersidrequired

reply_to_supporter

Reply to a supporter

Write or replace the thank-you beside one supporter, up to 280 characters; links and flagged words are refused. It shows on the creator's page once the supporter is approved, and on the supporter's own receipt link in any case. Replaces the previous reply with no history and cannot be blanked. Does not approve anyone and sends nothing.

Parametersidrequiredreplyrequired

bulk_approve_supports

Approve several supporters

Approve up to 100 waiting supporters at once after the creator has checked their bank. Part of Premium. This cannot be undone. Ids that are not waiting (already settled, not yet marked as sent, missing, or not this creator's) are skipped and counted. Same effects as approve_support; no reply is set.

Parametersidsrequiredhidden

bulk_reject_supports

Reject several supporters

Reject up to 100 waiting supporters at once. Part of Premium. This cannot be undone and any voice recordings are deleted immediately, so confirm the list with the creator first. Ids that are not waiting are skipped and counted.

Parametersidsrequired

list_goals

List my goals

List every goal on the page, the active one first, with how much each has raised against its target.

Takes no parameters.

get_goal

Read one goal

Read one goal in full, including its impact tiers and its progress notes.

Parametersidrequired

create_goal

Create a goal

Create a goal with a title and a target in whole rupees. Unless active is false, it becomes the goal shown on the page and any other goal is put away, not deleted (set_active_goal brings one back). The free plan refuses while another goal is running, even with active false. Impact tiers are Premium. A goal that is neither active nor complete has no page of its own.

ParameterstitlerequiredactiveimpactdeadlinedescriptiontargetAmountrequired

update_goal

Change a goal

Change a goal's title, target, description, deadline or impact tiers. Only the fields you pass change, and each replaces the old value; impact replaces the whole list. Renaming changes the goal's web address, and the old address stops working with no redirect. Changing the target does not re-check whether the goal is complete.

ParametersidrequiredtitleimpactdeadlinedescriptiontargetAmount

set_active_goal

Choose which goal the page shows

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

Parametersidrequiredactive

delete_goal

Delete a goal

Delete a goal that has no approved support. This cannot be undone, and its cover image is deleted with it. Pending or rejected supports pinned to it lose the link. A goal with approved support stays in the history and can only be turned off.

Parametersidrequired

post_goal_update

Post a progress note on a goal

Add a short note, up to 280 characters, under a goal saying what the money did. Notes are kept newest first, at most 20 per goal, and show on the goal's page while the goal is active or complete. Free on every plan. Nobody is notified.

ParametersbodyrequiredgoalIdrequired

delete_goal_update

Remove a progress note

Remove one progress note from a goal by its position in the list, counting from zero with the newest first. This cannot be undone.

ParametersindexrequiredgoalIdrequired

list_upi_ids

List my 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.

Takes no parameters.

add_upi_id

Add a 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. Duplicates are not checked. The free plan keeps one ID active at a time.

ParametersvparequiredlabelmakeDefault

update_upi_id

Change a UPI ID

Change the address or label of a UPI ID, switch it on or off, or mark the one-rupee test done. Changing the address clears the test, and from then on the new address is what supporters are quoted and what past supports display. At least one ID has to stay active. Switching off the default leaves the lowest active ID quoted.

ParametersidrequiredvpalabelactivetestDone

set_default_upi_id

Choose which UPI ID is quoted first

Make one active UPI ID the one supporters are shown first. The others stay on the account. This does not switch an ID on: an inactive ID made default is never quoted.

Parametersidrequired

remove_upi_id

Remove a UPI ID

Remove a UPI ID from the account. The last one, and the only active one, cannot be removed. This cannot be undone, and past supports lose the link to it; switching it off instead keeps it.

Parametersidrequired

set_upi_rotation

Turn taking turns on or off

When on, active UPI IDs take turns being quoted so support spreads across them instead of landing in one account. Part of Premium.

Parametersenabledrequired

get_share_assets

Get my page link, QR code and share images

Get the page address, a QR code that opens the page (and a UPI payment QR for the counter when the counter QR is switched on), share images for stories and posts, and the printable sheets. Everything comes back as a link to open or download, not as an image.

Takes no parameters.

get_embed_code

Get code to put Kulhad on my own website

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.

Parameterstextposition

get_stream_overlays

Get my stream overlay addresses for OBS

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.

ParameterslanguagewallRowsalertSeconds

send_test_alert

Send a test alert to my stream overlay

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. The overlay picks it up within about five seconds and it disappears after six.

Takes no parameters.

get_analytics

Read my page numbers

Daily page views, approved supports and amounts for up to the last ninety days, thirty by default, with the rate at which visitors go on to support. Part of Premium. Comes from the nightly rollup, so today is not included and only days with activity are returned.

Parametersdays

get_wrapped

Read my year in review

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.

Parametersyear

get_support_sources

Read where my supporters came from

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.

Parameterstofrom

get_plan_and_billing

Read my plan and billing history

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.

Takes no parameters.

get_custom_domain

Read my custom domain

Read whether a custom domain is connected to the page, and what DNS record it needs. Part of Premium.

Takes no parameters.

set_custom_domain

Connect my own domain

Record the domain the creator wants in front of their page and return the DNS record to add. Part of Premium. Replaces any domain already recorded, including a working one, which then stops serving until verify_custom_domain passes again, so confirm with the creator if a domain is already active. This does not touch DNS or make the domain work: the creator adds the record at their registrar, then verify_custom_domain checks it.

Parametersdomainrequired

verify_custom_domain

Check my domain is pointing here

Look the domain up in public DNS and, if it points at Kulhad, switch the page to it; kulhad.co/<name> then redirects there. Part of Premium. Clears the same domain from any other account's unverified claim. Fails until the record has propagated, which is normal for the first few minutes.

Parametersdomainrequired

remove_custom_domain

Disconnect my 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.

Takes no parameters.

Version history

1
  1. v1.0.0LatestOct 15, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.