Package Exports
- mcp-quickbase
- mcp-quickbase/dist/mcp-stdio-server.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mcp-quickbase) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Quickbase MCP Server
A TypeScript-based Model Context Protocol (MCP) connector for Quickbase, designed for seamless integration with Claude and other AI assistants.
๐ Quick Start
Installation via NPM (Recommended)
# Use directly with npx (no installation needed)
npx -y mcp-quickbase
# Or install globally
npm install -g mcp-quickbaseInstallation from Source
# Clone the repository
git clone https://github.com/danielbushman/MCP-Quickbase.git
cd MCP-Quickbase
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
For NPM Users
Configure directly in Claude Desktop:
{
"mcpServers": {
"quickbase": {
"command": "npx",
"args": ["-y", "mcp-quickbase"],
"env": {
"QUICKBASE_REALM_HOST": "your-realm.quickbase.com",
"QUICKBASE_USER_TOKEN": "your-user-token",
"QUICKBASE_APP_ID": "your-app-id",
"QUICKBASE_CACHE_ENABLED": "true",
"QUICKBASE_CACHE_TTL": "3600"
}
}
}
}For Local Development
Create a .env file in the root directory:
QUICKBASE_REALM_HOST=your-realm.quickbase.com
QUICKBASE_USER_TOKEN=your-user-token
QUICKBASE_APP_ID=your-app-id
QUICKBASE_CACHE_ENABLED=true
QUICKBASE_CACHE_TTL=3600
DEBUG=falseThen configure Claude Desktop:
{
"mcpServers": {
"quickbase": {
"command": "node",
"args": ["/path/to/MCP-Quickbase/dist/mcp-stdio-server.js"],
"env": {
"QUICKBASE_REALM_HOST": "your-realm.quickbase.com",
"QUICKBASE_USER_TOKEN": "your-user-token",
"QUICKBASE_APP_ID": "your-app-id"
}
}
}
}- Start using tools: The connector provides 18 comprehensive tools for Quickbase operations.
๐ ๏ธ Available Tools
Connection & Configuration
test_connection- Test connection to Quickbaseconfigure_cache- Configure caching behavior
Application Management
create_app- Create new Quickbase applicationsupdate_app- Update existing applicationslist_tables- List all tables in an application
Table Operations
create_table- Create new tablesupdate_table- Update existing tablesget_table_fields- Retrieve table field definitions
Field Management
create_field- Create new fields in tablesupdate_field- Update existing field properties
Record Operations
query_records- Query records with advanced filteringcreate_record- Create single recordsupdate_record- Update existing recordsbulk_create_records- Create multiple records efficientlybulk_update_records- Update multiple records efficiently
File Handling
upload_file- Upload files to record fieldsdownload_file- Download files from record fields
Reports
run_report- Execute Quickbase reports with filters
๐๏ธ Architecture
TypeScript-First Design
- 100% TypeScript for type safety and developer experience
- Comprehensive type definitions for all Quickbase API interactions
- Modern async/await patterns throughout
Performance Features
- Intelligent caching with configurable TTL
- Automatic retry logic for transient failures
- Bulk operations for high-performance data manipulation
- Pagination support for large datasets
Error Handling
- Structured error responses with detailed context
- Graceful degradation for API failures
- Comprehensive logging for debugging
๐ Examples
Basic Record Operations
// Query records
const records = await queryRecords({
table_id: "bqrxzt5wq",
where: "{6.CT.'Project'}",
select: ["1", "6", "7", "8"]
});
// Create a record
const newRecord = await createRecord({
table_id: "bqrxzt5wq",
data: {
"6": "New Project",
"7": "Project description",
"8": "High"
}
});
// Update multiple records
const updates = await bulkUpdateRecords({
table_id: "bqrxzt5wq",
records: [
{ "3": "123", "8": "Critical" },
{ "3": "124", "8": "Low" }
]
});File Operations
// Upload a file
const upload = await uploadFile({
table_id: "bqrxzt5wq",
record_id: "123",
field_id: "9",
file_path: "/path/to/document.pdf"
});
// Download a file
const download = await downloadFile({
table_id: "bqrxzt5wq",
record_id: "123",
field_id: "9",
output_path: "/downloads/document.pdf"
});Advanced Queries with Pagination
// Paginated query for large datasets
const largeDataset = await queryRecords({
table_id: "bqrxzt5wq",
select: ["1", "6", "7", "8"],
paginate: true,
max_records: "1000",
options: {
orderBy: [{ fieldId: "6", order: "ASC" }],
top: 100
}
});๐งช Testing
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
# Run tests in watch mode
npm test -- --watch๐ง Development
Project Structure
src/
โโโ client/ # Quickbase API client
โโโ tools/ # MCP tool implementations
โ โโโ apps/ # Application management tools
โ โโโ fields/ # Field management tools
โ โโโ files/ # File operation tools
โ โโโ records/ # Record operation tools
โ โโโ reports/ # Report execution tools
โ โโโ tables/ # Table operation tools
โโโ types/ # TypeScript type definitions
โโโ utils/ # Utility functions
โโโ mcp/ # MCP server implementationAdding New Tools
- Create tool class extending
BaseTool<TParams, TResult> - Implement required properties and
run()method - Register in appropriate tool category
- Add comprehensive tests
Example:
export class MyCustomTool extends BaseTool<MyParams, MyResult> {
public readonly name = 'my_custom_tool';
public readonly description = 'Description of my tool';
public readonly paramSchema = { /* JSON Schema */ };
protected async run(params: MyParams): Promise<MyResult> {
// Implementation
}
}๐ฆ Deployment
HTTP Server Mode
npm start # Runs on port 3536MCP Stdio Mode
node dist/mcp-stdio-server.js๐ Requirements
- Node.js 18+
- TypeScript 5.2+
- Quickbase account with API access
- Valid user token with appropriate permissions
๐ค Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
๐ License
MIT License - see LICENSE file for details.
๐ Support
For issues and questions:
- Check the documentation
- Review the Quick Start Guide
- Open an issue on GitHub
Built with โค๏ธ for seamless Quickbase integration with AI assistants.