clawpanel-mcp
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., "@clawpanel-mcpsearch my knowledge base for recent product decisions"
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.
clawpanel-mcp
Your ClawPanel workspace, as an MCP server. Clients connect from ChatGPT (deep-research compatible), Claude, or any MCP client over OAuth 2.1 — and see only their own workspace: knowledge base, memory, agents, and activity.
This is the client-facing sibling of zme-mcp and the alpha ring of ClawPanel's public API surface.
Tools
Tool | What it does | Scope |
| ChatGPT-compatible pair over the tenant KB — |
|
| Add a document (extracted text) to the tenant KB; searchable via |
|
| Semantic search over workspace memory |
|
| Add a memory item (note, decision, fact) |
|
| The workspace's agents (name, model, gateway) |
|
| Agents + recent workflow runs + tool activity |
|
| Recent workspace chat messages |
|
Every tool is tenant-scoped by the OAuth token. The client never passes a tenant id; the server resolves it from the authenticated profile and filters every query server-side.
Related MCP server: identity-aware-mcp-server
How auth works (alpha)
Full OAuth 2.1: DCR, PKCE, authorization codes, refresh, revocation.
ChatGPT/Claude discovers metadata, registers itself (DCR), opens
/authorize.The client signs in with their ClawPanel email + passphrase.
The server resolves email →
profilesrow →tenant_idand issues a token whose scopes come from server-side profile config — never from the request.Scopes mirror the
mcp_tokensvocabulary:brain,memory,kb,drive.
Rings: alpha (passphrases in env, in-memory sessions) → beta (Supabase
auth sessions, persistent grants) → prod (per-profile labels, RLS-enforced
direct connections). Token contract is frozen from alpha.
Configuration
Variable | Purpose |
| Supabase project URL (defaults to the clawpanel_db project) |
| service-role JWT. Server-only — it bypasses RLS, so tenant isolation is enforced in code on every query. Auto-resolves from NoxKey |
| JSON: |
| Public URL (for OAuth metadata/redirects) |
|
|
| Optional — enables vector arm of hybrid KB search and semantic memory search |
Run
uvicorn-grade Docker deploy: see Dockerfile + fly.toml → flyctl deploy
# local:
CLAWPANEL_OAUTH_PROFILES='{...}' clawpanel-mcp --http --port 8080
# → POST /mcp · GET /healthz · OAuth at /.well-known/*Connect from ChatGPT
Settings → Security and login → Developer mode → on, then
chatgpt.com/plugins → + → https://clawpanel-mcp.fly.dev/mcp → sign in
with your ClawPanel email + passphrase. Works in deep research (search/fetch
make your KB citable).
Verification
scripts/verify_clawpanel.py runs the full OAuth dance for two tenants and
asserts tenant isolation (each sees only their own agents/chat, cross-tenant
fetch returns nothing), scope gating, and every tool against live data.
KB ingestion (ingest)
ingest(title, text, source_url=None) chunks the text with a word-window
splitter (≤460 estimated tokens/chunk, well under the 512-token embed cap) and
writes zme_chunks rows for the caller's tenant. Notes on the live schema:
This project has no
sourcestable and nosource_urlcolumn on chunks. Thezme_chunks_one_parentconstraint requires every chunk to link to exactly one parent (drive_node_idXORkb_page_id), so each ingested doc also creates akb_pagesrow (unique per-tenantslug, full text asbody_md) and chunks link to it viakb_page_id.content_tsvis a generated stored column (context_prefix + heading + content), so the lexical arm ofzme_searchpicks up new chunks automatically — no trigger to maintain.Chunks are embedded with
nvidia/nv-embedqa-e5-v5usinginput_type=passage(the stored side; queries useinput_type=query— the model is asymmetric). Embeddings are 1024-dimvector(1024)and the vector arm is HNSW-indexed; both arms verified live end-to-end.Idempotent per source: the marker (
sha256(source_url)orsha256(title+text)) lives incontext_prefixand drives the slug; re-ingesting the same source updates the page and replaces its chunks in place instead of duplicating.
This server cannot be deployed
Maintenance
Related MCP Connectors
OAuth-protected, read-only-by-default MCP server for provenance-labeled QuillCaddie project memory.
Connect AI agents to Filepad workspaces through OAuth MCP.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.65MIT
- FlicenseNot gradedqualityDmaintenanceA production-ready MCP server that authenticates agents via OAuth 2.1 Bearer tokens, validates JWTs with JWKS, enforces tool-level scopes and roles, and logs the full delegation chain.-
- AlicenseNot gradedqualityDmaintenanceMulti-tenant remote MCP server that exposes any GitHub-backed Obsidian vault to any MCP client via OAuth authentication.6 npmMIT
- FlicenseNot gradedqualityDmaintenanceMulti-tenant MCP server with OAuth 2.1 authorization, enabling tenant-scoped tool access and audit logging.-