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
Hosted MCP server for AI agent identity, permissions, verification, and reusable proof.
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.
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.64MIT
- 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 gradedqualityCmaintenanceMulti-tenant remote MCP server that exposes any GitHub-backed Obsidian vault to any MCP client via OAuth authentication.8 npmMIT
- FlicenseNot gradedqualityBmaintenanceMulti-tenant MCP server with OAuth 2.1 authorization, enabling tenant-scoped tool access and audit logging.-