Skip to content
Datavrn logo

Datavrn MCP server

Which servers in the official MCP registry are Datavrn's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-24

← Back to Datavrn

Whose server it is
  • Registry namecom.datavrn/schedule-iiiverified in the MCP registry

The registry name sits under datavrn.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-24
  • Stateanswerschecked 2026-10-24
  • Tools67
  • Server calls itselfmcp-typescript server on vercel
  • Server version0.1.0
  • Protocol version2025-06-18

On 2026-10-24 the server answered initialize and tools/list without a sign-in. First answer in 540 ms.

Should an agent connect itNot proven either way yet
  • Its tools do every use case we checked: turn a trial balance into financial statements in Excel; trace every reported figure back to its source.
  • Checked on 3 of the 7 days it takes to judge reliability.

Once connected

  • For "turn a trial balance into financial statements in Excel", the likely first call is list_clients.
  • For "trace every reported figure back to its source", the likely first call is list_clients.
  • create_client, upload_trial_balance, set_header_row, ingest_upload, create_upload_link change data without a sign-in: anyone with the address can call them.
  • Its definitions take about 32858 tokens of context: enable only the tools a task needs.
  • Parameters are untyped or undescribed in 23 of 67 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 3, the first on 2026-10-24
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 3 so far
  • What an agent can do with it2 of 2 use cases
  • Answeredmeasuring3 of the 7 daily checks it takes to print a share
  • Median first answer424 ms
  • Space in an agent's context≈ 32,858 tokensthe definitions of all its tools (67), which an agent carries on every turn
  • Tool definitionsA · 94 of 100
  • Typed results0 of 67 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 23 of 67

What an agent can do with it

  • can do · turn a trial balance into financial statements in Excel
  • can do · trace every reported figure back to its source
  • not sure · reconcile allocations and adjustments into one management view

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: create_client, upload_trial_balance, set_header_row, ingest_upload, create_upload_link

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers67 tools · read 2026-10-24
  • list_clients

    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.

  • create_client

    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.

  • upload_trial_balance

    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…

  • get_upload

    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.

  • set_header_row

    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.

  • confirm_column_mapping

    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…

  • ingest_upload

    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…

  • list_periods

    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.

  • get_schedule3_workspace

    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…

  • list_grouping_suggestions

    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…

  • confirm_groupings

    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…

  • save_adjustments

    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…

  • save_py_values

    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…

  • save_asset_movements

    Save fixed-asset movements (additions, deletions, depreciation charge, depreciation on deletions) per gross-block line for the PPE schedule.

  • save_provision_movements

    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…

  • save_reserves_movements

    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…

  • save_share_capital

    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.

  • save_statement_settings

    Save statement settings (rounding unit, signatory details, company information used on the statement face).

  • save_disclosures

    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…

  • declare_capture_na

    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…

  • confirm_capture_review

    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…

  • revoke_capture_declaration

    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…

  • copy_capture_declarations

    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…

  • save_partner_capital

    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…

  • get_partner_capital

    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…

  • save_accounting_policies

    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…

  • save_regulatory_affirmations

    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…

  • list_statement_policy_choices

    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…

  • get_finalise_readiness

    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…

  • finalise_statement

    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…

  • get_comparative_source_state

    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…

  • assert_previous_year_no_activity

    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…

  • generate_schedule_iii

    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…

  • get_job

    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"…

  • list_snapshots

    List the frozen Schedule III workbook versions for an entity (newest first), including each version’s period, template, and unclassified count at build time.

  • get_workbook_download

    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.

  • create_upload_link

    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…

  • get_upload_link_status

    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.

  • get_statement_figures

    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…

  • get_statement_notes

    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…

  • get_tb_rows

    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…

  • get_pending_work

    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…

  • list_allocation_runs

    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…

  • get_allocation_account_figures

    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…

  • get_allocation_target_figures

    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…

  • get_spreading_reconciliation

    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…

  • list_budgets

    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…

  • get_budget

    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…

  • get_variance_report

    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…

  • get_consolidated_statements

    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…

  • list_cost_centres

    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…

  • create_cost_centre

    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…

  • list_profit_centres

    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.

  • create_profit_centre

    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…

  • list_account_mappings

    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…

  • confirm_centre_mappings

    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…

  • list_reporting_lines

    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…

  • confirm_reporting_lines

    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…

  • get_setup_status

    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…

  • list_replacements

    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…

The first 60 of 67, as the server listed them.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "schedule-iii": {
      "type": "http",
      "url": "https://app.datavrn.com/api/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http datavrn https://app.datavrn.com/api/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://app.datavrn.com/api/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.