In short
- The address to paste into the assistant is
https://filetable.com/api/mcp. You sign in to Filetable and approve: no token to copy. - When you approve, you choose read only or read and write (pre-selected when the app asks to write), and which workspaces the assistant may reach.
- The assistant acts as you, with your rights: it goes through the same checks as the app and can never do more than you can.
- 40 tools: find an invoice, a contract or a bank line, read a document with its lines, filter and total, correct a value, create a table and its columns, tidy the drive, run a playbook such as Record the payment.
- An attachment reaches Filetable straight from ChatGPT, which passes it on; from Claude, through an upload link the assistant gives you, or by Claude itself once you allow filetable.com in its settings; from Claude Code, through a single-use address.
- Pause or revoke a connection at any time in your workspace's Settings → MCP.
Good to know. Claude's and ChatGPT's menus change often. This guide describes them as of the date above; when in doubt, the maker's help page, linked under the sources, is the reference.
On this page
- Why connect an assistant to Filetable
- Before you start
- In Claude (web, desktop and mobile)
- Claude Team and Enterprise
- Claude Code
- In ChatGPT
- What you grant when you approve
- The assistant's 40 tools
- Sending a document to Filetable
- Examples, call by call
- What is left to pay
- A receipt from a phone photo
- A bank line matched to its invoice
- The contracts to cancel before year end
- A table for a new kind of document
- More requests that work
- Security and control
- What the assistant cannot do
- If something goes wrong
- Frequently asked questions
- Official sources
Why connect an assistant to Filetable
An AI assistant is good at understanding a question and writing an answer, but it has never seen your invoices, receipts, contracts or bank statements. Filetable has: it is the finance and admin specialist that reads every document you send it, scans and photos included, extracts the figures into linked tables, files it in the right folder and matches it to the others: an invoice to its supplier and its lines, a bank line to the invoice it pays. The connector lets your assistant work on all of that. You ask where you already work, and the answer comes from your own figures instead of a guess.
- Answers from your figures. A total is computed by Filetable over every matching row, not added up in the model's head.
- The document behind every value. The assistant finds a contract by its content, reads what Filetable extracted from it, and can read the document's own text to check.
- The admin done, not just explained. Record a payment, link a bank line to its invoice, correct a value, file a document: the assistant does it with your playbooks and under the same rules as you in the app.
- Your accountant stays your accountant. Filetable prepares and checks the data; bookkeeping, tax returns and year-end closing stay with your accounting software and your accountant, who can work from that data.
- One conversation for several tools. The assistant can combine Filetable with your other connectors (your mail, your calendar) in the same request.
It understands the question and picks the tools to call.
- Read only, or read and write
- All your workspaces, or the ones you pick
- Paused or revoked at any time
- Invoices, receipts, contracts
- Bank lines and their matches
- Playbooks and their steps
- Acts as you
- Your rights, nothing more
- Every call checked
- Rate limited
Before you start
- A Filetable account, member of at least one workspace. The connector is open in every workspace; the MCP tab of Settings lists your connections.
- An app that accepts a remote MCP server: Claude (web, desktop, mobile), Claude Code, or ChatGPT depending on your plan (see below).
- Two minutes. There is nothing to install and no token to copy for Claude and ChatGPT.
In Claude (web, desktop and mobile)
On the Free, Pro and Max plans you add the connector yourself. The Free plan takes one custom connector. Add it from the web or the desktop app: it is then available on mobile the next time you sign in.
- 1Open the connectors
In Claude, Customize → Connectors, then + and Add custom connector.
- 2Name it and paste the URL
Name:
Filetable. URL: the connector's address, above. Leave the authentication settings as they are, then Add. - 3Approve in Filetable
Claude opens Filetable: sign in, choose the permission and the workspaces, then Authorize.
- 4Turn it on in the chat
In a conversation, + then Connectors: switch Filetable on. Claude asks before each tool, or Always allow.
Claude Team and Enterprise
In an organization, an owner first adds the connector for everyone, in Organization settings → Connectors, with the same URL. Each member then finds it in Customize → Connectors, labelled Custom, and clicks Connect: the approval in Filetable stays personal, so each person lends only their own rights.
Claude Code
In a terminal, one command adds Filetable; the first use of /mcp opens the same approval page in your browser.
claude mcp add --transport http filetable https://filetable.com/api/mcp# then, inside Claude Code:/mcpFor a script, a CI job or a client without a browser sign-in, create a personal token instead in Settings → MCP → New connection: you choose its name, expiry and workspaces, and Filetable shows the token once with the command ready to copy. Only its hash is kept; a lost token is revoked and replaced.
claude mcp add --transport http filetable https://filetable.com/api/mcp \ --header "Authorization: Bearer ftmcp_…"In ChatGPT
ChatGPT takes a custom MCP server from its settings. OpenAI renamed that part several times in 2026 (connectors, apps, developer mode, plugins), but the flow stays the same: declare a server, then approve it in Filetable.
- 1Open the apps
In ChatGPT's Settings, the apps section: turn on developer mode if your plan asks for it.
- 2Create the server
Create or Add MCP server: name
Filetable, URL: the connector's address, authentication OAuth. - 3Approve in Filetable
ChatGPT opens Filetable: sign in, choose the permission and the workspaces, then Authorize.
- 4Pick it in the chat
From a conversation's + menu, select Filetable. ChatGPT may ask you to confirm before a write.
What you grant when you approve
The only moment any access is given is Filetable's approval screen. The assistant sees none of it: it receives a one-hour key, renewed while the connection lives, worth exactly what you ticked. Read only, the write tools are not even offered to it.
- Read only
- ✓
- Read and write
- ✓
- Read only
- ✓
- Read and write
- ✓
- Read only
- ✓
- Read and write
- ✓
- Read only
- –
- Read and write
- ✓
- Read only
- –
- Read and write
- ✓
- Read only
- –
- Read and write
- ✓
| The assistant can | Read only | Read and write |
|---|---|---|
| Find tables, files and folders | ✓ | ✓ |
| Read, filter and total rows | ✓ | ✓ |
| See where a row stands and its playbooks | ✓ | ✓ |
| Add, change and delete rows | – | ✓ |
| Create and change tables and columns | – | ✓ |
| Tidy the drive, pass a playbook step | – | ✓ |
You also choose the workspaces: all of them, including those you join later, or only the ones you tick. Whatever you tick, the connection never goes past your role: a read-only member of a workspace does not write there, and a table or folder closed to you is closed to the assistant too.
The assistant's 40 tools
A connected assistant sees a list of tools, each with a description telling it when to call it. You do not have to name them: ask in plain words and it picks. Here they are, grouped by what they are for.
- list_workspaces
- get_workspace_map
- list_tables
- describe_table
- list_views
- get_guide
- query_table
- aggregate_table
- get_row
- get_row_relation
- add_rows
- update_cells
- delete_rows
- link_rows
- link_file_to_row
- create_table
- update_table
- delete_table
- add_column
- add_columns
- update_column
- search_files
- list_folder
- get_file
- get_processing_status
- get_upload_link
- list_trash
- upload_file
- create_upload_url
- create_folder
- rename_drive_item
- move_items
- delete_drive_items
- restore_from_trash
- list_spaces
- get_space
- list_alerts
- list_playbooks
- get_row_workflow
- run_playbook
- The assistant calls
get_workspace_map, thendescribe_tableon the table that matters
- The assistant calls
describe_tableto learn the columns, thenquery_tablewith filters on Total Due and Issue Date
- The assistant calls
aggregate_table, grouped by issuer
- The assistant calls
query_tableto find it,get_rowto read it,get_row_relationto open its lines
- The assistant calls
query_tableon Recurring Contracts with a search, orsearch_filesfor the document itself
- The assistant calls
describe_table, thenquery_tableon Bank Lines, Matching Status equals Unmatched
- The assistant calls
- In ChatGPT,
upload_filewith the attached file; in Claude,get_upload_link: a link where you drop it, orcreate_upload_urlonce you allowed filetable.com
- The assistant calls
list_trash, thenrestore_from_trash
- The assistant calls
get_row_workflow, thenrun_playbookwith Record the payment
- The assistant calls
list_alerts, then the same tool with one alert to see its rows
| You ask | The assistant calls |
|---|---|
| "What is in this workspace?" | get_workspace_map, then describe_table on the table that matters |
| "Supplier invoices over CHF 5,000 this quarter" | describe_table to learn the columns, then query_table with filters on Total Due and Issue Date |
| "How much did I spend with each supplier this year?" | aggregate_table, grouped by issuer |
| "Show me invoice INV-2041 with all its lines" | query_table to find it, get_row to read it, get_row_relation to open its lines |
| "The lease with Alpenlicht Immobilier SA" | query_table on Recurring Contracts with a search, or search_files for the document itself |
| "Which bank lines are not matched to anything?" | describe_table, then query_table on Bank Lines, Matching Status equals Unmatched |
| "Here is a receipt I just photographed, add it" | In ChatGPT, upload_file with the attached file; in Claude, get_upload_link: a link where you drop it, or create_upload_url once you allowed filetable.com |
| "Bring back the folder I deleted this morning" | list_trash, then restore_from_trash |
| "Record the payment of this invoice" | get_row_workflow, then run_playbook with Record the payment |
| "What needs my attention?" | list_alerts, then the same tool with one alert to see its rows |
A few limits, on purpose: query_table returns at most 100 rows a call (so a total goes through aggregate_table, which Filetable computes over every row); get_row shows the first 3 linked rows of each relation and counts the rest, which get_row_relation opens up to 50 at a time; a connection makes at most 120 calls a minute, 40 of them writes, and an account 240 and 80 across all its connections.
Sending a document to Filetable
MCP carries no files: what an assistant sends a tool, it writes, character by character. It reads the attachment you give it, but does not hold its bytes. Three paths spare it from copying out a PDF: ChatGPT hands Filetable the attachment itself, which Filetable downloads; an assistant that runs commands and reaches the internet sends the file to a single-use address; otherwise it gives you a link where you drop it, the path that works everywhere.
- What works
- Attach the file and ask to add it: ChatGPT passes the attachment to
upload_fileand Filetable downloads it from ChatGPT, up to 50 MB. If ChatGPT does not pass it, the assistant gives you an upload link.
- What works
- Claude does not pass an attachment to a connector: it calls
get_upload_linkand gives you a link to Inbound, a folder or a table. Open it, drop the file, and Filetable reads it like any upload. To have Claude send it itself, allow filetable.com in claude.ai, Settings → Capabilities (on Team or Enterprise, your admin does it), then start a new conversation: Claude then uses the single-use address from its code environment.
- What works
create_upload_urlgives a single-use address, valid 15 minutes (the assistant asks for a new one after that); the assistant sends the file from your disk to it withcurl -T, up to 50 MB, without copying it out.upload_filestays for a small file it writes itself (a CSV, a text).
- What works
- Forward your emails, scan with your phone or drop files in the app.
| Where you are | What works |
|---|---|
| A ChatGPT conversation | Attach the file and ask to add it: ChatGPT passes the attachment to upload_file and Filetable downloads it from ChatGPT, up to 50 MB. If ChatGPT does not pass it, the assistant gives you an upload link. |
| A Claude conversation (web, desktop, mobile) | Claude does not pass an attachment to a connector: it calls get_upload_link and gives you a link to Inbound, a folder or a table. Open it, drop the file, and Filetable reads it like any upload. To have Claude send it itself, allow filetable.com in claude.ai, Settings → Capabilities (on Team or Enterprise, your admin does it), then start a new conversation: Claude then uses the single-use address from its code environment. |
| Claude Code or a script | create_upload_url gives a single-use address, valid 15 minutes (the assistant asks for a new one after that); the assistant sends the file from your disk to it with curl -T, up to 50 MB, without copying it out. upload_file stays for a small file it writes itself (a CSV, a text). |
| Every day, without an assistant | Forward your emails, scan with your phone or drop files in the app. |
Examples, call by call
These five requests are the ones of a freelancer or a small business owner who keeps their own invoices, receipts, contracts and bank. The tables, columns and playbooks they name are the ones a new Filetable workspace is born with; in yours, the assistant reads the names you gave them.
What is left to pay
What do I have to pay in the next 30 days, and how much is that in all?
- list_tablesfinds the Invoices & Receipts table
- describe_tablereads its columns: Issuer, Due Date, Total Due, Payment Status
- query_tablePayment Status equals To Pay, Due Date within the next 30 days
- aggregate_tablesum of Total Due, same filters
Three invoices: Nordwind AG, CHF 4,280.50 by 14 November; Brunner Logistik, CHF 1,960.00 by 20 November; Moulin Bleu Sàrl, CHF 169.80 by 28 November. CHF 6,410.30 in all.
The assistant reads the table's shape first, because a filter names columns that exist. The payment status is not a box someone ticks: Filetable works it out from the invoice and what settles it, a payment date or a bank line. The total comes from aggregate_table: Filetable adds up every row that passes the filter, rather than the model adding up a page of results.
A receipt from a phone photo
Here is a photo of the receipt from yesterday's business lunch. Add it and tell me what is on it.
- upload_filethe attached photo, passed by ChatGPT as `file`
- get_processing_statusread, classified into Invoices & Receipts, filed
- describe_tableInvoices & Receipts: its columns, the Line Items relation among them
- query_tablethe newest row, Issuer equals Café Lumen
- get_rowthe receipt: Issuer, Issue Date, Total Due, VAT, and its Line Items previewed (3 of 4)
- get_row_relationLine Items: all 4, with Line Title, Quantity, Total Amount
Done. Café Lumen, 28 October, CHF 84.00 including CHF 6.29 VAT at 8.1%: two set lunches (CHF 59.00), two espressos (CHF 9.60), a mineral water (CHF 6.90) and a lemon tart (CHF 8.50).
A photo or a scan is read by OCR, like a PDF: Filetable takes its text, the QR-bill's code included, then the values the table asks for, each linked to where it was read on the document. The assistant waits for the reading to finish with get_processing_status before it answers. In Claude, the same receipt arrives through the upload link the assistant gives you (see above).
A bank line matched to its invoice
A debit of CHF 2,150.00 went through my account yesterday. Which invoice does it pay? Link them.
- describe_tableBank Lines: its columns, Matching Status and the Invoices relation among them
- query_tableBank Lines, Matching Status equals Unmatched, Signed Amount equals -2150
- describe_tableInvoices & Receipts: Issuer, Total Due, Payment Status
- query_tableInvoices & Receipts, Payment Status equals To Pay, Total Due equals 2150
- get_row_workflowthe bank line, with the "Link the document" playbook: its step and its field
- run_playbook"Link the document": Invoices = INV-3318 from Brunner Logistik
The debit pays Brunner Logistik's invoice INV-3318 (CHF 2,150.00). Linked with your Link the document playbook: the bank line now reads Matched, and the invoice Reconciled.
When a statement comes in, as camt.053 or CSV, Filetable's matching rules link a line to the documents they find on their own. What is left reads Unmatched, and that is where the assistant comes in: it passes the playbook's step as you would in its panel, required fields are checked, and both statuses follow the data. For an invoice paid before the statement arrives, Record the payment on the invoice is enough: one step, the payment date.
The contracts to cancel before year end
Which contracts do I have to cancel before the end of the year if I do not want them to renew?
- list_tablesfinds the Recurring Contracts table
- describe_tablereads its columns: Counterparty, Current Term End, Notice Deadline, Annualized Cost
- query_tableNotice Deadline before 31 December 2026, Contract Status equals Active, sorted by Notice Deadline
Two. The software subscription with Nordwind AG (CHF 2,400 a year): notice by 30 November 2026. The office lease with Alpenlicht Immobilier SA (CHF 21,600 a year), running to 31 March 2027 with three months' notice: notice by 31 December 2026.
Filetable read each contract when it arrived: the end of the term, the notice period and the amount are in its row, and the notice deadline follows from them. The values are the ones you see in the app; if someone corrected them, the assistant reads the correction.
A table for a new kind of document
I want to keep the warranties of my equipment: product, seller, purchase date, warranty end and price paid.
- list_tablesno warranties table; the Asset Register tracks the equipment, not its warranties
- create_tableWarranties, a document table with its description: one row per warranty certificate or proof of purchase under warranty
- add_columnsin one call: Product, Seller, Purchase Date, Warranty End and Purchase Price in CHF, each read from the document and described
The Warranties table is ready. Drop your certificates and purchase receipts in it: each becomes a row, and the AI fills these columns from the document, every value linked to where it was read.
The table gets a description, which classification reads to send it the right documents, and each column its own, which extraction reads to know what to look for. The columns are created together or not at all. Relations between tables, computed columns and virtual folders are set up in the app.
More requests that work
- "Which customers are paying me late, and by how many days?"
- "How much VAT did I pay on my purchases this quarter?"
- "Which bank lines are not matched to anything, and which invoice could each one pay?"
- "What needs my attention right now?"
- "I deleted the wrong folder this morning, bring it back."
query_table with its filters by column name, and the answer written from the rows it returned: your figures, not an estimate.Security and control
- Your rights, no more. Every call goes through the same checks as a click in the app, workspace by workspace, table by table.
- No secret to keep. Claude and ChatGPT never receive your password; Filetable keeps only the hash of the keys it issues.
- You stay in control. In Settings → MCP, each connection shows when it was last used; pause it, change its workspaces or revoke it.
- Careful with deletions. Deleted files and folders go to the trash and can be restored for 30 days. A deleted row does not come back, and the assistant deletes only rows it named one by one; a deleted table is gone for good, with its rows. Read only, none of this is possible.
- A capped rate. Past 120 calls or 40 writes a minute for a connection, or 240 and 80 for an account, Filetable refuses the next calls and tells the assistant when to try again.
- A hidden row stays hidden. A row you cannot see in the app (its document sits in a folder closed to you) does not exist for the assistant, to read or to write.
What the assistant cannot do
Some things stay in the app, on purpose, because a connection must never be able to widen its own access or commit the account:
- Your account: password, email address, two-step verification.
- Members, invitations, roles and permissions.
- Billing, plans and credit purchases.
- Creating or widening a connection, or emptying the trash for good.
- Deleting every row of a filter in one go: each row has to be named.
If something goes wrong
- What to do
- The connector is not open in any of your workspaces: contact us.
- What to do
- The connection is read only: give it write with Edit in Settings → MCP, then reload the tools in the assistant (or reconnect it).
- What to do
- Your role does not allow it in that workspace, or the workspace is not ticked for this connection.
- What to do
- In ChatGPT, attach the file again in the same message. Otherwise, ask for an upload link (
get_upload_link) and drop the file there.
- What to do
- Allow filetable.com in claude.ai, Settings → Capabilities (on Team or Enterprise, your admin does it), then start a new conversation. Or ask for an upload link.
- What to do
- The workspace is out of AI credits, rows or storage. The document waits: it does not resume by itself. Add credits or change plan in Settings → Usage, then resume it in the app (Resume processing on the file, or Restart all on the banner).
- What to do
- The document is still being read: the assistant sees it with
get_processing_status.
- What to do
- Paused: switch it back on in Settings → MCP (Claude or ChatGPT then asks you to approve again). Revoked or expired: connect again, or create a new token.
| What you see | What to do |
|---|---|
| The approval says there is nothing to connect | The connector is not open in any of your workspaces: contact us. |
| The assistant offers no write tool | The connection is read only: give it write with Edit in Settings → MCP, then reload the tools in the assistant (or reconnect it). |
| "Access denied" on a table | Your role does not allow it in that workspace, or the workspace is not ticked for this connection. |
| The assistant says it cannot send the attachment | In ChatGPT, attach the file again in the same message. Otherwise, ask for an upload link (get_upload_link) and drop the file there. |
| Claude says the network is blocked, or that it cannot send the file | Allow filetable.com in claude.ai, Settings → Capabilities (on Team or Enterprise, your admin does it), then start a new conversation. Or ask for an upload link. |
| A document stops on "quota exceeded" | The workspace is out of AI credits, rows or storage. The document waits: it does not resume by itself. Add credits or change plan in Settings → Usage, then resume it in the app (Resume processing on the file, or Restart all on the banner). |
| An empty answer right after an upload | The document is still being read: the assistant sees it with get_processing_status. |
| The connection stopped working | Paused: switch it back on in Settings → MCP (Claude or ChatGPT then asks you to approve again). Revoked or expired: connect again, or create a new token. |
Frequently asked questions
Does the connector cost extra?
No, it is part of every plan. Reading and searching use no AI credits; whatever puts Filetable's AI to work (a document to read, a value to fill) uses them as it does in the app.
Do I need a token or an API key?
Not for Claude or ChatGPT: you paste the URL and approve. A personal token, created in Settings → MCP, is for scripts and clients without a browser sign-in.
Can the assistant see my colleagues' data?
Only what you can see yourself, in the workspaces you ticked. Each colleague who connects lends their own rights, not yours.
Can I connect several assistants?
Yes. Each approval creates a separate connection, with its own permission and workspaces, which you manage on its own in Settings → MCP.
Can the assistant send a file to Filetable?
Yes. In ChatGPT, the attachment goes straight to upload_file, and Filetable downloads it. In Claude, the reliable way is the upload link the assistant gives you (to Inbound, a folder or a table); once filetable.com is allowed in claude.ai's Settings → Capabilities, Claude sends the file itself. Claude Code and scripts send it to a single-use address (create_upload_url), valid 15 minutes. Everywhere, the upload link is the fallback.
What is MCP?
The Model Context Protocol, an open standard that describes how an AI assistant discovers and calls a service's tools. Filetable is a server; Claude and ChatGPT are clients.
Who do I contact if something does not work?
Write to support@filetable.com, or use the contact page. Tell us which assistant you use and what it answered.
Is there a REST API?
Not yet: a public REST API is coming soon. Meanwhile a script can call the same tools over MCP with a personal token.
Does Filetable read scans and photos?
Yes. A scanned PDF or a phone photo (JPEG, PNG, HEIF, TIFF) is read by OCR, QR codes included, then the values your table asks for are extracted from that text. Word, Excel, CSV and camt.053 files already carry their text and are read without OCR. Whatever the format, the assistant sees the extracted values and, with get_file, the text Filetable read.
Does Filetable replace my accountant or my accounting software?
No. Filetable prepares and checks the data: it reads, files, matches and totals your documents, and keeps each value linked to where it was read. Bookkeeping, tax returns and year-end closing stay with your accounting software and your accountant, who can work from Filetable's tables and exports.
Can the assistant pay an invoice?
No. Neither Filetable nor the connector moves money. The assistant can record that an invoice was paid, and link it to the bank line that shows the payment, with your playbooks.
Official sources
Every step in this guide is read from these pages, published by the protocol and by each app's maker. .
