Connect your AI assistant

Add Tenacap to Claude and talk to your cap table. Four steps to set up, nothing to learn after that. Claude reads and does the math; you approve anything that changes the record.

Set it up

You need the Claude app on a paid plan (Pro, Max, Team or Enterprise) and a Tenacap login. That is all.

  1. In Claude Desktop, open Settings, then Connectors, and click Add custom connector.
  2. Name it Tenacap, paste this address, and click Add:
    https://mcp.tenacap.com/mcp
  3. Click Connect. Tenacap opens in your browser. Under What it can reach, pick your company (or the whole workspace); under What it may do, tick Read, and Propose changes if you want Claude to prepare changes for you to confirm. Click Allow.
  4. Go back to Claude. Done.

Claude on the web and on your phone use the same connector, so you set it up once. On a Team or Enterprise plan, an owner turns custom connectors on first.

No company in Tenacap yet? Choose Whole workspace and tick Propose changes, then ask Claude to set up your company (see the set-up interview below).

Then ask

There is no Tenacap screen to learn. Open a chat and ask, the way you would ask a colleague who has the cap table open:

  • “Who owns what, fully diluted?”
  • “If we raise $2M at $10M post, what does the founders’ stake become?”
  • “How much room is left in the option pool?”
  • “Add a new hire, Sam Lee, with 20,000 options vesting over four years.”
  • “What is due this quarter?”
  • “Here are our signed option agreements. Attach each one to the right grant.”

Every answer comes with a one-line summary that Tenacap computed, not Claude, and the records it came from. If the two ever disagree, the summary is the one to trust. Start with a question you already know the answer to.

You approve every change

Claude never changes your cap table on its own. When you ask it to add a hire, record a 409A or issue shares, it prepares the change and gives you a link. You open the link in Tenacap, see what would change and who owns what before and after, and click Confirm or Decline. The change log records both: what Claude proposed and who confirmed it.

Confirming in the chat

In Claude apps that can show a question from a connector, you do not have to leave the chat. Right after Claude prepares a change, Tenacap asks you directly, in a small form inside the conversation: what the change is, for which company, and what it looks like before and after. Pick Confirm and apply or Decline, and add a note if you like. Claude then tells you what happened: applied, declined, or still waiting at the link.

The form comes from Tenacap, not from Claude, and only you can answer it. Claude cannot click it for you, which is why it counts as your approval in the same way the button in Tenacap does. The change log records that you confirmed it in the chat, and in which app.

You still get the link, and the web page is still the place to confirm, when:

  • your Claude app does not show connector questions (then nothing changes from before);
  • you close the form, or do not answer within about half a minute;
  • the change cannot be confirmed yet, because a check found a problem to fix first;
  • the cap table changed while you were deciding, so you should look at the updated change;
  • the change is ordering or recording a paid 409A from Tenacap’s valuation partner, which is always confirmed in Tenacap.

In-chat confirmation is offered only to Claude’s own apps, signed in with the browser step above. A connection made with a token you created by hand, or from another assistant, always gets the link.

To disconnect, remove the connector in Claude, or revoke it under Settings → API tokens. Either one stops it at once.

If the browser step never appears, or Tenacap says it does not recognise the app: edit the connector in Claude, open Advanced settings, put claude-ai in the client id field, leave the secret empty, and connect again.

If you hold equity in a company

You do not need to run a company to connect. If a company on Tenacap gave you access to your shareholder portal, you can connect Claude to your own equity there. Add the connector the same way. When Tenacap asks what it can reach, choose My own equity, as a holder: every company you hold equity in, or just one. Tick See your own holdings, and Prepare requests for you to send if you want Claude to draft an exercise request or an 83(b) date for you, and click Allow.

Then ask:

  • “Which companies do I hold equity in?”
  • “How many of my options have vested?”
  • “What would it cost to exercise my vested options?”
  • “When is my 83(b) deadline?”
  • “Do I have any phantom stock or SARs, and what are they worth today?”

