A Model Context Protocol (MCP) server that provides maximum flexibility for QuickBase operations. This server allows you to create tables, add fields, modify relationships, and perform all QuickBase operations through MCP tools.
- Get application information
- List all tables
- Test connection
- Create new tables
- Get table information
- Update table properties
- Delete tables
- Get all fields for a table
- Create new fields (all types supported)
- Update existing fields
- Delete fields
- Support for lookups, formulas, relationships
- Query records with filtering and sorting
- Get specific records
- Create single or multiple records
- Update existing records
- Delete records
- Search records by text
- Bulk operations
- Create parent-child relationships
- Get existing relationships
- Foreign key management
- Get and run reports
- Advanced querying capabilities
- Error handling and retry logic
- Clone and setup the server:
cd quickbase-mcp-server
npm install
- Copy environment configuration:
cp env.example .env
- Configure your QuickBase credentials in
.env
:
# QuickBase Configuration
QB_REALM=yourname.quickbase.com
QB_USER_TOKEN=your_quickbase_user_token_here
QB_APP_ID=yourid
# Optional: Default settings
QB_DEFAULT_TIMEOUT=30000
QB_MAX_RETRIES=3
# MCP Server Configuration
MCP_SERVER_NAME=quickbase-mcp
MCP_SERVER_VERSION=1.0.0
- Build the project:
npm run build
- Go to QuickBase → My Apps → User Account
- Click "Manage user tokens"
- Click "New user token"
- Give it a name like "MCP Server"
- Set appropriate permissions
- Copy the token to your
.env
file
npm start
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"quickbase": {
"command": "node",
"args": ["/path/to/quickbase-mcp-server/dist/index.js"],
"env": {
"QB_REALM": "yourname.quickbase.com",
"QB_USER_TOKEN": "your_token_here",
"QB_APP_ID": "yourid"
}
}
}
}
quickbase_get_app_info
- Get application informationquickbase_get_tables
- List all tablesquickbase_test_connection
- Test connection
quickbase_create_table
- Create new tablequickbase_get_table_info
- Get table detailsquickbase_delete_table
- Delete table
quickbase_get_table_fields
- Get all fieldsquickbase_create_field
- Create new fieldquickbase_update_field
- Update existing fieldquickbase_delete_field
- Delete field
quickbase_query_records
- Query with filters/sortingquickbase_get_record
- Get specific recordquickbase_create_record
- Create new recordquickbase_update_record
- Update existing recordquickbase_delete_record
- Delete recordquickbase_bulk_create_records
- Create multiple recordsquickbase_search_records
- Search by text
quickbase_create_relationship
- Create table relationshipquickbase_get_relationships
- Get existing relationships
quickbase_get_reports
- Get all reportsquickbase_run_report
- Run specific report
{
"name": "quickbase_create_table",
"arguments": {
"name": "New Projects",
"description": "Project tracking table"
}
}
{
"name": "quickbase_create_field",
"arguments": {
"tableId": "bu65pc8px",
"label": "Project Status",
"fieldType": "text_choice",
"choices": ["Planning", "Active", "Complete", "On Hold"],
"required": true
}
}
{
"name": "quickbase_query_records",
"arguments": {
"tableId": "bu65pc8px",
"where": "{6.EX.'John'}",
"top": 10,
"sortBy": [{"fieldId": 3, "order": "DESC"}]
}
}
{
"name": "quickbase_create_record",
"arguments": {
"tableId": "bu65pc8px",
"fields": {
"6": {"value": "John Doe"},
"7": {"value": "123 Main St"},
"8": {"value": "[email protected]"}
}
}
}
text
- Single line texttext_choice
- Single choice dropdowntext_multiline
- Multi-line textrichtext
- Rich text editornumeric
- Number fieldcurrency
- Currency fieldpercent
- Percentage fielddate
- Date fielddatetime
- Date/time fieldcheckbox
- Checkbox fieldemail
- Email fieldphone
- Phone number fieldurl
- URL fieldaddress
- Address fieldfile
- File attachmentlookup
- Lookup from another tableformula
- Calculated fieldreference
- Table reference
npm run dev
npm test
-
Authentication Error
- Check your user token is correct
- Verify token permissions include your app
- Ensure realm hostname is correct
-
Table/Field Not Found
- Verify table/field IDs are correct
- Check if you have permissions to access
-
Field Creation Fails
- Check field type is supported
- Verify choices are provided for choice fields
- Ensure formula syntax is correct for formula fields
Set environment variable:
DEBUG=quickbase-mcp:*
This server provides the maximum flexibility for QuickBase operations by:
- Direct API Access - Uses QuickBase REST API v1 directly
- Complete Field Support - Supports all QuickBase field types
- Relationship Management - Can create and manage table relationships
- Bulk Operations - Efficient bulk record operations
- Advanced Querying - Full QuickBase query syntax support
- Error Handling - Comprehensive error handling and retry logic
MIT License