# Quickbase MCP

> Quickbase MCP Server gives your AI client total control over your custom business applications. Use it to manage complex data, query records, and automate workflows inside Quickbase without ever leaving your chat window. Your agent acts like a dedicated admin, letting you read reports, update entries, or monitor app structures using simple natural language prompts.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** no-code, custom-apps, workflow-automation, data-orchestration, enterprise-apps

## Description

Listen up. This server gives your AI client total control over everything you've built in Quickbase—your custom apps, complex data structures, and reports. You won't have to jump between tabs or manually mess with forms; your agent handles all the back-end work right here in the chat window.

When you need to read specific records or write new information, you just tell the agent what you want. It uses `query_records` to run complex searches against any table, pulling back exactly the data set you're looking for. If you gotta update existing info or dump a bunch of new entries at once, use `upsert_records`; that handles both creating records and modifying them in bulk.

To get a lay of the land on your entire Quickbase setup, start by asking the agent to list every app available across your whole realm using `list_apps`. If you wanna deep-dive into one specific application, it can pull up all the metadata for that single app via `get_app`. You also need to know what data tables exist inside any given app; run `list_tables` to get a list of every single table contained within an application. Once you've got the table name, you can check out its full structure by calling `list_fields`, which returns all the fields that live in that specific table.

Need to track down specific data? You can run pre-built reports using `get_report` and get the detailed results sent back as plain text. This means you don't have to open up a dashboard just to check some numbers; your agent shows you what it found immediately. If you only want to read general details about an existing report without running it, use `get_report`.

For managing who has access and what they can see, the agent lets you list all active users across your whole Quickbase environment using `list_users`. This gives you a clear overview of every account and their respective permissions. And if some data needs to be removed entirely, you've got `delete_records`, which strips records out of any specified table in an application.

Basically, it lets you manage everything: listing applications with `list_apps`, getting app details with `get_app`, viewing all tables with `list_tables`, checking fields with `list_fields`, running reports with `get_report`, querying data with `query_records` or updating/inserting with `upsert_records`, and keeping track of who's logging in using `list_users`. It’s total control, period.

## Tools

### delete_records
Removes records from a specified table within an application.

### get_app
Retrieves detailed metadata for a single, specific Quickbase application.

### get_report
Gets the details and results of an existing report on your platform.

### get_table
Retrieves detailed information about a specific data table inside an app.

### list_apps
Lists every available application within your entire Quickbase realm.

### list_fields
Retrieves a list of all fields that exist in a given table.

### list_reports
Lists all the reports that are available for a specific table.

### list_tables
Shows every single data table contained within a selected application.

### list_users
Lists all user accounts and their access levels across the Quickbase workspace.

### query_records
Runs complex queries to read data from a table, using syntax similar to the Quickbase API documentation.

### upsert_records
Inserts new records or updates existing ones in a specified table using bulk operations.

## Prompt Examples

**Prompt:** 
```
List all active applications in my Quickbase realm.
```

**Response:** 
```
I've retrieved your apps. You have 3 active environments: 'Sales Tracker', 'Project Management', and 'HR Portal'. Which one would you like to see tables for?
```

**Prompt:** 
```
Show me all records in the Project Tracker table where status is In Progress and deadline is this week.
```

**Response:** 
```
12 records found in Project Tracker matching criteria. 4 are due today: "API Integration" (assigned: James Park, 85% complete), "Data Migration Phase 2" (Sarah Chen, 70%), "UI Testing Sprint" (Alex Rivera, 90%), "Documentation Update" (Lisa Wang, 95%). 5 are due by Wednesday. 3 are due Friday. Total estimated hours remaining: 67. 2 tasks are flagged as at-risk based on progress vs deadline analysis.
```

**Prompt:** 
```
Create a new table in the Operations app for tracking vendor invoices with approval workflow.
```

**Response:** 
```
Table "Vendor Invoices" created in Operations app. 12 fields configured: Vendor Name (text), Invoice Number (unique ID), Amount (currency), Date Received, Due Date, Status (dropdown: Pending/Approved/Rejected/Paid), Approver (user), PO Number (linked to Purchase Orders table), Category, Notes, Attachments, and Approval Date. Workflow rule added: auto-notify approver when new invoice is submitted. Dashboard widget created showing pending invoices by amount.
```

## Capabilities

### Querying and modifying records
You tell the agent what data you need, and it executes API calls to read specific records, or write new information by running `query_records` or `upsert_records`.

### Listing application inventory
The agent finds all your available apps (`list_apps`) and allows you to check the details of any single app using `get_app`.

### Managing data structure metadata
You can list every table within an app (`list_tables`), view what fields are in a specific table (`list_fields`), or even delete entire records using `delete_records`.