Claude sees what your portal shows you and nothing more: your own shares, options, RSUs, phantom awards, SAFEs, 83(b) elections, exercise requests and documents. It never sees another holder or the company’s cap table. The cost to exercise is exact to the cent. The value of an exercise is an estimate at the company’s current fair market value, and Tenacap says how that value was set and when. Neither is tax advice.

Claude can also prepare two things for you to send: a request that the company record an exercise of your options (“ask Acme to exercise 10,000 of my options”), and the date you mailed your 83(b) election. It cannot send either. It gives you a link to your portal, where the request waits under Waiting for you with the grant, the number of options and the cost, or the election and the date. Check it and click Send request or Confirm date, or click Cancel. Nothing reaches the company until you click; then its admins are e-mailed your exercise request, or your date is recorded as what you told them. That one click is there in case Claude misheard a number or a date. An unsent request expires after 7 days.

A request is not an exercise: the company records the exercise once you have paid. The date you mailed your 83(b) is what you told the company; the company still marks the election filed. If the date is after your filing deadline, the portal says so before you confirm it. If the company removes your portal access, the connection stops reaching that company on its next request, and a request it prepared there can no longer be sent. You can see and revoke your connections under Connected assistants in your portal.

When Claude asks permission for each step

Claude asks before it uses a connector’s tools, so the first time you ask about your cap table you may be asked to allow a Tenacap tool, and then another, and then another.

It is safe to let Claude use Tenacap’s tools without asking each time. Tenacap’s tools either read your records or prepare a proposal. A proposal changes nothing. Your cap table only changes when a person clicks Confirm, on Tenacap’s own page or in the confirmation form Tenacap shows in the chat. That click is the approval that counts, and it shows what would change. Allowing the tools does not answer the form for you. The one tool that acts straight away is sending us feedback, which changes nothing in your records.

To stop the prompts, open Claude’s settings, find the Tenacap connector, and set its tools to be allowed without asking. You can change it back the same way. Claude’s menus change from time to time, so the words may differ from these.

Tell us what’s wrong, or what’s missing

If something in Tenacap looks wrong, or you wish it did something it does not, say so to Claude: “Tell the Tenacap team the option pool figure looks off.” Claude writes the note, shows it to you, and sends it to our team only once you say yes. It goes straight to the engineers’ board, not a support queue, with your account e-mail so we can reply, and the company it is about if you name one.

Claude may mention this now and then, after finishing something or when a step went wrong. It never sends anything on its own. Sending a note changes nothing in your records and e-mails no one, so it goes as soon as you agree rather than as a proposal. It needs a connection with Propose changes ticked, and your assistants can send ten notes an hour between them. It is text only: to include a screenshot, use the Provide feedback button in Tenacap itself.

For the technical reader

Tenacap is a remote MCP server at https://mcp.tenacap.com/mcp with OAuth 2.1 sign-in. You don’t need any of what follows to use the connector above.

Claude Code

claude mcp add --transport http tenacap https://mcp.tenacap.com/mcp

The first use opens the same browser sign-in as Claude Desktop. Add --scope user to make it available in every project; claude mcp list checks it is there. Verified against Claude Code 2.1.278. To use a hand-made token instead:

claude mcp add --transport http tenacap https://mcp.tenacap.com/mcp --header "Authorization: Bearer tnc_..."

What the sign-in grants

The client receives an ordinary API token: tied to your account and to one workspace, optionally narrowed to one company, and never able to do more than you can. If your role changes or you leave the workspace, every token you hold for it stops working on its next request; membership is checked on every call. It is listed under Settings → API tokens as Signed in: followed by the client’s name, and every connection you allow is recorded in the change log.

A signed-in connection renews itself. The access token lasts a day; a refresh token, good for 90 days from its last use, exchanges it for a fresh pair. Each exchange retires the previous refresh token, so a leaked copy cannot be used twice: if a retired one is ever presented, Tenacap revokes the whole connection and the client asks you to sign in again. A connection untouched for 90 days signs itself out.

