Work with Tinfirm from your AI client¶
Each company in Tinfirm has an MCP endpoint. Connect an AI client on your computer to it, Claude Code for example, and the client can work in Tinfirm as you: read your inbox, start and follow your conversations with agents, and, if you allow it, answer questions and approvals for you.
The client signs in with your Tinfirm login, and you choose on a consent page what it may do. It never gets more rights than you have in that company.
Connect Claude Code¶
You need the company's endpoint address. Open the company in the web app: its address is https://<your Tinfirm>/c/<company id>/inbox. The endpoint is:
-
Add the endpoint to Claude Code, with a name for the company:
claude mcp add --transport http tinfirm-acme https://tinfirm.example.com/api/companies/0190f5a4-1c2d-7e3f-8a9b-0c1d2e3f4a5b/mcpA client signs in to one company at a time. If you work in several companies, add one server for each, with its own name (
tinfirm-acme,tinfirm-globex). -
In Claude Code, run
/mcp, pick the server and choose to authenticate. Your browser opens. -
Sign in to Tinfirm as you always do: email and password, or single sign-on.
-
The consent page asks Allow Claude Code to use Tinfirm as you? Check that the domain it names is
claude.ai: an app can call itself anything, but it cannot change where it is published. -
Choose a level (below) and press Allow. The browser hands you back to Claude Code.
You stay signed in as long as you use the client at least once every 30 days. Otherwise, authenticate again from /mcp.
Choose what the client may do¶
| Level | The client may |
|---|---|
| Read | Read your inbox, your conversations and decisions, the agents you may use and the notes they keep for you, the triggers and systems you see, and the spend you may see. |
| Read and write | Also start conversations, send messages in them, choose accounts, cancel, retry and end turns and conversations, delete your memory notes, and test a system you manage. It never decides. |
| Read, write and decide | Also answer your questions and approve or deny your approvals, as you. A team's approvals are still decided in the web app only. |
Claude Code asks for Read, so the consent page selects it first. Choose a higher level there if you want the client to act.
What a client does in Tinfirm, it does as you
Keep Claude Code asking you before every tool that changes something: every tool of the Read and write and Read, write and decide levels, among them start_conversation, send_message, choose_account, retry_turn, cancel_turn, end_conversation, delete_memory_note, test_system and decide. MCP tools lists each tool's level. Never put any of them in its allow-list: they choose the accounts agents act with, spend your budget, delete your notes and decide as you. What the client reads (messages, agents' results, questions, a trigger's instruction) is other people's words, and may try to steer it.
To give a connected client a higher level later, disconnect it (below) and authenticate again from /mcp, choosing the new level on the consent page.
What you start from a client is yours¶
A conversation you start from a client is a personal conversation, like one you start in the web app: the agent acts with your own accounts and is paid from your budget. It shows in the web app with the badge AI client. If the agent needs an account you have not connected, connect it on the Accounts page.
A company's Owners can read any conversation in full, including these. Each such read is recorded, and you are shown that it happened.
Disconnect a client¶
On your Profile, Connected apps lists every client you allowed, for each company, with its level, when you allowed it and when it was last used. Disconnect stops it at once. Tinfirm's Outlook add-in is listed there too, as Tinfirm for Outlook.
Removing the server from Claude Code (claude mcp remove tinfirm-acme) does not disconnect it in Tinfirm. If you lose a computer, disconnect its client on your Profile.
When you leave a company, are suspended in it, or your Tinfirm account is deactivated, your clients stop working there.
Without a browser: a personal access token¶
For a script, a CI job, or a machine without a browser, create a token under Profile, Personal access tokens, with New token. Its Scope is one of the same three levels, named Read, Write and Decide there. Choose the lowest the work needs: Read for anything that runs unattended.
Give the token to the client as a header, and keep it out of files you commit. In Claude Code, refer to an environment variable:
claude mcp add --transport http --scope project tinfirm-acme \
https://tinfirm.example.com/api/companies/0190f5a4-1c2d-7e3f-8a9b-0c1d2e3f4a5b/mcp \
--header 'Authorization: Bearer ${TINFIRM_TOKEN}'
The single quotes keep ${TINFIRM_TOKEN} as written; set TINFIRM_TOKEN where Claude Code starts. A token is yours, not a company's: it works in every company you are a member of.
What a client cannot do¶
A client works with conversations, decisions and memory notes. Agents, your settings, systems, triggers, accounts, members, secrets and runner hosts are changed in the web app only, and no tool ever returns a secret. MCP tools lists every tool and the level it needs.