Click on "Install 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., "@Fusebase MCP ServerList my recent pages and show the folder structure for my workspace"
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.
Fusebase MCP Server
An MCP server that lets AI assistants manage your Fusebase (formerly Nimbus Note) workspaces — pages, folders, tasks, tags, files, members, and more.
Note: Fusebase has no public REST API. This server uses reverse-engineered internal endpoints with cookie-based authentication.
✨ Features
63 tools across content, tasks, members, org admin, portals, databases, files, guides, and more
Two-tier system — 21 core tools load by default; 42 extended tools on demand
Auto auth retry — detects 401/403 and refreshes session automatically
Encrypted secrets — cookies stored encrypted at rest (AES-256-GCM)
Version checking — built-in update detection from GitHub
API logging — all requests logged for debugging
🚀 Quick Start
Prerequisites
1. Install
Option A — Install from GitHub (recommended):
npm install -g github:ryan-haver/fusebase-mcpThis automatically installs dependencies, compiles TypeScript, and downloads Chromium for auth.
Option B — Clone and build manually:
git clone https://github.com/ryan-haver/fusebase-mcp.git
cd fusebase-mcp
npm install
npm installautomatically builds the project and installs Playwright's Chromium via theprepareandpostinstallscripts.
2. Configure
Copy .env.example to .env and set your Fusebase details:
cp .env.example .envFUSEBASE_HOST=yourorg.nimbusweb.me # Your org's Fusebase hostname
FUSEBASE_ORG_ID=your_org_id # Found in Fusebase URL or API responsesWhere to find these: Log into Fusebase → look at the URL bar. Your hostname is
<something>.nimbusweb.me. The org ID appears in API requests (open browser DevTools → Network tab → look for/v2/api/requests).
3. Authenticate
Run the auth script to capture your session cookies securely:
npx tsx scripts/auth.tsThis opens a browser window → log into Fusebase → cookies are automatically captured and saved encrypted to data/cookie.enc.
Headless mode: After the first login, you can re-authenticate without a browser window:
npx tsx scripts/auth.ts --headless
4. Connect to Your AI Assistant
Add to your MCP client config. Examples:
{
"fusebase": {
"command": "node",
"args": ["/path/to/fusebase-mcp/dist/index.js"],
"env": {
"FUSEBASE_HOST": "yourorg.nimbusweb.me",
"FUSEBASE_ORG_ID": "your_org_id"
}
}
}{
"mcpServers": {
"fusebase": {
"command": "node",
"args": ["/path/to/fusebase-mcp/dist/index.js"],
"env": {
"FUSEBASE_HOST": "yourorg.nimbusweb.me",
"FUSEBASE_ORG_ID": "your_org_id"
}
}
}
}{
"mcp": {
"servers": {
"fusebase": {
"command": "node",
"args": ["/path/to/fusebase-mcp/dist/index.js"],
"env": {
"FUSEBASE_HOST": "yourorg.nimbusweb.me",
"FUSEBASE_ORG_ID": "your_org_id"
}
}
}
}
}Note: Replace
/path/to/fusebase-mcpwith the actual path where you cloned the repo. On Windows, use double backslashes:"C:\\path\\to\\fusebase-mcp\\dist\\index.js".
5. Verify
Ask your AI assistant:
"List my Fusebase workspaces"
If it works, you're all set! 🎉
🔧 Tool Tiers
The server uses a core/extended tier system to optimize agent context usage:
Tier | Tools | Description |
Core (default) | 21 | Day-to-day: pages, folders, tasks, tags, members, guides |
Extended | +42 | Admin, analytics, content mutations, files, databases, portals |
Enable extended tools:
Mid-session: ask your AI to use
set_tool_tierwithtier: "all"Always-on: add
FUSEBASE_TOOLS=allto your.env
Core Tools (21)
Category | Tool | Description |
Meta |
| Enable extended tools or check current tier |
Meta |
| Check for server updates from GitHub |
Auth |
| Refresh session cookies via Playwright |
Content |
| List all workspaces |
Content |
| List pages (filter by folder, pagination) |
Content |
| Get page metadata |
Content |
| Get page content as HTML (Y.js decoded) |
Content |
| Recently accessed pages |
Content |
| Create a new blank page |
Content |
| Folder tree for a workspace |
Tags |
| Workspace or page tags |
Tags |
| Set tags on a page |
Members |
| Workspace or org members |
Tasks |
| Search tasks (by workspace/page) |
Tasks |
| Task boards and tasks |
Tasks |
| Create a task in a task list |
Guides |
| Search 231 FuseBase guides by keyword |
Guides |
| Get full guide content by section/slug |
Guides |
| Browse all 17 guide sections |
Extended Tools (42)
Enable with set_tool_tier(tier: "all"):
Content mutations:
delete_page,update_page_contentFiles & attachments:
get_page_attachments,list_files,get_file_count,upload_file,download_attachmentLabels & tags:
get_labels,get_note_tagsActivity & comments:
get_activity_stream,get_comment_threadsTasks (advanced):
get_task_description,get_task_count,get_task_usageOrganization:
get_org_usage,get_org_limits,get_usage_summary,get_org_permissions,get_org_features,get_ai_usageWorkspaces:
get_workspace_detail,get_workspace_emails,get_workspace_infoNavigation & AI:
get_navigation_menu,get_mention_entities,list_agents,get_recently_updated_notesDatabases:
get_database_data,list_databases,get_database_entity,create_database,add_database_row,list_all_databases,get_database_detail,update_database,delete_database,get_dashboard_detail,delete_dashboard,update_view,set_view_representationPortals:
list_portals,get_portal_pages
🔐 Security
No plaintext secrets on disk — cookies are encrypted with AES-256-GCM using a machine-scoped key
Auto-refresh — expired sessions are transparently refreshed via Playwright
.envis gitignored — credentials never enter version controlCookie via env var — optionally pass
FUSEBASE_COOKIEin your MCP config for environments where the encrypted store isn't available
🗂️ Project Structure
src/
index.ts → MCP server (63 tools, stdio transport, tier system)
client.ts → HTTP client (cookie auth, 401 auto-retry, logging)
crypto.ts → AES-256-GCM encryption for secrets at rest
types.ts → TypeScript interfaces for API responses
content-schema.ts → Content block IR (25+ block types)
markdown-parser.ts → Markdown → ContentBlock[] converter
token-builder.ts → ContentBlock → Y.js token builder
yjs-ws-writer.ts → Y.js WebSocket writer (write + read via WS sync)
yjs-html-decoder.ts → Y.js document → HTML decoder (20+ block types)
guide-loader.ts → Guide search index (231 guides, 17 sections)
scripts/
auth.ts → Capture session cookies via Playwright
scrape-guides.ts → Scrape FuseBase help guides into markdown + NLM sync
test-regression.ts → Comprehensive write→read regression test (20 checks)
test-guide-tools.ts → Guide loader integration test (13 checks)
discover.ts → Crawl Fusebase UI to discover API endpoints
docs/
guides/ → 231 FuseBase guides across 17 sections (auto-scraped)
data/ → (gitignored) Cookie store, API logs, workspace cache🗺️ Roadmap
See UNIMPLEMENTED_ENDPOINTS.md for 36 discovered but unimplemented API endpoints, prioritized by value:
Automation — ActivePieces flow/run management (11 endpoints)
Databases — entity/table CRUD (3 endpoints)
AI assistant — thread and preference management
🤝 Contributing
Fork the repo
Create a feature branch
Run
npm run buildto verify TypeScript compilesSubmit a PR
📄 License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.