Basis · Developers

Run your fund from Claude

Basis exposes its operating spine as an MCP server and a REST API. Connect Claude in under two minutes: live fund data with citations to the register, and drafts that land in Basis as proposals for a named human to approve. The connection token can read and propose — an approve scope does not exist, in the token or anywhere in the API.

Connect

The setup snippets go into your client's configuration, never into a Claude chat. The connector runs locally via npm (Node.js 18+).

  1. In Basis: Settings → Connect Claude → Create connection token (shown once; revocable any time). The snippets there come pre-filled with your token.
  2. Claude Desktop — Settings → Developer → Edit Config, add this to claude_desktop_config.json, save, then fully quit and reopen Claude:
    {
      "mcpServers": {
        "basis": {
          "command": "npx",
          "args": [
            "-y",
            "@basisnetwork/mcp",
            "--token",
            "bsk_YOUR_TOKEN",
            "--url",
            "https://app.basisnetwork.io"
          ]
        }
      }
    }
  3. Claude Code — paste into a terminal (not a chat):
    claude mcp add basis -- npx -y @basisnetwork/mcp --token bsk_YOUR_TOKEN --url https://app.basisnetwork.io
  4. Or plain REST from anything:
    POST https://app.basisnetwork.io/api/headless/rpc
    Authorization: Bearer bsk_YOUR_TOKEN
    {"tool": "get_fund_overview", "arguments": {}}

Read tools

get_fund_overviewraise progress, holders, pending actions
get_needs_youevery pending decision, ranked — the daily starting point
get_capital_call_statuscalls + per-investor funding lines
get_investor_pipelineonboarding/compliance gates + flags
get_unfunded_commitmentscallable capital per investor
get_distribution_historypayout history with snapshot ids
get_distributions_awaiting_withholdingdistributions whose withholding decision is still open
get_distribution_detailper-line gross / withholding / offsets / net
get_reconciliation_statusregister vs on-chain: GREEN or incidents
search_investorsfind investors by name
get_investor_fileone investor's gates + positions (no PII dossier)
get_nav_bridgeNAV movement between two published valuations
get_proposalone proposal's status + the human decision
get_compliance_policywhat a subscription to this fund requires, per its counsel
get_document_templatestemplate versions, fields, mapping status, bindings
get_document_requirementsrequired docs per investor type, gates, checklist status
get_joinder_obligationsjoinder policy, obligations by status, member coverage
get_fund_settingsledger mode, rails, visibility, signatory
get_capital_accountthe five capital numbers, per investor and rolled up
get_serieseach share class: terms, status, units, holders
get_brand_kitletter colors, computed text colors, logo state
get_document_batcha bulk batch: progress, documents, the review record
get_call_previewper-investor call amounts before anything exists

Every read returns citations (register row / snapshot ids) and human deep links — answers with receipts.

Propose tools

propose_capital_calldrafts a call with the exact pro-rata split
propose_distributiondrafts a distribution; allocation binds at the record-date snapshot
propose_investor_emailone-to-one email; the exact text awaits approval
propose_fund_updatedrafts the member letter; publishes + emails on approval
propose_transfer_reviewfiles into the standard transfer queue
propose_policy_changedrafts a requirements revision; the approver sees the diff
propose_fund_settings_changedrafts a rails/visibility/signatory settings revision
propose_requirement_changedrafts a document-requirement add/archive
propose_series_createdrafts a new share class with its own terms
propose_brand_changedrafts new letterhead colors (legibility-checked)

Each returns {proposal_id, summary, approval_url}. Nothing executes until a signed-in human approves at the approval_url — every decision is audit-logged with the reviewer's identity.

Webhooks

Subscribe HTTPS endpoints to proposal.created / approved / rejected and reconciliation.incident. Deliveries are HMAC-signed (X-Basis-Signature over timestamp.body) and retried.