Scopes

  • Read: the cap table, stakeholders, securities, option grants, vesting schedules, documents, deadlines, holders’ exercise requests, the board (directors, approvals and treasury shares awaiting retirement) and the change log.
  • Model: a priced round, a SAFE conversion, dilution, an exit waterfall, option-pool sizing. Modelling writes nothing. Uploading an export and reading it, the first two steps of an import, stage the file without touching the cap table.
  • Propose changes: stage a change for you to confirm: a stakeholder or contact change, deleting a stakeholder added by mistake or merging a duplicate, a share class or a change to its name or par value, an option pool or a change to its size or name, founder stock, shares, a grant or a change to its terms, an exercise (including one a holder asked for from their portal, or closing that request without one), a sale of ISO shares, a SAFE, a 409A (recording, correcting or voiding one), a priced round, a transfer, a buy-back (from one holder, or from several as one event), attaching a document to a record or taking one off, filing a share certificate PDF against its holding, a cancellation (of shares, a grant, a SAFE, a note, a warrant or an RSU grant), a departure, a departed holder’s lapsed options, an 83(b) election or its link to the stock it covers, taking away a stakeholder’s access to the stakeholder portal, a change to the voting board, the board retiring treasury shares, the figures the compliance pages work from (total assets for Rule 701, a gross-assets figure for QSBS, ASC 718 valuation assumptions), the Delaware filing details and a year’s prepared Delaware filing, writing an uploaded import to the cap table, cancelling an import not yet written or deleting a written import’s uploaded file, resolving an import finding, and the governance drafts. The same scope lets an assistant send the Tenacap team a note, which is sent as soon as you agree to it rather than proposed, because it changes nothing in your records.

Scopes only narrow. There is deliberately no scope that lets an assistant commit a change to your records, and the tool list a client sees is filtered by scope: a read-only connection shows no proposal tools, and a call to one it cannot use is refused with insufficient_scope.

A few proposals are confirm-only, meaning the person who confirms performs the act: drafting a board consent, sending a document for e-signature, asking stockholders for a written consent, sending a buy-back’s board consent to the directors, inviting a stakeholder to the portal, and e-mailing your stockholders (each ends in an e-mail, sent under the confirmer’s name and against their own hourly limit; an assistant is held to ten governance proposals an hour). A portal invite goes only to the address you have on file for that stakeholder, and the proposal shows that address and what the link opens before you confirm. An e-mail to your stockholders lists every person it will go to, with their address, and the message as it will be sent; if anyone is added to that list before you confirm, nothing is sent and the assistant has to propose it again. Also confirm-only: marking a board approval approved, since that says the board acted; marking an 83(b) election filed, Form 3921 issued, or a year’s Delaware franchise tax filed; setting an 83(b) election to not filed, late or not applicable; turning the Delaware reminder on or off; answering, for a tax year, whether the company ran an active qualifying business for QSBS, a statement in the company’s name that records the admin who confirms it as the person attesting; asking the Tenacap team to look at an import finding, which files an urgent report and has the team reply to the person who confirms; and ordering a 409A from Tenacap’s valuation partner, or answering the partner’s questions on an order, which the proposal says is a paid order with a firm outside Tenacap. Recording a 409A is an ordinary proposal that an admin confirms. To attach the report, the assistant first sends the PDF (up to 3 MB) for Tenacap to read, then proposes the valuation with it; a larger report is uploaded in the app. A document or certificate an assistant attaches travels the same way, up to 3 MB inside the proposal. See Documents and e-signature.

A batch of documents, such as a folder of signed option agreements or a mixed folder of grant agreements, 83(b) elections, SAFEs and notes, board consents and certificates, goes another way, because a chat app shows Claude a PDF without passing the file itself on to a tool. Claude reads each file, says what it is, finds a grant with list_grants, and calls request_document_upload once with the whole list: file, type, record, and a one-line reason, with anything it is unsure of left unmatched for Tenacap to match from the text or for you to choose. When an import or a new company is done, Claude is told to offer this: “Want me to file your documents too? Drop the folder here.” It is optional. Tenacap answers with a page link for you and a one-time upload address per file. Claude with code execution uploads the files itself; otherwise open the link and drop the same files there. Either way you review every match on that page and press Confirm once; nothing is attached before. See A folder of documents, through your assistant.

