Run your business from Claude or ChatGPT with the Smart Dhandha MCP server
TL;DR: Smart Dhandha now speaks MCP — the open standard that lets AI assistants plug into real tools. Add one URL to Claude or ChatGPT, log in with your Smart Dhandha account (no key to paste), and you can ask your business questions in plain English: "What did we invoice this month?", "Which vendor bills are overdue?", "Who's on leave next week?" No dashboards, no exports, no SQL. This guide walks you through setup and gives you copy-paste prompts that actually earn their keep.
What is MCP, and why should a business owner care?
MCP (Model Context Protocol) is an open standard that lets an AI assistant securely connect to real data and tools. Instead of you logging into a dashboard, clicking through filters, and exporting a CSV, the AI does that lookup for you and answers in a sentence.
Smart Dhandha exposes a set of business tools over MCP — mostly read, plus a few submission-style writes. Once connected, your AI client can look at your live invoices, bills, clients/vendors, and leave requests — scoped strictly to your organisation — and reason over them. Team members can also apply for leave or submit a reimbursement claim right from the chat (both land as pending for an owner to approve), and owners can record an expense.
Think of it as giving Claude or ChatGPT a window into your books plus an inbox tray: it can see, summarise, and submit requests — but it can never approve, pay, or delete anything.
One-line mental model: the dashboard is for doing; MCP is for asking.
What you can (and can't) do today
Thirty-three tools are live — and what each person can do depends on their role, so it's safe to let your whole team connect. Team members get self-service: check their leave balance (my_leave_balance), apply for leave (apply_leave), and submit reimbursement claims (submit_reimbursement) — every submission lands as pending for an owner to approve in the app.
If you're the owner, you get the whole business:
| Area | Ask… |
|---|---|
| Money in/out | "What's unpaid?", "What do we owe this month?" (list_invoices, list_bills, list_payments) |
| Clients & vendors | "Do we have a client called Acme?" (list_parties) |
| Banking | "What hit the bank this week?" (list_bank_accounts — numbers masked — and list_bank_transactions) |
| Spending & books | expenses, ledger accounts, journal entries (list_expenses, list_accounts, list_journal_entries) |
| Compliance | "What TDS/GST is pending?" (list_filings, list_compliances) |
| People | roster, departments, payroll runs, bonuses, all reimbursements, everyone's leave (list_employees, list_departments, list_payroll_runs, list_bonuses, …) |
| Hiring | open roles and the candidate pipeline (list_jobs, list_applications) |
| Documents | the vault's names & categories — never the files (list_documents) |
If you're a team member, you get only your own data — my_payslips, my_leaves, my_reimbursements, my_tasks, my_notifications, my_profile — plus shared info (holidays, your calendar). You can't see company invoices, other people's pay, compliance, or the roster. Everyone can also get_calendar (owners see the whole business calendar; members see a personal agenda) and list_organizations to pick a business.
🔐 The guarantee: an employee's AI connection can never reach owner-level data — enforced on every call, whether they logged in or used an API key (keys inherit their creator's role).
What it will not do (by design): create or edit an invoice, record a payment, approve leave, or touch any setting. Writes are deliberately excluded for now — an AI client is a semi-autonomous agent, and mutating your books should sit behind an explicit confirmation step, which is on the roadmap. So this is genuinely safe to hand to an assistant.
Setup (about 2 minutes)
There's one connection URL for everything:
https://smartdhandha.com/api/mcp/mcp
How you sign in depends on your client. Claude and ChatGPT log you in with your Smart Dhandha account (no key to paste); Cursor and scripts use an API key.
Connecting Claude — just log in
In Claude.ai or Claude Desktop → Settings → Connectors → Add custom connector:
- Name:
Smart Dhandha - URL:
https://smartdhandha.com/api/mcp/mcp - Leave Client ID / Secret blank — Claude registers itself automatically.
- Click Connect. Claude opens a Smart Dhandha login page → sign in → you're bounced back, connected.
That's the whole thing. No key, no copy-paste, nothing to leak into a chat.
Connecting ChatGPT — also just log in
ChatGPT → Settings → Connectors → Create → Custom connector:
- MCP Server URL:
https://smartdhandha.com/api/mcp/mcp - Choose OAuth for authentication (not "API key" / "no auth").
- Sign in with your Smart Dhandha account when prompted, then enable the connector in a chat.
ChatGPT's custom MCP connectors need a plan that supports them (Pro / Business / Enterprise, "developer mode"). No such option? Use Claude, or a Cursor-style client below.
Connecting Cursor / VS Code / scripts — API key
These let you set a raw header, so they use a key. Create one in Settings →
Developer → API Keys with the scopes you need (billing:read for invoices,
bills & parties; leaves:read for leave), then:
{
"mcpServers": {
"smart-dhandha": {
"url": "https://smartdhandha.com/api/mcp/mcp",
"headers": { "Authorization": "Bearer sd_live_your_key_here" }
}
}
}
The key looks like sd_live_a3b8f2… and you only see it once — store it safely.
Each key has a monthly credit allowance (default 1,000 calls / 30 days,
auto-resetting); handshake and tool-listing chatter is free.
Confirm the connection
Start a fresh chat and ask something simple:
You: Using Smart Dhandha, list our 3 most recent invoices.
If the AI comes back with real invoice numbers and amounts, you're live. If it can't connect, jump to Troubleshooting.
The practical part: prompts that pull their weight
You never call tools by name — you just ask, and the AI picks the right tool and fills in the filters. Here are field-tested prompts, grouped by the job you're trying to get done.
🌅 The morning money check
"Give me a 30-second money snapshot: total invoiced this month vs. total we owe on bills, and flag anything overdue on either side."
The AI calls list_invoices and list_bills, nets them out, and highlights overdue items — the report you'd otherwise build by hand across two screens.
💸 Chasing what's owed to you
"List every invoice that's still unpaid or partially paid, oldest first, with how many days overdue each one is. Group them by client."
Then, to act on it:
"Draft a polite payment reminder email for the three most overdue clients, mentioning the invoice number and amount."
The AI reads the data via MCP and writes the emails in the same chat — you review and send. (It can't email on your behalf through MCP; that stays in your hands.)
🧾 Planning vendor payments
"What bills are due in the next 14 days, and what's the total cash I need to cover them?"
"Of everything we owe, which vendor are we most exposed to right now?"
👥 Working with names, not IDs
Here's a small thing that makes a big difference. Invoices and bills are stored against a client/vendor id, not a name. Smart Dhandha's list_parties tool lets the AI turn a name into that id automatically — so you can just say the name:
"How much has Acme Retail invoiced us this quarter, and how much is still outstanding?"
Behind the scenes the AI runs list_parties to find Acme's id, then filters list_invoices by it. You never see the plumbing.
🏢 Running more than one business
If your login owns several organisations, just name the one you mean:
"In my Acme Traders business, what's unpaid this month?"
The AI calls list_organizations to find that business's id, then scopes every
follow-up question to it — and you can only ever see organisations you're a
member of. (Connected with an API key instead? It's locked to that one
organisation.)
🌴 HR and leave
"Who's on approved leave next week?"
"Show me all pending leave requests I still need to approve, with the employee and dates."
"How many sick days has the team taken this month?"
📊 The weekly review
"It's Monday. Give me a founder's weekly review: cash coming in (unpaid invoices), cash going out (bills due this week), and any staffing gaps from approved leave. Keep it under 150 words and end with the single most urgent action."
This is where MCP shines — one prompt, three tools, a synthesised answer that would normally be a 20-minute dashboard crawl.
Turning prompts into (light) automation
Most tools are read-only, so today you mainly automate the asking, monitoring, and reporting — plus the paperwork: "apply 2 days of earned leave for Thursday–Friday" or "claim ₹1,450 for the client-visit cab" now work straight from chat (they land as pending approvals). That's a lot of leverage:
- Save a "Weekly review" as a reusable prompt. In Claude Projects (or a ChatGPT custom GPT / saved prompt), store the weekly-review instruction above with the Smart Dhandha connector attached. Now the report is one click, every Monday.
- Scheduled check-ins. If your client supports scheduled or recurring prompts, point one at "flag any invoice that crossed into overdue since yesterday" and let it nudge you.
- A finance co-pilot persona. Give the assistant standing instructions: "You have read-only access to our books via Smart Dhandha. When I ask about money, always check live data before answering, show amounts in ₹, and never guess." Accuracy goes up, hallucinations go down.
Honest limit: the AI can submit (a leave request, a reimbursement claim, an expense entry) but never decide — approving, paying, and deleting stay in the app, behind a human. Drafting invoices over MCP is the next milestone.
Test it yourself with curl (for the technical reader)
Every tool call is a JSON-RPC request over the MCP Streamable HTTP transport. Handy for debugging a connection:
curl -N https://smartdhandha.com/api/mcp/mcp \
-H "Authorization: Bearer sd_live_your_key_here" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"list_invoices","arguments":{"status":"sent","limit":5}}}'
Filters the AI fills in for you, listed so you know what's possible:
| Filter | Applies to | Example phrase |
|---|---|---|
status | invoices, bills, leaves | "only unpaid invoices", "pending leaves" |
from / to | all | "between April 1 and June 30" |
organizationId | all data tools | "use my Acme Traders business" (resolved via list_organizations) |
clientId / vendorId | invoices / bills | "for client Acme" (resolved via list_parties) |
employeeId | leaves | "for Priya" |
type | parties, leaves | "only vendors", "sick leaves" |
q | parties, invoices | "a client called Acme", "invoice INV-004…" |
Results are paginated (20 per page, up to 100) — just ask for "the next page" or "all of them" and the AI keeps going.
How it stays safe 🛡️
Handing an AI a window into your books is a fair thing to be cautious about. Here's what keeps it tight:
- Read-only. The live tools only read. Nothing can be created, edited, or deleted through MCP — full stop.
- Log in with your own account. Claude and ChatGPT connect via OAuth — you sign into Smart Dhandha and the AI receives a token. There's no key sitting in a chat box to leak.
- Scoped access. A connection sees only what its scopes allow — connect for
billing:readand it can't touch leave data, whether you signed in or used a key. - Your org only. Every query is automatically fenced to your organisation. One business can never see another's records.
- No data leakage on errors. Invalid inputs return a clean validation message — never internal query details.
- Revoke anytime. Remove a connected app or revoke a key in Settings → Developer and access stops immediately.
- Fair-use credits (keys). API keys carry a monthly allowance that caps runaway usage and resets automatically.
Good hygiene: prefer the login flow for Claude/ChatGPT; for API keys, use the minimum scopes needed, set an expiry on anything temporary, and review your key list now and then — retire what you don't recognise.
Troubleshooting
| Symptom | Fix |
|---|---|
| Claude asks for Client ID / Secret | Leave both blank and click Connect — the app registers itself automatically. |
401 Unauthorized (API-key client) | Missing or mistyped key. Check the Authorization: Bearer sd_live_… header. |
| "missing the 'billing:read' scope" | API key: add the scope in Settings → Developer. Connected app: reconnect and approve that access. |
429 / "credit limit reached" | API-key allowance used up — resets 30 days after the window start, or raise the limit. (Login-based connections aren't credit-metered.) |
| Client won't connect | Make sure the URL ends in /api/mcp/mcp (not /api/mcp). |
| "No matching records" / empty results | There genuinely aren't any — widen the date range or drop a filter and ask again. |
| AI answers without checking data | Tell it explicitly: "Use the Smart Dhandha connector and check live data before answering." |
FAQ
Is my data safe to hand to an AI? The MCP tools are read-only and scoped to your organisation, so the worst an assistant can do is read the data you granted. It can't change your books. Claude and ChatGPT connect by logging into your account (OAuth), so there's no key to leak.
Do I have to paste an API key into Claude or ChatGPT? No. Those connect via a login flow — add the URL, click Connect, sign in. API keys are only for clients that can't do OAuth, like Cursor, VS Code, and scripts.
Can it send emails or make payments? No. It can draft a reminder or tell you what to pay, but sending and paying stay with you. Write actions are coming, and will always require an explicit confirmation.
Does this cost extra? No separate MCP billing. Login-based connections aren't credit-metered; API keys use their existing allowance.
Which AI clients work? Anything that speaks MCP — Claude, ChatGPT, Cursor, and custom agents. Same connection URL everywhere; Claude/ChatGPT log in, key-based clients send a Bearer header.
What's next? Compliance & calendar tools ("what GST filings are due this month?"), payroll insights, and guarded write actions behind confirmation.
TL;DR — get started
- In Claude or ChatGPT, add the connector
https://smartdhandha.com/api/mcp/mcp, leave Client ID/Secret blank, click Connect, and log in with your Smart Dhandha account. (Cursor/scripts: use an API key as a Bearer header instead.) - Ask your AI about your business — cash in, cash out, who's off. Your dhandha is now AI-ready. 🚀
Want the raw REST + curl reference behind the same API keys? See the API reference.

