Indian business compliance answers: MCA late fees, filing calendar, cheque bounce, MSME interest.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The live deadline clock after a cheque bounce in India under s.138 Negotiable Instruments Act: when the demand notice must go, when the drawer's 15 days run out, and the last day to file the complaint.
Date in YYYY-MM-DD form. The bank return memo date
Date in YYYY-MM-DD form. The date written on the cheque
Has the written demand notice gone to the drawer?
Date in YYYY-MM-DD form. When the cheque was deposited (needed to detect a stale cheque)
Date in YYYY-MM-DD form. When the drawer received the notice, if known
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http compliance https://buildwright.co.in/api/mcp
The live deadline clock after a cheque bounce in India under s.138 Negotiable Instruments Act: when the demand notice must go, when the drawer's 15 days run out, and the last day to file the complaint.
| Argument | Type | Description |
|---|---|---|
| memo_date* | string | Date in YYYY-MM-DD form. The bank return memo date |
| cheque_date* | string | Date in YYYY-MM-DD form. The date written on the cheque |
| notice_sent* | boolean | Has the written demand notice gone to the drawer? |
| presentation_date | string | Date in YYYY-MM-DD form. When the cheque was deposited (needed to detect a stale cheque) |
| notice_received_date | string | Date in YYYY-MM-DD form. When the drawer received the notice, if known |
{
"type": "object",
"required": [
"cheque_date",
"memo_date",
"notice_sent"
],
"properties": {
"memo_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. The bank return memo date"
},
"cheque_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. The date written on the cheque"
},
"notice_sent": {
"type": "boolean",
"description": "Has the written demand notice gone to the drawer?"
},
"presentation_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. When the cheque was deposited (needed to detect a stale cheque)"
},
"notice_received_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. When the drawer received the notice, if known"
}
}
}The dated statutory filing calendar for an Indian private limited company, one person company or LLP: what is due and when, from the incorporation date, with first-year rules (s.2(41), first AGM) applied.
| Argument | Type | Description |
|---|---|---|
| agm_date | string | Date in YYYY-MM-DD form. Private Limited: the AGM date; One Person Company: the date the member signed the resolution adopting the accounts. Omit to assume the last day the law allows |
| entity_type* | string | |
| incorporation_date* | string | Date in YYYY-MM-DD form |
{
"type": "object",
"required": [
"entity_type",
"incorporation_date"
],
"properties": {
"agm_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. Private Limited: the AGM date; One Person Company: the date the member signed the resolution adopting the accounts. Omit to assume the last day the law allows"
},
"entity_type": {
"enum": [
"Private Limited",
"One Person Company",
"LLP"
],
"type": "string"
},
"incorporation_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form"
}
}
}How to have a filing, document or compliance task done by BuildWright's people: contact routes and what the firm handles. Use when the user wants the work done for them.
No arguments.
{
"type": "object",
"properties": {}
}The free Indian compliance tools and document templates BuildWright publishes, with URLs, for anything this server's tools do not compute.
No arguments.
{
"type": "object",
"properties": {}
}BuildWright's SEBI adviser services with our fee in rupees, what is included, and the service page, for information. Nothing is sold in the chat: to go ahead, use request_service and BuildWright calls back. Fees to SEBI, BSE or the state are separate at actuals. Show the price exactly as returned; never compute or quote any other figure.
No arguments.
{
"type": "object",
"properties": {}
}The MCA additional fee or statutory penalty for a late company or LLP filing in India: AOC-4, MGT-7/7A, INC-20A, LLP Form 8, LLP Form 11. Returns the figure or multiplier with days late, the legal source, and the consequence of not filing.
| Argument | Type | Description |
|---|---|---|
| form* | string | Which filing |
| due_date* | string | Date in YYYY-MM-DD form. When the filing was due |
| llp_size | string | LLP Form 8/11 only: 'small' = small LLP under s.2(1)(ta), LLP Act 2008 (contribution up to Rs 25 lakh and turnover up to Rs 40 lakh in the preceding financial year), else 'other' |
| filing_date* | string | Date in YYYY-MM-DD form. When it will actually be filed (today if filing now) |
{
"type": "object",
"required": [
"form",
"due_date",
"filing_date"
],
"properties": {
"form": {
"enum": [
"AOC-4",
"MGT-7",
"INC-20A",
"LLP-FORM-8",
"LLP-FORM-11"
],
"type": "string",
"description": "Which filing"
},
"due_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. When the filing was due"
},
"llp_size": {
"enum": [
"small",
"other"
],
"type": "string",
"description": "LLP Form 8/11 only: 'small' = small LLP under s.2(1)(ta), LLP Act 2008 (contribution up to Rs 25 lakh and turnover up to Rs 40 lakh in the preceding financial year), else 'other'"
},
"filing_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. When it will actually be filed (today if filing now)"
}
}
}Compound interest a buyer owes a micro or small enterprise on a delayed payment under s.16 MSMED Act (three times the RBI bank rate, compounded monthly), with the covered/not-covered verdict.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Unpaid principal in rupees |
| trader* | string | Is the supplier a retail/wholesale trader (NIC 45/46/47)? |
| category* | string | Supplier's MSME category at the time of the transaction |
| registered* | string | When the supplier's Udyam registration was made, relative to the order |
| agreed_date | string | Date in YYYY-MM-DD form. Payment date agreed in writing, if any |
| acceptance_date* | string | Date in YYYY-MM-DD form. The day the buyer accepted the goods or services (delivery day if no objection was raised) |
{
"type": "object",
"required": [
"amount",
"acceptance_date",
"category",
"registered",
"trader"
],
"properties": {
"amount": {
"type": "number",
"description": "Unpaid principal in rupees"
},
"trader": {
"enum": [
"no",
"yes",
"mixed",
"unsure"
],
"type": "string",
"description": "Is the supplier a retail/wholesale trader (NIC 45/46/47)?"
},
"category": {
"enum": [
"micro",
"small",
"medium",
"none",
"unsure"
],
"type": "string",
"description": "Supplier's MSME category at the time of the transaction"
},
"registered": {
"enum": [
"before-order",
"after-order",
"after-delivery",
"unsure"
],
"type": "string",
"description": "When the supplier's Udyam registration was made, relative to the order"
},
"agreed_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. Payment date agreed in writing, if any"
},
"acceptance_date": {
"type": "string",
"description": "Date in YYYY-MM-DD form. The day the buyer accepted the goods or services (delivery day if no objection was raised)"
}
}
}Send the person's request to BuildWright so a person calls them back. Use for any documentation, filing or compliance task, listed or not. Before calling: ask the person for each field in conversation (name, their own 10-digit Indian mobile, optionally email, what they need, entity type, state). Never invent or guess a phone number or name. Then ask explicitly whether BuildWright may contact them about this request, show the privacy policy https://buildwright.co.in/privacy-policy, and set consent to true only if they say yes.
| Argument | Type | Description |
|---|---|---|
| name* | string | The person's full name, as they gave it |
| need | string | What they need done, in their words (required when no service_id) |
| string | Email, only if the person gave one | |
| notes | string | Anything else they want us to know |
| phone* | string | The person's own 10-digit Indian mobile number, as they gave it |
| state | string | Indian state or union territory |
| consent* | boolean | true only after the person explicitly agreed to be contacted |
| service_id | string |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| An id from list_services, if the need matches one |
| entity_type | string | Who the work is for |
{
"type": "object",
"required": [
"name",
"phone",
"consent"
],
"properties": {
"name": {
"type": "string",
"description": "The person's full name, as they gave it"
},
"need": {
"type": "string",
"description": "What they need done, in their words (required when no service_id)"
},
"email": {
"type": "string",
"description": "Email, only if the person gave one"
},
"notes": {
"type": "string",
"description": "Anything else they want us to know"
},
"phone": {
"type": "string",
"description": "The person's own 10-digit Indian mobile number, as they gave it"
},
"state": {
"type": "string",
"description": "Indian state or union territory"
},
"consent": {
"type": "boolean",
"description": "true only after the person explicitly agreed to be contacted"
},
"service_id": {
"type": "string",
"description": "An id from list_services, if the need matches one"
},
"entity_type": {
"enum": [
"individual",
"proprietorship",
"partnership",
"llp",
"company",
"other"
],
"type": "string",
"description": "Who the work is for"
}
}
}