Knowladex docs.
Everything you need to drop raw notes into Knowladex and walk
away with an interconnected wiki you can query from Claude,
Cursor, or any tool that speaks MCP. Start with the
5-minute quickstart, or jump straight
to the tool reference.
01 What is Knowladex?
Knowladex is a multi-tenant knowledge-base platform built on
a single architectural choice: the model that
compiles your knowledge base is the model you're already
paying for.
Drop raw documents — meeting transcripts, half-finished
specs, customer call notes, scratch files — into a project.
Then ask your AI tool to compile. It calls Knowladex's MCP
compile tool, gets a payload of raw docs and
current wiki state, and writes interconnected articles
back over write_article. Knowladex stores,
indexes, cross-links, and serves them.
The compiler isn't ours. It's the Claude
(or other model) you brought to the conversation. Knowladex
hands the raw documents back to your AI tool over MCP and
your model does the reading and writing in its own context
window — on its own bill. The substrate is ours: storage,
multi-tenant primitives, the MCP server, the dashboard, the
auth model, the search index, the backlink graph. The
thinking happens upstream of us, in the AI tool you brought.
02 Who it's for
- Consultants & agencies running knowledge bases for many clients. Each client is its own org with its own users, tokens, and (optionally) subdomain.
- AI-native product teams who want their own internal docs queryable by their own agents — same wiki, same scope, same permissions as their humans.
- Solo operators drowning in scratch files and transcripts who want a wiki that organizes itself overnight.
03 Quickstart (5 minutes)
Assumes Knowladex has already provisioned your
workspace. (If you're self-hosting, see the repo
for the deploy guide.)
-
01
Sign in to your workspace
Open https://app.knowladex.com/c/<your-org>/login and sign in with the email and password your account team gave you.
-
02
Create your first project
Click New project. A project is one knowledge base — pick a slug like acme-rebrand or q1-research.
-
03
Mint an API token
Go to My account → Create API token. You'll get a kbm.<org>.<random> string. Save it — it's only shown in full once.
-
04
Wire up your MCP client
The My account page has copy-paste configs for Claude Code, Cursor, and Claude Desktop. See connecting your AI tool for the full guide.
-
05
Ingest your first doc
In your AI tool: "ingest this file into the acme-rebrand project on Knowladex" — drop a markdown file. The AI tool will call ingest_document.
-
06
Compile
Then: "compile the acme-rebrand knowledge base". Your AI tool will call compile, read every raw doc, and write wiki articles via write_article.
-
07
Browse
Open the dashboard at /c/<org>/p/<project>. You'll see a fully-formed wiki with cross-links, an index, and search.
04 Core concepts
Knowladex's data model is small enough to fit in one diagram.
Five things, in order from outermost to innermost:
Organization
The top-level tenant. One org = one client (if you're
an agency) or one company (if you're a product team). Orgs
contain users, projects, and tokens, and are the unit of
isolation — users in one org can never see another org's data.
Org slugs look like acme-corp or
knowladex.
Project
One knowledge base inside an org. An org can have many
projects (e.g. marketing-research,
infra-rewrite, product-decisions).
Each project has its own raw store, wiki, index, schema, and
activity log.
Raw documents
The unstructured input. Markdown, transcripts, meeting dumps,
scratch files. Knowladex stores them as-is in the project's
raw/ directory. Each raw doc gets an id, title,
tags, and optional source URL. Raw docs are never modified
after ingest — they're the source of truth.
Wiki articles
The compiled output. Markdown files with frontmatter
(title, tags, sources),
stored in the project's wiki/ directory. Articles
link to each other with [[wikilinks]], and link
back to the raw documents they were compiled from. Knowladex
maintains a backlink graph automatically.
The compile loop
The verb that ties raw docs to wiki articles. When you ask
your AI tool to "compile", it calls
compile, which
returns:
- Every raw doc that's new or changed since the last compile
- The current state of the wiki (existing articles, the index)
- Per-project compile instructions from
schema.md
Your AI tool reads everything, decides what articles to
create or update, and calls write_article
for each one. Knowladex stores the article, regenerates the
dashboard, and updates the backlink graph. The next compile
only sees what's changed since this run.
MCP — the bridge
Knowladex exposes everything — ingest, compile, write,
search, lint — as Model Context Protocol
tools. Any AI tool that speaks MCP (Claude Code, Cursor,
Claude Desktop, your own agent) can call them with a Bearer
token. There is no Knowladex SDK to install. The protocol
is the SDK.
05 Authentication & roles
Two ways to authenticate
Knowladex has two entry points: a web dashboard and an MCP
endpoint. Each takes a different credential.
- Web dashboard — sign in at
/c/<org>/login with your email and password. A SameSite=Lax session cookie keeps you signed in.
- MCP endpoint — POST to
/mcp with Authorization: Bearer kbm.<org>.<random>. Tokens are minted from your account page and bound to a single user.
Tokens are scoped to one org. A
kbm.acme.xxx token can only ever read or write
acme's data. The org slug is encoded in the
token, so cross-org leakage is structurally impossible.
Three roles
Every user (and every API token, since tokens inherit their
user's role) has one of three roles:
- viewer — read-only. Can list projects, read articles, search the wiki, view the activity log. Cannot create or modify anything.
- editor — read + write content. Can ingest documents, compile, write articles, update the schema. Cannot manage users or tokens.
- org_admin — full control of the org. Editor permissions plus manage users, mint tokens, change roles, delete users.
Role changes for web sessions take effect on the
next request — when an org_admin demotes a user
from editor to viewer, every
existing browser session for that user is destroyed
immediately, so the next page load reflects the new role.
No waiting period.
API tokens are different. An MCP API token
carries the role its owner had when it was minted. Demoting
a user does
not retroactively downgrade their
existing tokens — the token will keep working at its
original role until it's
explicitly revoked. The recommended flow when changing
someone's permissions is: change the role, then revoke any
tokens they hold and ask them to mint a new one. Token
revocation itself is immediate (the next MCP request after
revoke gets a 401 — there's no token cache to drain).
See the permissions matrix for
a tool-by-tool breakdown.
06 Connecting your AI tool
Knowladex exposes POST /mcp over HTTP using the
MCP Streamable HTTP transport. Any client that supports HTTP
MCP can connect directly. Clients that only speak stdio
(Claude Desktop, currently) connect through a small bridge.
Claude Code recommended
Claude Code has first-class HTTP MCP support. One terminal command:
claude mcp add knowladex https://app.knowladex.com/mcp \
--scope user \
--transport http \
--header "Authorization: Bearer kbm.acme.YOUR_TOKEN"
--scope user is the important
flag — without it Claude Code only registers Knowladex
for the folder you're standing in. With it, Knowladex is
available in every Claude Code session you ever
start. From then on, try: "claude, list all the projects
in knowladex".
Cursor
Add to ~/.cursor/mcp.json (create the file if it
doesn't exist). Cursor will pick it up on next restart.
{
"mcpServers": {
"knowladex": {
"url": "https://app.knowladex.com/mcp",
"headers": {
"Authorization": "Bearer kbm.acme.YOUR_TOKEN"
}
}
}
}
Claude Desktop
Claude Desktop currently only speaks stdio MCP, so we use the
mcp-remote
bridge to forward stdio over HTTP. Add to
claude_desktop_config.json (Settings → Developer
→ Edit Config) and restart Claude.
{
"mcpServers": {
"knowladex": {
"command": "npx",
"args": [
"mcp-remote",
"https://app.knowladex.com/mcp",
"--header",
"Authorization: Bearer kbm.acme.YOUR_TOKEN"
]
}
}
}
Custom / curl
The endpoint speaks standard JSON-RPC 2.0 over HTTP. Test it
with curl:
curl -X POST https://app.knowladex.com/mcp \
-H "Authorization: Bearer kbm.acme.YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
You'll get back a list of every tool you have permission to
call. From there, send tools/call requests with
the tool name and arguments.
The setup snippets on your /me page are pre-filled
with your real token and your real endpoint. The ones
here are templates with placeholders — go to
My account in the dashboard for one-click copy-paste.
07 Recipes
Compile a knowledge base from scratch
You have a folder of meeting notes, customer transcripts, and
half-finished specs. You want a wiki.
- Create a project: "create a project called
acme-discovery in Knowladex".
- Ingest the docs: drop the folder into your AI tool and say "ingest every file in this folder into
acme-discovery on knowladex, tagged with the year and the source type".
- Set the schema (optional): "update the schema for
acme-discovery to require articles for every customer mentioned, every product mentioned, and every blocker raised".
- Compile: "compile the
acme-discovery knowledge base". Your AI tool will call compile, get every raw doc plus your schema, and write articles.
- Lint: "lint
acme-discovery and fix any orphans". Your AI tool will call lint_wiki and patch any issues.
Incremental updates
You've added new docs to a wiki that's been running for a
while. You want to update only what changed.
- Ingest the new docs as usual.
- Ask your AI tool: "compile the
acme-discovery knowledge base — incremental, just what's changed".
- The compile tool defaults to incremental mode. It returns only the new and modified raw docs, plus the current wiki state, so your AI tool can decide whether each new doc gets its own article, gets merged into an existing one, or just adds backlinks.
For a full rebuild from raw, pass fullRecompile: true.
You'll rarely need this — incremental is the right default.
Search and retrieve
Search in Knowladex uses MiniSearch (fuzzy + prefix), scoped
to a project. The MCP search tool returns ranked
results with excerpts.
- "search the knowladex wiki for billing rewrite and read the top 3 articles"
- "find every article in
acme-discovery tagged 'blocker' and summarize them" (uses list_articles with a tag filter)
- "read the auth-system article and follow every backlink" (uses
read_article; backlinks come back in the response)
Lint and clean up
Wiki rot is real. Articles get orphaned, links break, content
goes stale. The lint_wiki
tool finds these issues; your AI tool can fix them.
- "lint
acme-discovery on knowladex and show me the report"
- "fix every broken wikilink in the report" — your AI tool calls
read_article, decides what the link should be, and calls write_article with the fix.
- "any article that hasn't been touched in 90 days, add a 'stale' tag"
Per-project schema
Each project has a schema.md file that's read on
every compile. It's free-form markdown — instructions written
for an LLM, not a parser. Use it to encode conventions:
# schema.md
## Article conventions
- Every customer mentioned in raw docs gets its own article.
- Every decision mentioned gets an article tagged 'decision'.
- Use [[wikilinks]] for every internal cross-reference.
- Cite source raw docs in the frontmatter sources field.
## Voice
- Past tense for events, present tense for current state.
- Lead with the conclusion, then the evidence.
Read it with get_schema;
update it with update_schema.
The next compile picks it up automatically.
15 Tool reference — maintenance
Run health checks on a project's wiki. Reports orphaned articles, broken wikilinks, missing frontmatter, stale articles, and suggested cross-references.
Parameters
Read the project's schema.md. The schema defines wiki conventions and per-project compile instructions.
Parameters
Replace the project's schema.md. Free-form markdown — instructions for an LLM, not a parser.
Parameters
Read the project's chronological activity log — every ingest, compile, write, and delete.
Parameters
17 Limits & quotas
Knowladex enforces three independent kinds of limits: per-tier
plan quotas (storage), per-tier MCP rate limits (requests/min),
and per-org PDF concurrency (in-flight ingests). All three
are enforced server-side and surface as structured errors
your AI tool can read and react to.
Plan tier quotas
| Limit |
Starter $49/mo |
Operator $99/mo |
Agency $149/mo |
Enterprise custom |
| Client workspaces | 1 | 5 | 20 | unlimited |
| Documents per workspace | 2,500 | 10,000 | 25,000 | unlimited |
| MCP rate limit (req/min) | 10 | 30 | 60 | 200+ |
| Concurrent PDF ingests | 1 | 3 | 5 | 10+ |
| Per-org user accounts | ✓ | ✓ | ✓ | ✓ |
| MCP API tokens per user | ✓ | ✓ | ✓ | ✓ |
| Public share URLs | ✓ | ✓ | ✓ | ✓ |
| Obsidian export | ✓ | ✓ | ✓ | ✓ |
| PDF ingest with figure extraction | ✓ | ✓ | ✓ | ✓ |
| Audit log | — | — | ✓ | ✓ |
| SSO (SAML / OIDC) | — | — | — | ✓ |
| Signed SLA | — | — | — | ✓ |
| White-label option | — | — | — | ✓ |
Hard limits (independent of plan)
- Markdown body: ~5 MB per
ingest_document / write_article call.
- PDF binary: ~22 MB per
ingest_pdf call (30 MB base64). For larger PDFs, split first.
- PDF parse timeout: 60 s wall-clock per file. A wedged parser releases its slot automatically — it can't deadlock the queue.
- Tags: up to 30 per document, 1–64 chars each.
- Bulk category assign / unassign: up to 1,000 article slugs per call.
- Search query: up to 200 chars on the public
/search route, 30 results max.
- Public export: capped at 10,000 articles per
/share/…/export.zip download.
Subscription drift
When a paid customer's Stripe subscription enters
past_due or unpaid status (failed
payment), the org is automatically rate-limited at the Solo
tier (10 req/min) until the bill clears. The plan
field on the org isn't changed — the customer is still
formally on Studio or Agency — but the rate limiter treats
them as Solo so abuse can't continue indefinitely on a failed
payment. Beta-pass orgs are exempt; they have no Stripe
subscription to drift on.
Rate-limit responses
When you hit a rate limit, the /mcp endpoint
returns HTTP 429 with a structured JSON body:
{
"error": "Rate limit exceeded — your operator plan allows 30 mcp/minute. You've used 30.",
"code": "rate_limited",
"plan": "operator",
"limit": 30,
"used": 30,
"resetInSeconds": 42,
"resetAt": "2026-04-09T22:35:12Z",
"upgradeUrl": "https://app.knowladex.com/c/<org>/me#billing"
}
The response also includes a Retry-After header,
so MCP clients that respect HTTP semantics will back off
automatically.
Per-org PDF queue full
When a PDF arrives but your org has already maxed out its
plan's concurrent-ingest slots, ingest_pdf returns
a clear error: "PDF queue full (3 max for operator plan).
Wait for in-flight PDFs to finish or upgrade your plan."
The slot is released as soon as any in-flight PDF finishes
(success OR failure), so a wedged parser doesn't permanently
consume your queue.
18 Permissions matrix
Quick reference: which role can call which tool. Roles are
additive — editor can do everything
viewer can, and org_admin can do
everything editor can. The two
global-admin tools (create_org,
delete_org) are not visible to org-scoped tokens
at all.
| Tool | viewer | editor | org_admin |
| Reader-tier reads |
| list_projects | ✓ | ✓ | ✓ |
| list_orgs | ✓ | ✓ | ✓ |
| list_raw_documents | ✓ | ✓ | ✓ |
| read_article | ✓ | ✓ | ✓ |
| list_articles | ✓ | ✓ | ✓ |
| get_index | ✓ | ✓ | ✓ |
| search | ✓ | ✓ | ✓ |
| get_compile_status | ✓ | ✓ | ✓ |
| lint_wiki | ✓ | ✓ | ✓ |
| get_schema | ✓ | ✓ | ✓ |
| get_log | ✓ | ✓ | ✓ |
| list_categories | ✓ | ✓ | ✓ |
| list_canvases | ✓ | ✓ | ✓ |
| read_canvas | ✓ | ✓ | ✓ |
| Editor-tier writes |
| ingest_document | — | ✓ | ✓ |
| ingest_pdf | — | ✓ | ✓ |
| write_article | — | ✓ | ✓ |
| compile | — | ✓ | ✓ |
| update_schema | — | ✓ | ✓ |
| create_category | — | ✓ | ✓ |
| update_category | — | ✓ | ✓ |
| delete_category | — | ✓ | ✓ |
| assign_to_category | — | ✓ | ✓ |
| unassign_from_category | — | ✓ | ✓ |
| write_canvas | — | ✓ | ✓ |
| delete_canvas | — | ✓ | ✓ |
| Org-admin only |
| create_project | — | — | ✓ |
| delete_project | — | — | ✓ |
| create_org_user | — | — | ✓ |
| list_org_users | — | — | ✓ |
| set_org_user_password | — | — | ✓ |
| set_org_user_role | — | — | ✓ |
| delete_org_user | — | — | ✓ |
| create_api_token | — | — | ✓ |
| list_api_tokens | — | — | ✓ |
| revoke_api_token | — | — | ✓ |
| create_client_token | — | — | ✓ |
| list_client_tokens | — | — | ✓ |
| revoke_client_token | — | — | ✓ |
| Global admin (invisible to org-scoped tokens) |
| create_org | — | — | — |
| delete_org | — | — | — |
19 FAQ
Does Knowladex make LLM calls on my behalf?
No. The compile work runs in your AI tool, on your Anthropic (or other) bill. Knowladex stores raw documents and wiki articles, exposes MCP tools, and serves the dashboard — but it never calls an LLM itself. That's the whole point of the architecture.
What happens if I lose my API token?
Mint a new one from My account → Create API token, then revoke the old one. Tokens are cheap and disposable. The dashboard never shows old tokens in plaintext after creation, so you can't recover one — only replace it.
Can two users in the same org work on the same project at the same time?
Yes. Knowladex uses a per-project mutex around writes, so concurrent write_article calls are serialized within a single project. Reads are unrestricted. Two editors writing different articles in the same project will not conflict.
Does updating schema.md rewrite my existing wiki?
No. The schema is read on every compile call and shapes how the LLM writes future articles — it's a prompt-time instruction, not a database migration. Your existing articles stay exactly as they were until something causes them to be re-written. To apply a new schema retroactively, run compile with fullRecompile: true and ask your AI tool to rewrite articles that don't match the new conventions.
Why doesn't changing a user's role drop their existing API tokens to the new role?
API tokens have their role baked in at mint time — that's what makes them auditable and predictable. Demoting an editor to viewer destroys their browser sessions immediately, but their existing kbm.… tokens keep working at editor permissions until you explicitly revoke them. The right flow is: change the role, then revoke their tokens via revoke_api_token and ask them to mint a new one. Token revocation is immediate — no cache to drain.
What's the rate limit on the MCP endpoint?
10 / 30 / 60 / 200+ requests per minute for Starter / Operator / Agency / Enterprise. Past-due subscriptions are temporarily downgraded to the Starter limit until the bill clears. See Limits & quotas for the full breakdown including PDF concurrency caps and the structured 429 response shape.
Are there bulk endpoints?
Most tools take a single document/article/canvas. The exceptions are assign_to_category and unassign_from_category, which both accept up to 1,000 article slugs per call. For everything else, your AI tool calls the tool in a loop — the per-project mutex serializes the writes safely. There is no transactional batch API.
How big can a single raw doc be?
The hard ceiling is ~5MB per document (5,000,000 characters). For most use cases that's effectively unlimited, but for very large transcripts or PDFs you may want to chunk on ingest.
Can I self-host?
Yes — the codebase is on GitHub and the repo includes a fly.toml for one-command Fly deploys. You'll need to bring your own object storage / disk and configure an admin token. Knowladex offers managed hosting with multi-tenant primitives, custom subdomains per client, and white-glove onboarding — see the pricing page.
Does Knowladex support SSO?
Not in the default build. SSO (SAML / OIDC) is available on the Agency plan. Talk to us if you need it.
Where's my data physically stored?
Hosted: a Fly.io persistent volume in the region your workspace was provisioned in (default: iad). Backups are taken nightly. Self-hosted: wherever you point the storage backend — local disk by default.
What if I want to leave?
Every raw doc, every wiki article, and every schema file is plain markdown on disk. Ask us for a tarball and you have your data, no lock-in. Knowladex's value is the compile loop, the multi-tenant primitives, and the MCP server — not hostage-holding.
How do I get help?
Sign in to the dashboard and open My account → Get help from a human. Or email hello@knowladex.com. Real people respond, typically within one business day.