Quickbase MCP Server
by danielbushman
Verified
# Quickbase MCP Connector
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) connector for integrating with the [Quickbase JSON RESTful API](https://developer.quickbase.com/).
**DISCLAIMER: This is an unofficial, independent project not affiliated with, sponsored, or endorsed by Quickbase, Inc. This connector is provided "as-is" without warranty of any kind and is not supported by Quickbase. Users are responsible for their own compliance with all applicable laws, regulations, and security requirements when using this connector.**
## Overview
This connector uses the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) to enable AI assistants like Claude to interact with Quickbase's API. It supports a wide range of operations for managing apps, tables, fields, records, files, and reports with Quickbase.
## Features
### For Users
- **AI-Powered Quickbase Access**: Talk to your Quickbase data directly through Claude
- **Data Management**: Create, view, and update your apps, tables, and records through natural language
- **File Handling**: Upload and download file attachments to your records
- **Report Access**: Run your Quickbase reports and get the results directly in chat
- **Large Dataset Support**: Handles pagination automatically when querying large numbers of records
### For Developers
- **Comprehensive API Coverage**: Access to core Quickbase API functionality
- **Structured Responses**: Consistent response formatting for reliable parsing
- **Batch Operations**: Efficient handling of bulk record operations
- **Error Diagnostics**: Detailed error messages with status codes and troubleshooting information
## Prerequisites
- Python 3.8 or higher
- Node.js 14 or higher
- Quickbase API credentials (realm hostname, user token, and app ID)
## Installation
1. Clone the repository:
```bash
git clone https://github.com/danielbushman/Quickbase-MCP-connector.git
cd Quickbase-MCP-connector
```
2. Set up the environment:
```bash
./setup.sh
```
3. Configure your Quickbase credentials:
```bash
cp .env.example .env
# Edit .env with your credentials
```
## Quick Start
For those who just want to try this connector with Claude or Claude Code:
1. Install dependencies and set up the server:
```bash
# Run the setup script to install all dependencies
./setup.sh
# Create a .env file with your Quickbase credentials
echo "QUICKBASE_REALM_HOST=your-realm.quickbase.com
QUICKBASE_USER_TOKEN=your_user_token_here
QUICKBASE_APP_ID=your_app_id_here" > .env
```
2. Using with Claude Desktop (recommended):
Create a config file for Claude Desktop that automatically starts the server. The configuration file location depends on your operating system:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
Add the following configuration:
```json
{
"mcpServers": {
"quickbase": {
"command": "/path/to/node",
"args": [
"/path/to/Quickbase-MCP-connector/src/quickbase/server.js"
],
"env": {
"QUICKBASE_REALM": "your-realm",
"QUICKBASE_USER_TOKEN": "your-user-token",
"QUICKBASE_APP_ID": "your-app-id"
}
}
}
}
```
3. Using with Claude Code:
```bash
# This single command both registers and starts the MCP server
claude mcp add quickbase node src/quickbase/server.js
```
Now you can use Quickbase tools in your Claude session! Example prompt:
"List all tables in my Quickbase app using the quickbase connector."
## Available Tool Categories
### Connection Tools
- `test_connection`: Verify your Quickbase API connection
- `check_auth`: Check authentication status and permissions
### App Tools
- `get_app`: Get details about a specific app
- `get_apps`: List all available apps
- `create_app`, `update_app`: Create and update applications
### Table Tools
- `get_table`, `get_tables`: Retrieve table information
- `create_table`, `update_table`: Create and update tables
### Field Tools
- `get_field`, `get_fields`: Retrieve field information
- `create_field`, `update_field`: Create and update fields
### Record Tools
- `get_record`, `query_records`: Retrieve record data
- `create_record`, `update_record`: Individual record operations
- `bulk_create_records`, `bulk_update_records`: Efficient batch operations
### File Tools
- `upload_file`: Upload a file to a record field
- `download_file`: Download a file from a record field
- `manage_attachments`: High-level attachment management
### Report Tools
- `run_report`: Execute Quickbase reports
## Not implemented
The following operations are not implemented:
- Delete operations (delete_app, delete_table, delete_field, delete_record, bulk_delete_records, delete_file)
- User operations (get_user, get_current_user, get_user_roles, manage_users)
- Form operations (manage_forms)
- Dashboard operations (manage_dashboards)
- Pipelines operations (manage_pipelines)
- FastField Form operations (manage_fast_field_form)
## For Developers & Contributors
### Starting the MCP Server Manually
If you need to manually start the server (for development or debugging):
```bash
node src/quickbase/server.js
```
### Running Tests
This section is primarily for contributors who want to verify their changes or run the test suite.
All tests are located in the `tests/` directory. You can use the test runner to run specific tests or all tests:
```bash
# Run all tests
python tests/run_tests.py --all
# Run specific tests
python tests/run_tests.py connection pagination file
# Run the comprehensive validation script
python tests/run_tests.py validate
```
Individual test scripts can also be run directly:
```bash
# Test connection
python tests/test_connection.py
# Test file operations
python tests/test_file_operations.py
# Test pagination
python tests/test_pagination.py
```
For more information about tests, see [tests/README.md](tests/README.md).
## Environment Variables
The following environment variables may need to be configured:
```
# Quickbase API Credentials
QUICKBASE_REALM_HOST=your-realm.quickbase.com
QUICKBASE_USER_TOKEN=your_user_token_here
QUICKBASE_APP_ID=your_app_id_here
# For file operation testing
QUICKBASE_TABLE_ID=your_table_id_here
QUICKBASE_RECORD_ID=your_record_id_here
QUICKBASE_FILE_FIELD_ID=your_file_field_id_here
# MCP Server Settings (optional)
MCP_SERVER_PORT=3535
```
## Error Handling
The connector provides comprehensive error handling with:
- Error type classification
- HTTP status codes
- Detailed error messages from Quickbase API
- Suggested solutions
- Parameter validation
- JSON data validation
- Proper handling of API request errors
### Common Error Scenarios
- Missing required parameters
- Invalid JSON data format
- Non-existent table or field IDs
- Invalid WHERE clause syntax
- Authentication failures
- Permission issues
- Network connectivity problems
All error responses include helpful diagnostic information to assist with troubleshooting.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request
## License
MIT License - see LICENSE file for details