add_column
Add a new column to an existing table. For SingleSelect: provide options in meta. For QrCode/Barcode: provide reference column ID. PhoneNumber uses standard text storage.
Drive a NocoDB base end to end from the agent: create tables and columns, read and write records, run filtered queries and aggregations, and push files into NocoDB storage and onto rows.
LABSCO SUMMARY
The record calls are addressed by table_name rather than by opaque id, which keeps prompts readable, and the aggregate and group_by pair means a count or a sum comes back as a number instead of as rows the model has to add up. The price of that authority is that the destructive calls take the same shape as the safe ones: delete_table needs a table_id and nothing more. add_column is the one place the abstraction drops away and expects NocoDB's own column vocabulary — uidt, dt, dtx, cdf — rather than a plain type name.
A full NocoDB client covering base and table discovery, schema changes, record CRUD, view and query access and attachment handling, all against the instance named in NOCODB_BASE_URL.
A reachable NocoDB instance, whose address you supply in NOCODB_BASE_URL, and an API token for it in NOCODB_API_TOKEN.
One command plus a key — npx @andrewlwn77/nocodb-mcp, then supply credentials
USE CASES
Describe the columns once, add the ones you forgot, and confirm the shape before anything is written into it.
Push the whole set in one call rather than a row at a time, then read back a page of it to check the mapping held.
Ask the database for the number, so the count or the sum arrives as a value instead of as rows the model has to total.
Search the table for the phrase they remembered, open the row it points at, and correct it in place.
Get the file into NocoDB storage — from disk or straight from a URL — then bind it to the row and confirm what is attached.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_columnAdd a new column to an existing table. For SingleSelect: provide options in meta. For QrCode/Barcode: provide reference column ID. PhoneNumber uses standard text storage.
aggregatePerform aggregation operations on a column
attach_file_to_recordAttach an uploaded file to a record
bulk_insertInsert multiple records into a table
create_tableCreate a new table in a base with specified columns. Supports various column types including SingleSelect (with options), PhoneNumber, QrCode, and Barcode.
create_viewCreate a new view for a table
delete_columnDelete a column from a table
delete_recordDelete a single record
delete_tableDelete a table from the database
get_attachment_infoGet information about file attachments in a record
get_base_infoGet detailed information about a specific base/project
get_recordGet a single record by ID
get_table_infoGet detailed information about a table including its schema
get_view_dataGet records from a specific view
group_byGroup records by a column and get counts
insert_recordInsert a single record into a table
list_basesList all available NocoDB bases/projects
list_recordsList records from a table with optional filtering, sorting, and pagination
list_tablesList all tables in a base
list_viewsList all views for a table
queryExecute an advanced query with filtering, sorting, and field selection
search_recordsSearch for records containing a query string
update_recordUpdate a single record
upload_attachmentUpload a file attachment to NocoDB storage
upload_attachment_by_urlUpload files to NocoDB storage from URLs
BEFORE YOU INSTALL
25 tools when we connected. Records get full create, read, update and delete. Tables and columns can be created and deleted but not changed, and views can be listed, created and read but not changed or deleted. Field types such as SingleLineText are values for uidt, not tools.
CONTEXT COST
Rated by the size of the 25 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx @andrewlwn77/nocodb-mcp{
"mcpServers": {
"nocodb": {
"command": "npx",
"args": [
"@andrewlwn77/nocodb-mcp"
],
"env": {
"NOCODB_BASE_URL": "http://localhost:8080",
"NOCODB_API_TOKEN": "<YOUR_NOCODB_API_TOKEN>"
}
}
}
}Install the package globally:
npm install -g @andrewlwn77/nocodb-mcpThen add this to claude_desktop_config.json:
{
"mcpServers": {
"nocodb": {
"command": "nocodb-mcp",
"env": {
"NOCODB_BASE_URL": "http://localhost:8080",
"NOCODB_API_TOKEN": "<YOUR_NOCODB_API_TOKEN>"
}
}
}
}