### Running and retrieving reports
The agent runs existing, pre-built reports and sends back the detailed results via natural language prompts, so you don't have to open a dashboard.

### Auditing users and access
You list all active users (`list_users`) across your Quickbase environment to check permissions and who has access to what data.

## Use Cases

### The weekly status check
An Ops Manager needs to know which project tasks are overdue and who is responsible. They don't want to open the Project Tracker app, filter by 'Status: In Progress', and then sort by 'Deadline'. Instead, they ask their agent to `query_records` on that table. The agent runs the query and immediately spits out a sorted list of 12 records, showing who is assigned and how late it is.

### Onboarding a new department
An IT Admin needs to grant five users access to three different applications. They manually go through the user panel for each app. With this server, they just ask the agent to `list_users` and then follow up with commands to update permissions across multiple apps in quick succession.

### Data cleanup after a merger
A Data Analyst finds old records that need deleting. Instead of navigating through tables one by one, they identify the necessary table, and the agent uses `delete_records` based on specific criteria (e.g., 'date older than 2021'). The records are cleaned up instantly.

### Creating a new tracking mechanism
A team needs to track vendor invoices, which requires creating a whole new table and linking it to purchase orders. Instead of needing development access, they prompt the agent: 'Create a Vendor Invoices table with fields for PO Number and Amount.' The agent runs the necessary setup using `get_table` metadata calls.

## Benefits

- Stop clicking through dashboards. Use `query_records` to run complex searches (like finding 'In Progress' items due this week) and get the resulting list directly in your conversation window.
- Manage app structure without needing an admin login. The agent lets you check application details (`get_app`) or see all available tables (`list_tables`) just by asking a question.
- Handle data changes instantly. Use `upsert_records` to update multiple client records, or `delete_records` when information is obsolete—all with simple prompts.
- See who has access to what. Run `list_users` to audit your permissions and confirm that only the right people can see sensitive project data.
- Keep reports accurate by running them on demand. The `get_report` tool lets you pull detailed analytics results without opening the dedicated reporting section.

## How It Works

The bottom line is that your AI client takes over as a dedicated data coordinator for Quickbase. You talk to it, and it manages the application logic.

1. First, subscribe to the Quickbase server and provide your required Realm Hostname and User Token in the preferences.
2. Next, initiate a conversation with your agent in any MCP-compatible client (Claude, Cursor, etc.).
3. Finally, simply ask for what you need—for example: 'Show me all records in the Project Tracker where status is In Progress.' The agent then executes the necessary tools behind the scenes.

## Frequently Asked Questions

**How do I run a complex query using `query_records`?**
You describe the data set to your agent in natural language. The agent translates that into the required API syntax for you, so you don't need to worry about specific JSON formatting.

**Can I see all my Quickbase applications with `list_apps`?**
Yes. Running `list_apps` gives you an immediate list of every available app in your realm, helping you pinpoint exactly where the data you need lives.

**What is the difference between `get_table` and `get_app`?**
`get_app` provides details on the entire container (the application). `get_table` drills down further, giving you specific metadata about a single data source within that app.

**If I need to update records, which tool should I use?**
Use `upsert_records`. This handles both inserting brand-new records and updating existing ones efficiently. Just tell the agent what needs changing and provide the identifiers.

**What specific data does the `list_users` tool provide regarding my application's users?**
It returns a list of all active user accounts in the specified application. You get key identifiers, account status (active/inactive), and details on their associated permissions within your Quickbase realm.

**How do I check exactly which fields are available in a table using `list_fields`?**
You must provide the target application ID and the specific table ID to use this tool. It returns the field names, data types (e.g., text, currency), and whether they accept unique values.

**Does `list_reports` show me all pre-built reports associated with a particular table?**
Yes, this tool lists every available report defined for that specific table. It gives you the report name and its ID, allowing your agent to select existing data views without needing to build one from scratch.

**What precautions should I take before executing records deletions with `delete_records`?**
Treat this operation as irreversible. Always specify the exact record IDs or criteria you want to delete, and double-check that your query is highly targeted before confirming execution.

**Can my AI automatically query records with specific filters in Quickbase?**
Yes! Use the `query_records` tool. Provide the Table ID (DBID) and a query object (using Quickbase query syntax), and your agent will return the matching records and metadata instantly.

**How do I find my Realm Hostname and User Token?**
Your Realm Hostname is your Quickbase URL (e.g., yourcompany.quickbase.com). To get a User Token, go to **My Preferences** > **Manage my user tokens** in your Quickbase account.

**Does this work with the older XML API?**
This integration specifically targets the modern JSON RESTful API (v1) for better performance and security. We recommend using REST-compatible user tokens for all operations.