A token by hand

For a client that cannot sign in with OAuth, or a script: go to Settings → API tokens, name it after the client that will hold it, choose the workspace or one company, tick the scopes, pick an expiry (a year at most), and click Create token. It appears once, starting with tnc_; Tenacap keeps only a fingerprint. Send it as Authorization: Bearer tnc_…. Tokens also work against the REST API: every capability is an operation under /api/v1, described by /api/openapi.json; see the API reference.

The set-up interview, and the Skill

The server publishes an MCP prompt, set_up_company, which is why “Set up my company” appears in Claude Desktop’s + menu as soon as the connector is added. There is nothing to install. It also publishes one resource, the Apache-2.0 open schema at /schema/v1, so an assistant working out the shape of an export can read the format itself.

The interview starts with list_companies to find a workspace with no company, then takes one of two roads. Either way Claude first asks for the four facts no export carries: the company’s exact legal name, incorporation date, state and entity type.

  • With an export (Carta, Pulley, Mantle or a Tenacap workbook), Claude calls create_company_from_import and hands the file to Tenacap’s importer without reading it. A file up to 3 MB travels inside the call when Claude can read its bytes. Chat apps such as Claude Desktop show Claude an attached file without passing it on to the tool, so for those, and for any larger file, Claude gives you one upload link. Open it, choose the file, and click Upload. Uploading needs no sign-in. The same page then takes you to the preview and the Confirm button. If you are not signed in, it asks you to sign in and then brings you back. That one link is all you need. The link uploads once and closes after 15 minutes; if it expires, ask Claude for a fresh one. If you open it again after uploading, it says the file is already uploaded and, once you are signed in to the workspace, offers the same way on to confirm. Either way the proposal is the import preview, and you confirm the whole company once.
  • With no export, Claude calls create_company, which proposes a company with an empty cap table. Once you confirm it, Claude adds the authorized shares (add_share_class), each founder (create_stakeholder, then issue_founder_stock), any SAFEs (record_safe) and the option pool (create_option_pool), each as its own proposal to confirm, or all of them in one proposal with build_cap_table, the same step as the web app’s Build it by hand. A company made this way can still take an import later, while its cap table is empty.

Both tools need an admin of the workspace to confirm, and both refuse a workspace that already holds a company. A proposal that creates a company is confirmed on its own page. The upload page leads there, or, when the file travelled inside the call, Claude hands you that page’s link. No e-mail is sent for it, so keep the link.

For Claude Code and Claude.ai projects, where a Skill is how instructions travel, the same text is published as a Skill at /skill/SKILL.md. It is generated from the prompt by a script, and a test fails if the two ever disagree.

Which clients can sign in

Any MCP client that follows the current authorization specification, in one of two ways: by publishing a client metadata document, which Tenacap fetches and checks before showing the sign-in page (Claude Code does this; ChatGPT documents it as its preferred way), or by registering itself on the spot. Claude.ai and Claude Desktop document that they use whichever they find first and have not yet been observed against Tenacap, which is why the pre-registered id claude-ai is offered above as a fallback. The sign-in page always names the application; a client that identified by document also shows the site that published it, and a self-registered one shows only its own claimed name. If the name or site is not what you expected, cancel.

Revoking, and where it shows up

Settings → API tokens lists every token and every signed-in connection with its prefix, reach, scopes, origin, expiry and last use. Revoke takes effect on the next request, with no grace period; for a signed-in connection the refresh token is retired with it. A client that disconnects on its own side can tell Tenacap so, and the connection is revoked the same way. Creating and revoking are recorded in the change log of every company the token can reach, carrying the token’s name and prefix, never the token. Anything an assistant proposes and you confirm is recorded on the ledger with the proposal attached. See Trust & security.