Box MCP server
OFFICIAL SERVERBox's hosted MCP endpoint for searching, reading, editing and analysing files stored in Box
Read, search and edit Airtable bases, tables, fields, records and comments over MCP
By adam jones (individual) TypeScript Local · stdio DatabasesProductivity
60 popularity score ★ 456 ↓ 3.7k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs AIRTABLE_API_KEY. Replace each <NAME> with your value.
claude mcp add airtable -e AIRTABLE_API_KEY=<AIRTABLE_API_KEY> -- npx -y airtable-mcp-server{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
}
}
}
}{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
}
}
}
}{
"servers": {
"airtable": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
}
}
}
}[mcp_servers.airtable]
command = "npx"
args = ["-y", "airtable-mcp-server"]
[mcp_servers.airtable.env]
AIRTABLE_API_KEY = "<AIRTABLE_API_KEY>"gemini mcp add --scope user -e AIRTABLE_API_KEY=<AIRTABLE_API_KEY> airtable npx -- -y airtable-mcp-serverAIRTABLE_API_KEY |
Required: Airtable personal access token (looks like pat123.abc123); the server will not start without it. |
|---|---|
MCP_TRANSPORT |
Optional: stdio (default) or http to serve a stateless HTTP endpoint at /mcp. |
PORT |
Optional: Port for HTTP mode; 3000 by default. |
airtable-mcp-server connects an MCP client to the Airtable Web API with a personal access token. The assistant can first look at the shape of a base (its tables, fields and views, at three levels of detail) and then work on the data: list records with an Airtable formula filter, search text fields for a term, fetch one record, create a record, and update or delete several at once.
It also changes structure, not just data: it can create tables, create fields, and rename or redescribe tables and fields. Record comments can be listed and posted, including threaded replies.
Version 1.14.0 registers 16 tools, one more than the README lists: upload_attachment, which sends a file (passed in as base64 text, up to 5 MB) straight into an attachment field of an existing record through Airtable's upload API (src/tools/index.ts and src/tools/upload-attachment.ts at v1.14.0).
It is a community project by Adam Jones (domdomegg), not a product of Airtable. It runs locally over stdio by default; setting MCP_TRANSPORT=http starts a stateless HTTP endpoint at /mcp instead.
| Runtime | Node.js |
|---|
Node.js to run it with npx. An Airtable account and a personal access token with at least the schema.bases:read and data.records:read scopes and access to the bases you want; add schema.bases:write, data.records:write and the data.recordComments scopes for the write and comment tools. The token goes in AIRTABLE_API_KEY.
The server exits at start when AIRTABLE_API_KEY is empty (src/airtableService.ts). list_records and search_records return 100 records by default, adjustable with maxRecords; list_comments returns at most 100 per page and pages with offset. upload_attachment takes files up to 5 MB and only for a record that already exists; larger files must be given to create_record or update_records as a public URL. There are no tools to delete tables or fields, or to create bases. Passing the key as a command-line argument still works but is marked deprecated in the code. HTTP mode has no authentication of its own.
Suits someone who keeps data in Airtable and wants an assistant to inspect, query and edit it, including adding tables and fields, from a local client with their own token. Because it writes and deletes, a read-only token (only the two read scopes) is the way to limit it to lookups. Airtable runs its own hosted MCP endpoint, which we also list (airtable-com, https://mcp.airtable.com/mcp); pick that if you want the vendor's server and a hosted sign-in instead of running a local process with a token.
list_recordssearch_recordslist_baseslist_tablesdescribe_tableget_recordcreate_recordupdate_recordsdelete_recordscreate_tableupdate_tablecreate_fieldupdate_fieldcreate_commentlist_commentsupload_attachment