Model Context Protocol (MCP) server for freee API integration
Schedule Iii is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Deterministic Schedule III statements for Indian companies: trial balance in, Excel workbook out.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http schedule-iii-mcp https://app.datavrn.com/api/mcp
# 2 — ask your agent for something these tools do
# list_clients, create_client, upload_trial_balance and 64 more
Schedule Iii costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http schedule-iii-mcp https://app.datavrn.com/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
67 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List the entities (companies) this credential can work with. Call this first to resolve the client_id every other tool needs. Returns each entity id and name.
No parameter schema on file.
Create a new entity (company) in the organization. Requires a Manager-role key. Use only when the user explicitly asks to set up a new entity; show them the name you will create first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| business_model_code | no | — |
Stage a Trial Balance spreadsheet (xlsx or csv, max 4 MB) for an entity by INLINING its bytes as base64. This path is ONLY for programmatic callers (a script, Claude Code, an automation) that already have the raw file on disk. If a HUMAN has the file — e.g. they attached it to this chat — do NOT use this tool and do NOT base64-encode the file: call create_upload_link instead and give them the link
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| file_name | string | yes | The file's name, e.g. 'tb-2026-03.xlsx'. |
| file_base64 | string | yes | The file bytes, base64-encoded. |
| format | string | no | Leave unset — the assistant handles Trial Balances only; any other format is refused (use the Datavrn web app). |
| source | string | no | Set 'tally_file' when the file is a Tally xlsx export; omit otherwise. |
Read an upload session: status, detected header row and columns, the confirmed mapping (if any), and the stored validation outcome. Use to check what a staged upload still needs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
Correct the detected header row of a staged upload (1-based). Only needed when get_upload/upload_trial_balance shows the wrong row was detected.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
| header_row | integer | yes | — |
Confirm the column→field mapping for a staged upload and run validation. Returns the full validation result (row counts, warnings, blocking issues). Mapping suggestions are never auto-applied — pass exactly the mapping your user approved. Review any warnings with your user before ingesting.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
| mapping | object | yes | — |
| options | object | no | — |
| save_as | string | no | — |
Commit a validated upload into the entity’s books. This is a TWO-CALL approval: if the upload has any warnings, or would permanently delete existing trial-balance rows for a period it covers, the first call writes NOTHING and refuses with every warning, the exact record counts, and a short-lived removal_token. Show your user every warning and both counts, get their explicit go-ahead, then resend t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
| acknowledge_warnings | boolean | no | — |
| acknowledged_state_digest | string | no | Browser/REST only, and IGNORED on the agent connection exactly as acknowledge_warnings is: the destroy_state_digest returned by the confirm-mapping step, resent unchanged so the server can prove the a |
| confirm_merges | array | no | — |
| removal_token | string | no | Only include the short-lived token returned by the removal preview for this exact upload. |
| removal_count | integer | no | The exact removal count returned by the removal preview. |
List the reporting periods a Schedule III statement can be prepared for (periods with a live Trial Balance). Returns period ids for get_schedule3_workspace, save_py_values, and generate_schedule_iii.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
THE state tool: grouping progress, every required capture answer, generated/finalised versions, finalisation blockers, and bounded per-version control summaries. Report generation never marks capture complete. Exception output is rule/severity/count only — no account names or amounts. Call this to know what is left before finalising.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
List ungrouped accounts with DETERMINISTIC grouping suggestions (curated rules + name/group-path matching — no AI is involved; Datavrn never applies a suggestion itself). Paginated. Each row carries a reason and a confidence tier: present them to your user GROUPED BY CONFIDENCE, and call out low-confidence and balance-bearing rows for individual attention — a single blanket approval is not a revie
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| limit | integer | no | Page size (default 50, max 200). |
| offset | integer | no | Rows to skip (default 0). |
| include | string | no | Which rows to page: 'suggestions' (default), 'confirmed' (already-grouped accounts), or 'both'. |
| confidence | string | no | Keep only suggestion rows in this confidence tier ('none' = accounts with no deterministic suggestion). Filters rows only — the summary counts stay over the whole population. |
| has_balance | boolean | no | Keep only suggestion rows whose account carries a live balance (true) or not (false). |
Persist USER-approved account→line groupings. Omitted accounts stay unchanged. Only explicit leaf_code:null clears a saved grouping. When clearing a saved grouping, use the current grouping_version from list_grouping_suggestions. An actual clear first returns an approval request; nothing changes then. Resend the unchanged request with the approval details to proceed. Clearing an already-unclassifi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| decisions | array | yes | — |
| grouping_version | integer | no | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
Save one balanced adjustment journal entry (debits = credits) as an atomic whole entry. Creating a new entry proceeds immediately. Replacing an existing entry first returns an approval request; nothing changes then. Review the existing entry in the Schedule III workspace, then resend the unchanged request with the approval details to proceed. Amounts are strings in rupees.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| entry_no | integer | yes | — |
| lines | array | yes | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
Override the prior-year comparative for one or more statement lines with an audited figure. The prior-year column fills itself automatically from the previous year's Trial Balance read through the current groupings, so use this only when the audited financial statements differ from that figure (for example appropriations booked outside the ledger), or when there is no previous-year Trial Balance t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| values | array | yes | — |
Save fixed-asset movements (additions, deletions, depreciation charge, depreciation on deletions) per gross-block line for the PPE schedule.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| movements | array | yes | — |
Upsert provision movements (additions, amounts utilised) per provision line. Omitted saved lines stay unchanged. To remove selected saved lines, pass remove_leaf_codes; to remove the entire saved set, pass clear_all (never both). An actual removal first returns an approval request; nothing changes then. Review current movements in the Schedule III workspace, then resend the unchanged request with
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| movements | array | yes | — |
| remove_leaf_codes | array | no | — |
| clear_all | boolean | no | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
Upsert reserves/equity movements (transfers in/out, dividends, other changes) per reserves line. Omitted saved lines stay unchanged. To remove selected saved lines, pass remove_leaf_codes; to remove the entire saved set, pass clear_all (never both). An actual removal first returns an approval request; nothing changes then. Review current movements in the Schedule III workspace, then resend the unc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| movements | array | yes | — |
| remove_leaf_codes | array | no | — |
| clear_all | boolean | no | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
Save the share-capital reconciliation for the period: the opening share count, the shares issued and bought back during the year, and the amount issued and the amount bought back.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| opening_shares | yes | — | |
| shares_issued | yes | — | |
| shares_bought_back | yes | — | |
| amount_issued | string | yes | — |
| amount_bought_back | yes | — |
Save statement settings (rounding unit, signatory details, company information used on the statement face).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| entity_name_override | yes | — | |
| cin | yes | — | |
| registered_office | yes | — | |
| unit_label | string | yes | — |
| unit_divisor | number | yes | — |
| weighted_equity_shares | yes | — | |
| weighted_potential_equity_shares | yes | Weighted average potential equity shares (dilutive — options, convertibles). ADDITIONAL shares from options/convertibles only — not the total diluted share count. Enter 0 if the company has none. Do n | |
| weighted_equity_shares_py | yes | — | |
| weighted_potential_equity_shares_py | yes | Weighted average potential equity shares — previous year (dilutive). ADDITIONAL shares from options/convertibles only — not the total diluted share count. Enter 0 if the company has none. Do not repea | |
| equity_face_value | yes | — | |
| font_name | string | no | — |
| entity_class | no | — | |
| include_cfs | boolean/null | no | — |
| suppress_nil_lines | boolean | no | — |
| rounding_off | boolean | no | Whole-unit value rounding. When true (the default), every figure is rounded to the presentation unit and each CA-read total (profit, total assets, equity and liabilities) equals the rounded exact figu |
Save the notes/disclosures sections the user provides for the statement. Some of these sections IDENTIFY PEOPLE BY NAME — shareholders, promoters and related parties — so send only what your user has given you, exactly as they gave it. SECTIONS YOU DO NOT SEND ARE LEFT ALONE. Send only the sections you are changing; every other section keeps exactly what is saved. Within a section you DO send, the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| payload | object | yes | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
Record that a capture section had NOTHING to report this period, DOES NOT APPLY to this entity, or that this is the entity’s FIRST YEAR (previous-year figures only). These are three different statements and are not interchangeable: "nothing this period" means the section applies but had no activity; "does not apply" means it never applies to this entity at all. This is your user’s professional ass
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| capture_kind | string | yes | — |
| reason_code | string | yes | — |
| note | string | no | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Record your user’s confirmation that they have REVIEWED a whole section and it is complete — the entire previous-year comparative column, or the entire disclosure set. A review confirmation is your user’s professional assertion, recorded as authorised by them. Before calling this, show them what you are confirming — the whole comparative, or the whole disclosure set — and get their explicit go-ahe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| capture_kind | string | yes | — |
| reason_code | string | yes | — |
| note | string | no | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Withdraw a recorded capture answer or review confirmation. What happens next depends on what answers the section: withdrawing a “nothing to record”/“does not apply” answer or a review confirmation makes Statement readiness show the section as UNANSWERED again; withdrawing a leftover earlier note from a section that is answered by its saved rows removes the record and the section STAYS answered. A
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| capture_kind | string | yes | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Copy the previous period’s "nothing this period" and "does not apply" answers into this period, for sections that have no answer yet. It NEVER copies a review confirmation — a review is about this period’s content and cannot be inherited. Last period’s answer is not evidence about this period: list what it would copy to your user, section by section, and get their go-ahead before calling it. Answe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Save the partner or owner capital schedule for an LLP or other non-corporate entity — Note 3a (capital account) or Note 3b (current account), one section per call. Send the COMPLETE schedule for the section you name: anyone you leave out is removed, and a renamed partner reads as one removal plus one addition. If your request would remove anyone, would change the figures of a partner who stays — i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| account_kind | string | yes | — |
| rows | array | yes | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Read the partner or owner capital schedule currently on file — Note 3a and Note 3b. THIS RETURNS PEOPLE’S NAMES, along with each person’s profit-sharing ratio and amounts. Call it before save_partner_capital so you can show your user what is on file and what your change would do — that save replaces the whole section, so a schedule you cannot see is a schedule you cannot safely replace. It also re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| account_kind | string | no | Limit to one section: 'capital' is Note 3a, 'current' is Note 3b. Omit for both. |
| limit | integer | no | Page size (default 50, max 200). |
| offset | integer | no | Rows to skip (default 0). |
Save the Significant Accounting Policies text (Note 2) your user has chosen, one policy per title. SEND THE COMPLETE SET EVERY TIME: this replaces all of Note 2, so any title you leave out of this call is removed — including one someone answered in the Datavrn app. Call list_statement_policy_choices first and send back every title. If your call would drop a saved policy, Datavrn saves nothing and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| policies | object | no | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Save the CARO / Other Regulatory Information affirmations your user has confirmed, one per title. SEND THE COMPLETE SET EVERY TIME: this replaces the whole Other Regulatory Information note, so any title you leave out of this call is removed — including one someone answered in the Datavrn app. Call list_statement_policy_choices first and send back every title. If your call would drop a saved affir
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| affirmations | object | no | — |
| removal_token | string | no | — |
| removal_count | integer | no | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
List every Significant Accounting Policy and Other Regulatory Information affirmation for this statement, with the text that will print, whether a template choice is still unresolved, and what was answered LAST YEAR. This is what makes two rules actionable rather than decorative: never resolve a bracketed choice for your user, and always tell them when an answer differs from last year. CHECK THE R
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| limit | integer | no | Page size (default 50, max 200). |
| offset | integer | no | Rows to skip (default 0). |
Read the full finalisation state of one statement version, and get the approval finalise_statement needs. Call it ONCE immediately before finalising — it re-reads the stored workbook, so do not poll it. SHOW YOUR USER EVERY ROW THIS RETURNS — the gates that must be green, each warning they would be accepting and why, how many input cells are still empty, any control that could not be evaluated, an
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| snapshot_id | string | yes | The statement version id — from list_snapshots or get_schedule3_workspace. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Seal a statement version as Datavrn’s permanent client copy, recorded as authorised by the member you name. THIS IS NOT APPROVAL OR ADOPTION OF THE FINANCIAL STATEMENTS AND IT IS NOT A SIGNATURE. It does not discharge section 134(1) for a company or section 34(3) for an LLP. THERE IS NO UNDO. A change afterwards means generating a new version and finalising that one; the version you seal here stay
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| snapshot_id | string | yes | — |
| acknowledgments | object | yes | — |
| confirm_token | string | yes | — |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Check whether this statement’s previous-year comparative can be sealed, and get the approval assert_previous_year_no_activity needs. Datavrn refuses to finalise a statement whose previous-year figures come from a trial balance drawn AFTER the year-end closing entries: that derives a previous-year Profit and Loss of all zeroes which foots perfectly and is not last year’s results. When post_closing_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Record your user’s assertion that the previous year genuinely had no activity, so this statement’s all-nil previous-year Profit and Loss is a fact rather than a closing-entry artefact. This clears Datavrn’s refusal to finalise it. THIS IS A PROFESSIONAL ASSERTION ABOUT A CLIENT’S ACCOUNTS, RECORDED IN THE NAMED MEMBER’S NAME AND KEPT WITH THE STATEMENT. Only send it when your user has told you, in
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| reason | string | yes | Your user’s own words: why the previous year had no activity. Recorded with the statement and shown to whoever reviews it. |
| confirm_token | string | yes | The approval from get_comparative_source_state. Call it first and present its finding to your user. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Queue the Schedule III workbook build (returns a job_id to poll with get_job — the build runs as a background job). REFUSES when ungrouped accounts exist unless acknowledged: before acknowledging, present the ungrouped accounts to your user and obtain their explicit go-ahead; record it in acknowledge_reason and pass the exact count in acknowledge_count — an acknowledgement WITHOUT its count is alw
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | — |
| period_id | string | yes | — |
| acknowledge_unclassified | boolean | no | — |
| acknowledge_count | integer | no | — |
| acknowledge_reason | string | no | — |
| acknowledge_multi_month_pnl | boolean | no | — |
| acknowledge_month_count | integer | no | — |
Poll a background job by id until status is succeeded or failed. A failed job carries its user-safe error reason — show it to your user. Jobs run on a background worker that claims queued work on a schedule, so a job sitting at "queued" (0 attempts) for the first few minutes is NORMAL, not a fault — keep polling every ~30–60s and reassure the user it is being prepared; do NOT report this as an err
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | The job id returned by generate_schedule_iii. |
List the frozen Schedule III workbook versions for an entity (newest first), including each version’s period, template, and unclassified count at build time.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | no | Filter to one template. |
Mint a short-lived signed URL for a frozen workbook version (the Excel file). Give the URL to your user to open in a browser — it needs no login and expires in about 10 minutes. The bytes are immutable and integrity-hashed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| snapshot_id | string | yes | The snapshot id from list_snapshots. |
Mint a single-use, login-free upload link so a file reaches Datavrn WITHOUT passing through your context, where it cannot truncate or corrupt. Use this whenever a human has the file (a trial balance export, etc.) — and also whenever YOU hold the file and it is larger than about 10 KB. This is the RELIABLE path at that size: inlined base64 mutates often enough that the damage arrives as a plausible
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| file_name | string | yes | The file the user is expected to upload, e.g. 'tb-2026-03.xlsx' (shown on the upload page). |
| format | string | no | Leave unset — the assistant handles Trial Balances only; any other format is refused (use the Datavrn web app). |
| source | string | no | Set 'tally_file' when the file is a Tally xlsx export; omit otherwise. |
Check an upload link's state: pending (the user has not uploaded yet), uploaded (returns the upload_id — continue with get_upload), or expired (mint a fresh link with create_upload_link). Poll after the user says they uploaded the file.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| link_id | string | yes | The link id returned by create_upload_link. |
Read a generated Schedule III statement's figures: the balance-sheet and profit-and-loss faces, current-year and previous-year balance-sheet tie verdicts separately (a null verdict means UNKNOWN, never a pass: either no comparative was captured, or the version predates per-column balance recording), the unclassified count, and the notes listed by number. Also returns bounded exception counts by ru
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| version | integer | no | A specific statement version; omit for the latest. |
Read the line-by-line breakdown of a generated statement's notes — every line's current and prior-year amount, and the note total. Pass note_numbers (from get_statement_figures' note_index) to fetch specific notes, or omit for all. Use this to answer "what's in Other Expenses?" or "what makes up trade receivables?". Each line has a kind: 'component' (an additive line), 'subtotal' (a presentational
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| period_id | string | yes | The reporting period id — from list_periods. |
| version | integer | no | A specific statement version; omit for the latest. |
| note_numbers | array | no | Specific note numbers to fetch (from note_index); omit for all notes. |
| lines_page | integer | no | For a single very large note returned in line pages: the 1-based line page to fetch (fetch exactly one note; keep going until has_more_lines is false). |
Read the SOURCE DATA behind a statement: the trial-balance rows (account name, debit, credit) as landed for a period, BEFORE grouping — the pre-statement numbers, not statement figures. PREFER FILTERS over fetching everything: name_patterns (e.g. ['cash','bank','od']), side ('debit'/'credit' by net balance), and min_abs_balance return a small exact subset with its own debit/credit totals — e.g. wr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period_id | string | yes | The reporting period id — from list_periods. |
| name_patterns | array | no | Up to 10 case-insensitive substrings; an account matches if its name contains ANY of them (e.g. ['gst','tds']). |
| side | string | no | Keep only accounts whose net balance falls on this side (debit = debits exceed credits). Accounts netting to zero match neither. |
| min_abs_balance | string | no | Keep only accounts whose balance (the larger of its debit/credit) is at least this many rupees — a decimal string like '100000'. |
| page | integer | no | 1-based page number (default 1). |
| page_size | integer | no | Rows per page (default 50, max 500 — prefer filters over big pages). |
Answer "what's left to do?" across every entity you can see — one row per entity, with what is blocking its Schedule III statement: whether the trial balance is in, how many accounts are still ungrouped, the latest generated version, and whether it has been finalised. Pass period_label to pick a period, or omit to default to the period most of your entities have a trial balance for (not necessaril
| Parameter | Type | Required | Notes |
|---|---|---|---|
| period_label | string | no | Reporting period label, e.g. '2026-03'; omit to default to the period most of your entities have a trial balance for. |
MANAGEMENT data class. Discover persisted allocation runs and their separate cost-centre and profit-centre reconciliations; do not add them together. This does not generate or recompute allocation. Money is decimal-string rupees. Choose one allocation_dimension in a detail read. Results are ordered period, version, then run id, and the signed page_token is pinned to the complete filtered source: i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period | string | no | Optional management month in YYYY-MM. |
| current_only | boolean | no | Return only the latest generated version per period (default true); this is not a freshness claim. |
| page_size | integer | no | Rows per source-pinned page (default 20, max 50). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Read one explicit cost or profit partition of the current persisted allocation run at account grain. Cost-centre and profit-centre reconciliations are independent views of the same P&L activity; do not add them. Books figure plus spreading adjustment equals MIS figure, all as decimal-string rupees. Filter account names or minimum absolute MIS amount before paging. The signed
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period | string | yes | Management month in YYYY-MM. |
| allocation_dimension | string | yes | Required partition: cost for cost-centre or step-down questions; profit for profit-centre questions. Do not add the two views. |
| account_name_patterns | array | no | Up to 10 case-insensitive account-name substrings; any match is retained. |
| min_abs_mis | string | no | Minimum absolute MIS figure in rupees as a decimal string, e.g. '100000'. |
| page_size | integer | no | Rows per source-pinned page (default 50, max 200). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Read one explicit cost or profit partition of the current persisted allocation run at account × target × source × mode grain, with decimal-string allocated amounts. Cost-centre and profit-centre reconciliations are independent views of the same P&L activity; do not add them. Final post-step-down cost uses the complete selected cost population: non-step-down plus signed step-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period | string | yes | Management month in YYYY-MM. |
| allocation_dimension | string | yes | Required partition: cost for cost-centre or step-down questions; profit for profit-centre questions. Do not add the two views. |
| account_name_patterns | array | no | Up to 10 case-insensitive account-name substrings; any match is retained. |
| target_types | array | no | Restrict to allocation target types. |
| allocation_sources | array | no | Restrict to allocation sources. |
| min_abs_amount | string | no | Minimum absolute allocated amount in rupees as a decimal string, e.g. '100000'. |
| page_size | integer | no | Rows per source-pinned page (default 50, max 200). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Read the persisted books-to-MIS spreading reconciliation, not a new allocation run. Accounts view gives account-grain books plus adjustments equals MIS; adjustments view requires one account and pages its rule adjustments. Money is decimal-string rupees. Whole-run summary figures never change with account filters. The signed page_token is source-pinned, so restart at page 1
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period | string | yes | Management month in YYYY-MM. |
| view | string | no | accounts (default) or adjustments; adjustments requires account_id. |
| account_id | string | no | Required for adjustments view; an account in this entity and run. |
| account_name_patterns | array | no | Up to 10 case-insensitive account-name substrings; any match is retained. |
| page_size | integer | no | Rows per source-pinned page: accounts default 25/max 100; adjustments default 50/max 200. |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Discover budget ids and versions without identity fields. Locked FX rate and all money-valued fields are decimal strings. Filter status or fiscal-year start before paging. The signed page_token is pinned to the complete filtered source; restart at page 1 if source_changed. This lists budget headers only, not cells, approvals identities, or a recalculated budget.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| status | string | no | Optional budget status. |
| fiscal_year_start | string | no | Optional fiscal-year first-of-month date, e.g. 2026-04-01. |
| page_size | integer | no | Rows per source-pinned page (default 20, max 50). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Read one versioned budget: identity-free header, its pinned P&L tree, and filtered/paginated cells with entered-versus-inferred truth. Amounts and locked FX rate are decimal strings. Filter months, lines, centres, or inference before paging; the signed page_token is source-pinned, so restart at page 1 if source_changed. Cells across different P&L lines are not one meaningful
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| budget_id | string | yes | Budget id from list_budgets. |
| month | string | no | Optional budget month in YYYY-MM. |
| line_codes | array | no | Up to 25 P&L line codes. |
| cost_centre_ids | array | no | Up to 25 cost-centre ids. |
| inference | string | no | Cell inference state (default all). |
| page_size | integer | no | Cells per source-pinned page (default 100, max 200). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
MANAGEMENT data class. Read the existing budget-or-prior variance report for a month; it never recalculates it. Amounts are decimal strings; a null actual or variance means unavailable, never zero. Rows view has whole-report unfiltered rollups and no cross-side grand total; filters affect only rows and filtered grain counts. Explanations view withholds internal notes and may redact structured PII.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period | string | yes | Management month in YYYY-MM. |
| basis | string | no | Comparator basis (default budget). |
| view | string | no | Report rows (default) or safe explanations. |
| line_codes | array | no | Up to 25 P&L line codes. |
| cost_centre_ids | array | no | Up to 25 cost-centre ids. |
| page_size | integer | no | Rows per source-pinned page (default 50, max 100). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
CONSOLIDATED data class. Read one sealed group profit-and-loss, balance-sheet, or cash-flow face for an exact periodicity and period. The response exposes presentation currency and exactly one decimal-string amount per line: section-natural for P&L/BS, signed cash movement for CFS. Amounts are persisted on the sealed run; P&L/BS labels are current display metadata and the signed page_token is sour
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group | string | yes | An active group UUID or its exact case-insensitive display name. |
| periodicity | string | yes | Period grammar: monthly YYYY-MM, quarterly FYyyyy-Qn, annual FYyyyy. |
| period | string | yes | The period matching periodicity. |
| statement | string | no | Statement face (default pnl). |
| page_size | integer | no | Rows per source-pinned page (default 50, max 100). |
| page_token | string | no | Signed continuation from the prior page; restart without it if source_changed. |
List the cost centres for an entity. Use this before proposing account mappings so you can group the proposal by target name and distinguish operating from support centres. This is status-only: it returns names, short codes, kinds and each centre’s parent_cost_centre_id, never rupee amounts and never an owner’s name. Read parent_cost_centre_id (null at the top level) to show the user the hierarchy
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| page | integer | no | 1-based page number (default 1). |
| page_size | integer | no | Rows per page (default 100, max 200). |
Create one cost centre for an entity after showing the user the exact name, kind, parent, effective date, and reason. This is one explicit centre at a time; there is no apply-all shortcut. After creating it, call list_cost_centres again and explain which mapping suggestions can now use it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| name | string | yes | The cost-centre name to create. |
| centre_kind | string | no | Operating or shared-support centre; defaults to operating. |
| parent_cost_centre_id | no | Optional existing parent cost-centre id. | |
| description | no | Optional plain-language description. | |
| code | no | Optional short code. | |
| effective_from | string | no | Date from which this centre applies; defaults to the start of the entity data. |
| reason | string | yes | Why the user asked for this centre. |
List the profit centres for an entity. Use this to explain available targets before a user confirms any explicit mapping. This is status-only: it returns names and hierarchy, never rupee amounts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| page | integer | no | 1-based page number (default 1). |
| page_size | integer | no | Rows per page (default 100, max 200). |
Create one profit centre for an entity after showing the user the exact name, optional parent, and description. This is one explicit centre at a time; there is no apply-all shortcut. Re-list the centres after creation so the user can see the new target before any mapping confirmation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| name | string | yes | The profit-centre name to create. |
| parent_profit_centre_id | no | Optional existing parent profit-centre id. | |
| description | no | Optional plain-language description. |
Review account-to-centre mapping status and deterministic suggestions for an entity. Each account carries TWO independent policies: mapping (the cost-centre policy) and profit_mapping (the profit-centre policy). Neither replaces the other. This is status-only: it returns account names, types, target names, confidence, reasons, and balance-bearing booleans, but never debit, credit, balance, or any
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| page | integer | no | 1-based page number (default 1). |
| page_size | integer | no | Rows per page (default 100, max 200). |
| unmapped_only | boolean | no | Return only accounts that still need a COST-centre policy. It does not filter on the profit dimension — use profit_unmapped_only for that. |
| profit_unmapped_only | boolean | no | Return only accounts that still need a PROFIT-centre policy — the rows behind profit_unmapped_total. Combine with unmapped_only to get accounts that need both. |
| balance_bearing_only | boolean | no | Return only accounts that carry a balance, without returning the balance itself. |
| name_patterns | array | no | Return accounts whose code or name contains at least one of these case-insensitive patterns. |
Persist only the explicit account-to-centre decisions the user approved. Before calling, show the proposal grouped by confidence tier and target with exact counts, call out every medium/low-confidence row, and get a clear approval for the enumerated items. Omitted accounts stay unchanged; there is no apply-all, auto-confirm, or use-suggestions flag. Each item writes ONE dimension, chosen by target
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| effective_from | string | yes | The effective date shown to the user. |
| items | array | yes | Every account decision explicitly approved by the user; never a blanket flag. |
| removal_token | string | no | Only include the short-lived token returned by the removal preview for this exact proposal. |
| removal_count | integer | no | The exact removal count returned by the removal preview. |
Review reporting-line classification status and deterministic suggestions for an entity and reporting period. This is status-only: it returns names, line labels, confidence, reasons, and balance-bearing booleans, but never debit, credit, balance, or any rupee amount. Present suggestions grouped by confidence tier and target, with exact counts and both unmapped_total and unmapped_with_balance; do n
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period_id | string | yes | The reporting period id from list_periods. |
| page | integer | no | 1-based page number (default 1). |
| page_size | integer | no | Rows per page (default 100, max 200). |
| unmapped_only | boolean | no | Return only accounts without a confirmed reporting line. |
| name_patterns | array | no | Return accounts whose code or name contains at least one of these case-insensitive patterns. |
Persist only the explicit reporting-line decisions the user approved. Before calling, show the proposal grouped by confidence tier and target with exact counts, flag every medium/low-confidence row, and get clear approval for the enumerated decisions. Omitted accounts stay unchanged. Sending leaf_code:null permanently removes that account saved reporting line; send it only when the user explicitly
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| decisions | array | yes | — |
| removal_token | string | no | Only include the short-lived token returned by the removal preview for this exact proposal. |
| removal_count | integer | no | The exact removal count returned by the removal preview. |
Answer "how do I get started?", "what do I do next?", or help a user who seems lost setting up. Returns where they are in the journey from an empty organization to a finished Schedule III statement, and the ONE next step to take. Call it WITHOUT client_id first (the organization view): it lists the entities this credential can see, or — if there are none — the step to create the first one. Then ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | no | An entity id (from list_clients or the organization view) for that entity’s full path; omit for the organization-level overview and, on an empty org, the create-entity step. |
List what a connected data source’s AUTOMATIC syncs have REPLACED for one entity — each one showing what was overwritten, how many records, and whether it can still be undone. Call this when a user says figures for a past period look wrong or changed on their own, and after any surprise in a period a connector covers. Datavrn keeps the replaced data for 30 days from the moment it was replaced: wit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| connection_id | string | yes | The connected data source’s id — from get_pending_work’s restorable_replacements rows, or from the entity’s data-sources page in the web app. |
Show EXACTLY what undoing one automatic sync would do, counted at this moment, and get the approval restore_replacement needs. destroy_count is how many records undoing it would DESTROY — everything currently held for that period, whoever or whatever put it there, including data a colleague uploaded since. restore_count is how many records would be put back. READ BOTH NUMBERS TO YOUR USER IN THEIR
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| connection_id | string | yes | The connected data source’s id — from list_replacements or get_pending_work. |
| event_id | string | yes | The replacement’s id — the id field of a list_replacements row. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Undo one automatic sync: destroy what is currently held for that period and put back the records the sync replaced, recorded as authorised by the member you name. THIS DESTROYS DATA. Everything currently held in that period goes — including anything uploaded or synced since — and is replaced by what was there before. Datavrn keeps a record of what this destroys, but it is NOT offered back on this
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| connection_id | string | yes | The connected data source’s id — the same one you previewed with. |
| event_id | string | yes | The replacement’s id — the same one you previewed. |
| expected_destroy_count | integer | yes | The destroy_count preview_replacement_restore returned and you showed your user. Send it back unchanged — a different number is refused, because the approval covers the act your user actually saw. |
| confirm_token | string | yes | The approval from preview_replacement_restore. Call it first and present both of its numbers to your user. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
List the uploads Datavrn is NOT counting as evidence of which entity a file belongs to. This happens when an entity’s chart of accounts grew or changed faster than Datavrn can vouch for from what it already holds — typically an acquisition, a migration, or a year-end restructure. NOTHING WAS REJECTED, BLOCKED OR CHANGED: the figures in those uploads are landed and live. What has not advanced is th
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Show ONE upload’s figures as they stand right now, and get the approval confirm_complete_chart needs. Call this after list_chart_rebaselines, for the one upload your user is considering. It reports the same counts the list does — how many distinctive ledger names Datavrn already treats as evidence (trusted_considered), how many this upload adds (incoming_considered), how many are on both sides (ma
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| source_snapshot_id | string | yes | The upload’s id — the snapshot_id field of a list_chart_rebaselines row. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Record your user’s explicit confirmation that one upload is an entity’s COMPLETE CURRENT chart of accounts, so Datavrn starts treating it as evidence when checking whether future files belong to that entity. Recorded as authorised by the member you name. THIS IS A PROFESSIONAL JUDGMENT, NOT A CALCULATION. Datavrn will never make it from the numbers, and neither should you: call preview_chart_rebas
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| source_snapshot_id | string | yes | The upload’s id — the snapshot_id field of a list_chart_rebaselines row. |
| state_digest | string | yes | The state_digest from the same preview_chart_rebaseline response, unchanged. It pins the figures your user was shown; a different one is refused. |
| confirm_token | string | yes | The approval from preview_chart_rebaseline. Call it first and present its counts to your user. |
| on_behalf_of | string | no | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. REQUIRED on an API-key connection — ask your user for it, do not gue |
Confirm the Datavrn connection is working and report what it can do. Call this first — or whenever the user asks whether Datavrn is connected — to get back the organization, the access profile (what this connection may see and do), and the next step. Running it successfully also marks the connection healthy in the user’s Datavrn settings.
No parameter schema on file.
Get the Datavrn agent guide: how connecting works (OAuth and API key), what an assistant can do, how reading a statement as data works, and the guarantees and limits — plus the current list of tools. Call this to answer a user's questions about how Datavrn works from canonical documentation instead of guessing.
No parameter schema on file.
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Schedule Iii or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Schedule Iii can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.