Home
Home/Developers/mcp
Ed25519 signaturesSHA-256 hashes8 SDKs
Status
Sign inStart free
Home
Start here
Overview
Authentication
MCP server
Errors
FAQ
API
Events
Canonical JSON and hashes
Documents
Anchoring a file
AI attestations
Attestation schema
Verifying attestations
Traces
Sealing a trace
Audit logs
Organizations
Streams
Portal
Public proof
Event schema
Exporting events
Integrations
Clerk
Auth0
Embeddable viewer
All endpoints
Reference
SDKs
Node.js
Python
Go
Java
Ruby
Rust
.NET
PHP
REST
Verification
Docs · MCP server

MCP server

Use Invoance from Claude, ChatGPT, Cursor or Claude Code. Add one URL and sign in; the assistant can then record events, documents and AI outputs, and check them later. No SDK and no code.

Connect a clientSee the tools
sha-256 · 3a352297…2592
sha-256 · 55c57721…00d0
Server URLhttps://mcp.invoance.com/mcp
TransportStreamable HTTP. One JSON-RPC message per POST, answered with JSON.
Sign-inOAuth 2.1 with dynamic client registration and PKCE. The client finds it on its own from the server's 401.
API keysClients that send headers can use Authorization: Bearer invoance_live_... instead.
PlansEvery plan. Records made through the server count against the plan the same as API calls.
Let your agent connect it

Paste this into the coding agent you want to connect, such as Claude Code, Cursor or Codex. It reads this page as Markdown and adds the server; you approve the sign-in in your browser. In ChatGPT or claude.ai, use the Connect steps below instead.

Agent prompt
Use curl to read https://www.invoance.com/api/docs/developers/mcp and connect the Invoance MCP server to this agent, then call the whoami tool to check the connection.
Connect

Claude

  1. In claude.ai or Claude Desktop, open Customize, then Connectors. Click + Add, then Add custom connector.
  2. Name it Invoance, paste https://mcp.invoance.com/mcp, click Continue, keep sign-in on and click Add.
  3. Sign in to Invoance when asked. In a chat, turn Invoance on from the + menu, Connectors.

Team and Enterprise: an owner adds it once in Organization settings, Connectors (Add, Custom, Web). Each member then clicks Connect.

ChatGPT

  1. On chatgpt.com, open Plugins, choose +, then Add custom MCP server. Name it Invoance and paste https://mcp.invoance.com/mcp.
  2. Choose OAuth, confirm the warning and select Create as a plugin. Install the plugin and sign in to Invoance.
  3. Start a new chat, type @ and pick Invoance.

Workspace permissions apply: in a Business or Enterprise workspace an admin may need to allow custom MCP servers. ChatGPT asks you to confirm each write tool call by default.

Cursor

  1. Add the server to ~/.cursor/mcp.json, or to .cursor/mcp.json in one project.
  2. Sign in to Invoance when Cursor asks. The browser opens app.invoance.com.
  3. Connection errors show in the Output panel under MCP Logs.
mcp.json
{
  "mcpServers": {
    "invoance": {
      "url": "https://mcp.invoance.com/mcp"
    }
  }
}

Claude Code

  1. Add the server from your terminal.
  2. In Claude Code run /mcp, pick invoance and sign in in the browser.
  3. Without an interactive session, claude mcp login invoance runs the same sign-in from the shell.
Terminal
claude mcp add --transport http invoance https://mcp.invoance.com/mcp

In the Claude desktop app, add Invoance as a connector with the Claude steps above. It then works in chats and in the Code tab.

Signing in

The first time the client calls https://mcp.invoance.com/mcp, it is sent to app.invoance.com in your browser. Sign in, or create an account, then approve the app for your organization.

  1. 01 · AddPaste the URLThe client asks the server where to sign in.
  2. 02 · Sign inIn the browserapp.invoance.com opens. Sign in, or create an account.
  3. 03 · ApproveOwner or adminApprove access for your organization.
  4. 04 · UseTools appearThe connection gets its own key on your plan.
Who can approveAn owner or admin of the organization. Other members see the request but cannot approve it.
AccessRead and write by default. A client may also ask for audit:read, which adds the audit log tools. The consent page lists what it asks for.
Its own keyEach approval gets its own API key, kept out of the API keys list. Limits and usage apply as for any key.
Connecting againReplaces that app's earlier connection.
DisconnectSettings, API Tokens, Connected apps. The app's next call is refused.
TokensAccess tokens last 1 hour and refresh tokens 30 days; the client renews them without asking you.
API keysAuthentication

