AppBI Workboard MCP
Allows creating and managing Google Sheets data sources for workboard mini-apps, including reading rows and inspecting schema.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AppBI Workboard MCPcreate a workboard from my sales data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AppBI Workboard MCP
Build a working AppBI Workboard mini-app end to end — from raw data all the way to a shareable app — through one self-contained MCP server:
Source -> Dataset -> Data Model -> Workboard -> ShareConnect or pick a data source, create a dataset and its tables, lay down a relationship model, then author the mini-app (forms — incl. photo/OCR capture and a satellite map picker; editable tables that can render as a photo gallery; printable docs; embedded dashboards) with app users, doc webhooks, public links and a delivery workspace. Every mutating tool previews a plan and changes nothing until you confirm.
Charts, full BI semantic measures/explores, and DB-credential source connections stay in the AppBI UI / dashboard MCP. This server owns the Workboard journey.
Setup
Set-Location D:\Appv2\appbi-ai\Skill-AppBI\appbi-workboard-mcp
.\setup-mcp.ps1 # creates .venv, installs deps, seeds .env
.\bootstrap-pat.ps1 # mints your PAT and writes it into .env (see below)
.\run-mcp.ps1 # launches the server (profile=all)macOS / Linux:
cd /path/to/appbi-workboard-mcp
cp .env.example .env # set APPBI_BASE_URL if not http://localhost:8000
./bootstrap-pat.sh # mints your PAT and writes it into .env
./run-mcp.sh # bootstraps .venv on first runRelated MCP server: Data Platform MCP
Get your PAT (the token that connects the MCP)
The MCP authenticates to AppBI with a Personal Access Token (PAT). A PAT cannot mint itself (the call that creates it needs a logged-in account), so this is the one credential you supply once. Three ways, no hand-written code:
Shipped helper (recommended for first run).
bootstrap-pat.ps1/./bootstrap-pat.sh(orpython bootstrap_pat.py) asks for your AppBI base URL, email and password, mints the token, and writesAPPBI_PAT+APPBI_BASE_URLinto.env. Add--print-onlyto just print it.From inside your MCP client. If the server is already registered, call the
bootstrap_personal_access_tokentool with an AppBI email + password — it mints the PAT, connects the running session immediately, and saves it to.env. (health_checkreturnsneeds_patuntil you do.)Manually. AppBI UI → Settings → Personal Access Tokens → create one, then paste it into
.envasAPPBI_PAT=....
The token needs these scopes (the helpers grant them for you):
data_sources— discover and create Google Sheets / file sources.datasets— create datasets, tables, the relationship model.explore_charts+dashboards— embedded dashboard screens.workboards(full) — build workboards, app users, public links, and create/manage delivery workspaces.
Register in an MCP client
Add to your client's MCP config (Claude Desktop claude_desktop_config.json,
or .mcp.json for Claude Code). Adjust paths for your OS:
{
"mcpServers": {
"appbi-workboard": {
"command": "D:\\Appv2\\appbi-ai\\Skill-AppBI\\appbi-workboard-mcp\\.venv\\Scripts\\python.exe",
"args": ["D:\\Appv2\\appbi-ai\\Skill-AppBI\\appbi-workboard-mcp\\appbi_workboard_mcp.py"],
"env": {
"APPBI_BASE_URL": "http://localhost:8000",
"APPBI_PAT": "<your-token>",
"APPBI_MCP_PROFILE": "all"
}
}
}
}Run setup-mcp.ps1 once first so .venv exists.
The journey (canonical workflow)
Stage | Do this |
0 Source |
|
1 Dataset |
|
2 Data Model |
|
3 Workboard |
|
4 Share |
|
Profiles
Default APPBI_MCP_PROFILE=all exposes everything — testers need no config.
Power users can shrink the surface (comma-combinable):
discover (read-only) · source · dataset · model · build · deliver
.\run-mcp.ps1 -Profile build # author/validate/apply only
$env:APPBI_MCP_PROFILE = 'discover,build'; .\run-mcp.ps1Bundle contract
get_workboard_design_guide() returns the live contract + the full current
screen schema. The bundle:
{
"workboard": {
"name": "Inventory Demo",
"slug": "inventory-demo",
"dataset_id": 47,
"primary_table_id": 101,
"primary_key_columns": ["id"],
"publish": true
},
"layout_json": { "screens": [], "mini_app_nav": { "items": [] } },
"app_users": [],
"webhooks": [],
"workspace": {}
}Screen kinds: form, table, doc, dashboard. A table screen uses its
table spec (legacy list/grid are not valid). Screen schemas are strict —
only the fields listed in the design guide are accepted.
Gotchas worth knowing (verified against the backend)
Google Sheets
source_table_nameis the tab name only —"DM_SanPham", never"<spreadsheet_id>.DM_SanPham".columns_cachefills after profiling — callget_table_profileonce on every newly added table before authoring model joins or screens against it.Pass
workboard.slugexplicitly when delivering via a workspace — the backend does not auto-generate one, and workspace menus key by slug.Public links require the owner PIN rotated off the default before
create_workboard_public_linksucceeds.
Hit an error while building? Want to extend the MCP?
See MAINTAINERS.md — the debug + upgrade guide:
Mental model: the AppBI backend is the single gatekeeper; this MCP is thin tools + a design guide. Most "the MCP can't build X" issues are a design-guide gap, not missing code (because
applysendslayout_jsonstraight through).Which layer failed — MCP pre-check (
validate_workboard_bundle) vs backend gate (thebackend_errorenvelope with a Pydantic field path indetail) vs runtime (audit_workboard/ smoke test) — and where each fix goes.The debugging loop (reproduce with
validate, read the 422detail, curl the backend with the same PAT,APPBI_MCP_LOG_LEVEL=DEBUG).The upgrade playbook — 3 cases (document a backend-supported field · relax a false pre-check · add a new tool) with exact edit locations, plus a test-before-ship checklist.
A common-errors → cause → fix table.
Files
File | Role |
| Entry point — imports every stage module |
| FastMCP, profiles, HTTP + multipart client, confirmation helpers |
| Stage 0 — source discovery + Google Sheets/manual create |
| Stage 1 — dataset, tables, profiling, descriptions |
| Stage 2 — generate-model + relationships + lookup suggestions |
| Dataset/Workboard/workspace reads + design-context aggregator |
| Stage 3 — bundle guide, validation, one-confirm apply |
| Stage 3 helpers — test-js, access audit, export, public links |
| App-user maintenance |
| Doc-webhook maintenance + sync history |
| Workspace delivery + runtime smoke test |
This server cannot be deployed
Maintenance
Related MCP Connectors
Give any MCP-compatible AI assistant a builder for live, hosted web tools and workflows.
Build your own tools from chat: design, test and host them on a shareable MCP server URL.
1Create, edit, preview, and deploy full-stack web apps to a live URL from any MCP client.
Build, deploy, and host full-stack web apps from any MCP client. DB, auth, storage, cron included.
Related MCP Servers
AlicenseCqualityDmaintenanceAn MCP server for doing doing initial app planning and creating a good starting point in Databutton – it starts a new app and generates the initial MVP tasks115 npm25MIT- FlicenseBqualityBmaintenanceBootstrap MCP server for future data exploration and querying across multiple databases, currently only provides a hello_world tool with no actual data connectivity.29-
- FlicenseNot gradedqualityCmaintenanceEnables users to generate, deploy, and register a read-only MCP server from database connection parameters without writing code.-
- AlicenseAqualityAmaintenanceEnables building a full backend directly from MCP clients using natural language, including projects, boards, typed columns, data, and REST endpoints with API keys. It also supports deploying frontends and provides a ready-made admin interface for end clients.48193 npmMIT