Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Basis

NPM · @BASIS1/MCP · 2 COMPONENTS

Parse Excel workbooks, evaluate formulas, trace dependencies and edit workbook models.

50 Trust /100

Last scanned (1 day ago)

Scores higher than 29% of npm servers

Category Data and Analytics

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability75
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2387 tokens (~99/item across 24 items; 24 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 24 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 50

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/@basis1/mcp@0.1.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 1 package
Packages resolved 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 24 exposed · ~2,387 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_sheet ~64

Add a new sheet to a session's workbook. The new sheet becomes the active sheet. Only works on sessions created from blank documents (not imported xlsx files).

NameTypeReqDescription
namestringyesDisplay name for the new sheet
session_idstringyesSession ID

No output schema declared.

No examples provided.

audit_workbook ~60

Run a comprehensive audit of a session's workbook. Returns statistics on sheets, cells, formulas, errors, named ranges, and the dependency graph. Use to get an overview of model structure before making changes.

NameTypeReqDescription
session_idstringyesSession ID

No output schema declared.

No examples provided.

close_session ~29

Close a computation session and release its resources.

NameTypeReqDescription
session_idstringyesSession ID to close

No output schema declared.

No examples provided.

commit_session ~90

Create a named checkpoint of the session's current state. Returns the commit ID which can be passed to restore_session to roll back. Checkpoints live in the session only; to keep one in the Library's version history, call save_to_library after it (the version takes this message as its name).

NameTypeReqDescription
messagestringyesShort description of the checkpoint
session_idstringyesSession ID

No output schema declared.

No examples provided.

create_session ~159

Create a persistent computation session for a workbook. Pass path/base64/url for xlsx input, or omit all for a blank model. Returns a session_id for subsequent calls. The workbook is uploaded to the Basis API and held there for the session. Pass library_file_id instead to open a file from your Library.

NameTypeReqDescription
base64string–Base64-encoded .xlsx file bytes
calcobject–Iterative-calculation settings for circular models
document_idstring–Display label for this session
library_file_idstring–Library file ID to load
pathstring–Local filesystem path to an .xlsx file
urlstring–URL to fetch the .xlsx file from

No output schema declared.

No examples provided.

define_variable ~83

Create or retarget a named variable in the session's workbook.

NameTypeReqDescription
namestringyesVariable name (e.g. "Revenue")
refers_tostringyesCell reference (e.g. "Sheet1!$A$1")
scope_sheetinteger–Sheet index for sheet-scoped name
session_idstringyesSession ID

No output schema declared.

No examples provided.

diff_workbooks ~236

Compare two .xlsx workbooks and return the cell-level differences as JSON. Both files are parsed on the Basis API, joined on (sheet title, cell ref) and classified into added, removed, and changed (value and/or formula), with format-only changes bucketed separately. Provide exactly one of before_path/before_url/before_base64 and one of after_path/after_url/after_base64.

NameTypeReqDescription
after_base64string–Base64-encoded bytes of the second (after) .xlsx file
after_pathstring–Local filesystem path to the second (after) .xlsx file
after_urlstring–URL to fetch the second (after) .xlsx file from
before_base64string–Base64-encoded bytes of the first (before) .xlsx file
before_pathstring–Local filesystem path to the first (before) .xlsx file
before_urlstring–URL to fetch the first (before) .xlsx file from
include_formatboolean–Report cells whose only change is number format (default true)

No output schema declared.

No examples provided.

evaluate_formula ~233

Evaluate an Excel formula and return the computed result. Pass data as a map of cell references to values (e.g. {"A1": 100, "A2": 200, "B1": "hello"}) and a formula string (e.g. "SUM(A1:A2)"). The formula is placed in the first unused cell and recalculated. Supports 276 Excel functions: math, financial (NPV, IRR, XIRR, PMT, PRICE, YIELD…), statistical distributions, regression, lookup, date/time, text, logical, and dynamic arrays (FILTER, SORT, UNIQUE, SEQUENCE, CHOOSECOLS, TAKE, DROP). Runs on the Basis API (needs an API key).

NameTypeReqDescription
dataobject–Cell data to populate before evaluating. Keys are cell references like "A1", "B2". Values can be numbers, strings, or booleans.
formulastringyesExcel formula to evaluate (without the leading '='), e.g. "SUM(A1:A2)" or "NPV(0.08,B1:B5)"

No output schema declared.

No examples provided.

get_cell_formula ~97

Read the formula source text and computed value for a single cell in a session. Returns whether the cell contains a formula, the formula text (with = prefix), the computed value, and value type. Use to inspect what a cell actually computes.

NameTypeReqDescription
cellstringyesCell reference, optionally with sheet prefix (e.g. "B4" or "Sheet1!B4")
session_idstringyesSession ID

No output schema declared.

No examples provided.

get_formula_range ~91

Batch-read formulas and computed values for a rectangular range of cells. Returns an array of {cell, formula, value, value_type} for each cell in the range. Much more efficient than calling get_cell_formula repeatedly.

NameTypeReqDescription
rangestringyesRange address, e.g. "A1:D10" or "Sheet1!B2:F2"
session_idstringyesSession ID

No output schema declared.

No examples provided.

get_job_status ~35

Check the status of a parse job submitted via submit_job.

NameTypeReqDescription
job_idstringyesJob ID returned by submit_job

No output schema declared.

No examples provided.

get_outputs ~54

Read computed values from a session. Pass specific names/refs, or omit to read all defined names.

NameTypeReqDescription
namesarray–Specific defined names or cell refs to read
session_idstringyesSession ID

No output schema declared.

No examples provided.

inspect_model ~50

Inspect a session's model structure: sheets, defined names, stats, and optionally dependency edges.

NameTypeReqDescription
include_edgesboolean–Include the formula dependency graph
session_idstringyesSession ID

No output schema declared.

No examples provided.

list_sessions ~14

List all active computation sessions.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

parse_workbook ~135

Parse an .xlsx workbook on the Basis API and return the full semantic NDJSON output (workbook_meta, sheet, cell, edge, image, image_summary, audit records). Handles small vs. large files transparently. The file is uploaded to the Basis API.

NameTypeReqDescription
base64string–Base64-encoded .xlsx file bytes
pathstring–Local filesystem path to an .xlsx file (read on this machine, then uploaded)
urlstring–URL to fetch the .xlsx file from
webhook_urlstring–HMAC-signed POST here when the parse completes

No output schema declared.

No examples provided.

rename_sheet ~111

Rename a sheet in a session's workbook. Formulas, named ranges and validations that reference the sheet are rewritten to the new name, so results don't change. Excel's rules apply: 1-31 characters, none of : \ / ? * [ ], no leading or trailing apostrophe, unique ignoring case.

NameTypeReqDescription
namestringyesNew display name for the sheet
session_idstringyesSession ID
sheet_indexintegeryes0-based index of the sheet to rename

No output schema declared.

No examples provided.

restore_session ~66

Roll back a session to a previous commit. Reverts all cell changes made since that commit. Returns the number of cells that were changed by the rollback.

NameTypeReqDescription
commit_idintegeryesCommit ID to restore to (from commit_session)
session_idstringyesSession ID

No output schema declared.

No examples provided.

save_to_library ~174

Save the session's workbook to the user's Library for durable storage. If the session was loaded from the Library or was previously saved, this creates a new version of that file. Otherwise it creates a new Library file. Each save is a named version in the Library's history: pass `message`, or it takes the latest commit_session message since the last save. commit_session checkpoints themselves stay in the session, so save after each step you want kept as a version. Requires a Basis API key. Returns the library_file_id.

NameTypeReqDescription
messagestring–Name for this version in the Library, e.g. "23 — revised exit cap" (defaults to the latest commit_session message)
namestring–File name (defaults to the session's document label)
session_idstringyesSession ID

No output schema declared.

No examples provided.

set_calc_settings ~166

Turn iterative calculation on or off for a session and recalculate. Needed for circular models (e.g. development pro formas where loan size depends on cost, which includes the loan's interest and fees): with it on, set_inputs re-converges the loop on every call. Saved with the session's next commit (restore_session to an earlier commit rolls it back) and written to the workbook, so an exported xlsx iterates in Excel too.

NameTypeReqDescription
iterativebooleanyesEnable iterative calculation (Excel: Enable iterative calculation)
max_changenumber–Converged once no value moves more than this (Excel default 0.001)
max_iterationsinteger–Maximum passes (Excel default 100)
session_idstringyesSession ID

No output schema declared.

No examples provided.

set_inputs ~75

Set one or more input values in a session and recalculate. Keys can be defined names or cell references. Returns applied changes and which named outputs changed (effects).

NameTypeReqDescription
inputsobjectyesMap of name-or-ref to value. Example: {"Revenue": 1000000}
session_idstringyesSession ID

No output schema declared.

No examples provided.

snapshot_session ~55

Export the session's current state as xlsx bytes (base64). Optionally creates a commit first.

NameTypeReqDescription
commit_messagestring–If provided, creates a commit before saving
session_idstringyesSession ID

No output schema declared.

No examples provided.

stream_job ~56

Fetch the NDJSON output of a completed parse job. Pass `since` to resume from a record index.

NameTypeReqDescription
job_idstringyesJob ID returned by submit_job
sinceinteger–Record index to resume from

No output schema declared.

No examples provided.

submit_job ~115

Submit an .xlsx workbook to the Basis API for async parsing and get back a job handle (job_id, status_url, stream_url) without waiting for it to finish.

NameTypeReqDescription
base64string–Base64-encoded .xlsx file bytes
pathstring–Local filesystem path to an .xlsx file (read on this machine, then uploaded)
urlstring–URL to fetch the .xlsx file from
webhook_urlstring–HMAC-signed POST here when the parse completes

No output schema declared.

No examples provided.

trace_dependencies ~139

Trace the formula dependency graph for a cell in a session. Returns precedents (cells this cell references) and/or dependents (cells that reference this cell), with their formulas and values. Use to understand calculation chains, debug circular refs, and find the root cause of errors.

NameTypeReqDescription
cellstringyesCell reference, optionally with sheet prefix (e.g. "B4" or "Sheet1!B4")
depthinteger–How many levels deep to trace (default 1, max 5)
directionstring–Which direction to trace (default "both")
session_idstringyesSession ID

No output schema declared.

No examples provided.

Install

How do I install the Basis MCP server?

Basis runs locally as an npm package, launched with npx -y @basis1/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @basis1/mcp

# add to Claude Code
claude mcp add tech-basis1-mcp -- npx -y @basis1/mcp
Common questions

What is the Basis MCP server?

Basis is an MCP server listed in the public MCP registry as tech.basis1/mcp. Parse Excel workbooks, evaluate formulas, trace dependencies and edit workbook models. This page covers its npm package (@basis1/mcp).

Is the Basis MCP server safe to use?

Basis scores 50 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Basis MCP server expose?

Basis exposes 24 tools: parse_workbook, submit_job, get_job_status, stream_job, diff_workbooks, and 19 more. Their descriptions and schemas cost roughly 2,387 tokens of context every time the server is loaded.

Is the Basis MCP server still maintained?

Basis is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Basis MCP server under?

Basis declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.