Developer clients that can send headers can skip the sign-in and use an API key. Create one in the dashboard (see Authentication) and send it as a Bearer token. The key's scopes decide which tools the client sees.

claude mcp add --transport http invoance https://mcp.invoance.com/mcp \
  --header "Authorization: Bearer $INVOANCE_API_KEY"
Tools

The client only sees the tools its access allows. Each call runs the matching /v1 API route as the caller, so validation, scopes and limits are the API's own. Every record a tool returns carries a proof_url anyone can open.

ToolAccessWhat it does and its inputs
whoamiAnyShows the connected organization, its plan and what the connection may do.None.
get_recordreadFetches one record: its hashes, signature details, time and a public proof link.record_type (event, document or ai_attestation), id.
list_recordsreadLists the organization's records, newest first.record_type. Optional: date_from, date_to, event_type (events), document_ref (documents), limit (1 to 50, default 20), page.
verify_recordreadChecks content against a record and returns the result with the proof link.record_type, id, and payload (events) or hash, the SHA-256 in hex (documents and AI attestations).
check_documentreadReturns a link where the user drops a file to check it against a recorded document.Optional: id of the document record. Without it the link opens the general verify page.
log_eventwriteRecords something that happened as a signed, time-stamped event. Returns its ID and proof link.event_type (a short dotted name such as report.sent), payload (JSON). Optional: event_time.
attest_ai_outputwriteRecords a model's input and output, with the model that produced them, as a signed attestation.input, output, model_provider, model_name. Optional: type (output, decision or approval), model_version, user_id, session_id.
anchor_documentwriteRecords a document's SHA-256 fingerprint, or returns a one-time link to hash the file in the browser.Optional: document_hash (SHA-256 of the file's exact bytes, hex), document_ref (up to 200 characters), metadata.
list_audit_organizationsaudit:readLists the customer organizations that have an audit log.None.
search_audit_eventsaudit:readSearches one organization's audit log by action, actor, target and time.organization_id. Optional: actions (comma-separated), actor_id, target_id, occurred_after, occurred_before, limit (1 to 100, default 25), cursor.
DocumentsAnchoring a file

If your assistant cannot access the exact file bytes and calculate SHA-256, use the browser link. The browser hashes the file and the file is never uploaded.

  1. Record a file

    anchor_document without document_hash returns a one-time link on app.invoance.com. The user drops the file there; the browser hashes it and only the hash is recorded.

  2. Check a file

    check_document returns the record's public proof page. The user drops the file and the browser compares its hash with the record.

  3. Assistants that can hash

    Claude Code, Cursor and other clients with file access can pass document_hash to anchor_document, or hash to verify_record, and skip the link.

Recording linkFrom anchor_document. Works once and expires after 15 minutes.
Check linkFrom check_document: the record's public proof page. It does not expire.
The fileHashed in the browser and never uploaded.
What is recordedThe SHA-256, the document reference if one was given, and a proof link.
Usage and plansPricing
PlansAvailable on every plan.
QuotaRecords made through the server count against the plan the same as API calls.
Rate limitShared with your organization's API keys.
ErrorsA refused call returns the API's own message, for example Rate limited or Not allowed, so the assistant can tell you why.
Example prompts

“Record that we sent the Q3 board pack to the investors today.”

log_event

“Anchor this contract before I send it to the buyer.”

anchor_document

“Is this PDF the closing statement we sent on 14 October?”

check_document

“Keep a record of your answer above, with the model you used.”

attest_ai_output

“What did we record last week?”

list_records

“Which organization is this connected to?”

whoami

Verified documents and records. Invoance records the exact version of every invoice, report and notice your company sends, so the people who receive them can confirm they have the version you sent, without taking your word for it.

Products

  • Evidence Rooms
  • Audit Logs
  • Event Ledger
  • AI Attestation
  • Document Anchoring
  • Traces

Developers

  • Documentation
  • API reference
  • SDKs
  • How it works
  • How traces seal
  • System status

Verify

  • Audit Log
  • Event
  • AI Attestation
  • Document
  • Trace

Company

  • Company overview
  • What is Invoance
  • Pricing
  • Security
  • Compliance teams
  • Finance teams
  • Partners
  • Brand assets
  • Resources
  • Help center
  • Contact
© 2025 – 2026 Invoance, Inc. All rights reserved.© 2026 Invoance, Inc. All rights reserved.
PrivacyLegal noticeLegal FAQ