Arkon
Self-hosted enterprise AI knowledge hub that compiles internal docs into a scoped, reviewable wiki and serves it to Claude and other LLMs through an MCP server.
Repository Health
Technical Analysis
Arkon is a self-hosted knowledge management layer that bridges organizational data and AI assistants. Instead of employees copy-pasting documents into chatbots, Arkon runs as a centralized MCP (Model Context Protocol) server that compiles SOPs, policies, and internal docs into a structured, traceable wiki, then serves that wiki to Claude Desktop, Claude.ai, and other MCP clients through a single permission-scoped endpoint.
The core of the system is its MRP pipeline (Map, Reduce, Plan-review, Refine, Verify, Commit), which turns raw source documents into interlinked wiki pages instead of just chunking them into a vector index. Every ingestion produces a human-reviewable plan before anything is written, existing pages are LLM-merged rather than overwritten when new sources touch them, and drafts persist mid-pipeline so a crashed run can resume without redoing expensive LLM calls.
Access control is built around department and global scopes with fine-grained RBAC (Viewer, Contributor, Editor, Admin), enforced at the API, MCP, and search layers so employees only ever see knowledge from their own departments or the company-wide realm. The MCP server exposes scoped tools for searching and reading the wiki, drilling into source documents, and running the propose-review-approve draft workflow, all gated by OAuth 2.1 + PKCE so connecting Claude requires no manual token handling.
Arkon is built with FastAPI, PostgreSQL with pgvector, Redis-backed ARQ workers, and MinIO on the backend, with a Next.js and Tailwind frontend. It is provider-agnostic for AI, letting admins pick LLM, embedding, and vision models from a curated catalog spanning Anthropic, Google, and OpenAI, with online re-embedding when the active embedding model changes.
What You Get
- MRP compilation pipeline - a Map/Reduce/Plan-review/Refine/Verify/Commit flow that turns source documents into a coherent, interlinked wiki instead of a flat vector index, with human review of the ingestion plan before any page is written.
- MCP server for Claude and other LLM clients - OAuth 2.1 + PKCE protected endpoint exposing wiki search, page reads, source drill-down, and a propose/review/approve draft workflow as scoped tools.
- Department and global scope isolation - hard boundaries enforced at the API, MCP, and search layers so each employee only sees knowledge from their assigned departments or the company-wide realm.
- Fine-grained RBAC - Viewer, Contributor, Editor, and Admin roles with granular permissions like
doc:read:own_deptandwiki:edit:all, plus an audit log for privileged actions. - Wiki browser with knowledge graph - a three-panel UI (page tree, content, backlinks/outlinks) with full-text and pgvector semantic search, version history, and rollback on every page.
- Pluggable AI provider catalog - admins choose LLM, embedding, and vision models from Anthropic, Google, and OpenAI with cost and context-window metadata, including online re-embedding migrations with no search downtime.
- AI Skills distribution - versioned agent skill packages (
SKILL.md+ zip) that can be uploaded once and distributed with department-scoped visibility.
Common Use Cases
- Company-wide Claude knowledge base - IT or platform teams stand up Arkon so every employee’s Claude Desktop or Claude.ai session can search internal SOPs, policies, and docs through one governed MCP connector instead of ad hoc file uploads.
- Department-isolated knowledge - HR, Legal, and Engineering each get their own scoped wiki and document set, with RBAC ensuring an engineer can’t query HR’s policy documents through the MCP tools.
- Controlled document ingestion at scale - knowledge managers use the MRP pipeline’s plan-review step to catch bad compilations before they land, rather than trusting an automatic chunk-and-embed process.
- Auditable AI access to internal data - compliance-conscious organizations use the audit log and per-token scoping to track exactly which employees and AI sessions touched which knowledge, satisfying internal governance requirements.
- Self-hosted alternative to pasting docs into chat - teams that don’t want internal documents leaving their infrastructure run Arkon on-prem or in a private cloud, with no telemetry and API keys encrypted at rest.
Under The Hood
Architecture
Arkon is a FastAPI application (app/main.py) that mounts a FastMCP server at /mcp alongside a REST API under /api, sharing a single lifespan so both start and stop together. The MCP surface lives in app/mcp/ (server.py, tools.py, resources.py, middleware.py, permissions.py), with a custom OAuth discovery gate middleware that returns RFC 9728-compliant 401s to trigger Claude Desktop’s OAuth flow. Business logic is organized into a flat app/services/ layer (auth, permissions, RBAC policy engine, knowledge-base ingestion, embeddings, notifications, storage) that both the REST routers and MCP tools call into, with app/database/models.py and repository.py providing the SQLAlchemy async data layer. The heaviest domain logic is the MRP ingestion pipeline, which persists drafts mid-run so a crashed job resumes without re-running expensive LLM calls — a resumability concern threaded through the services and worker layers. A separate Next.js frontend under frontend/ consumes the REST API directly; if the department/RBAC scoping model changed, both the MCP tool layer and the REST routers would need coordinated updates since they share the same permission engine.
Tech Stack
The backend runs FastAPI with async SQLAlchemy 2.0 against PostgreSQL with the pgvector extension for embeddings, Redis-backed ARQ for background workers, and MinIO for object storage. The MCP server is built on FastMCP 2.x. AI integration is provider-agnostic by design, with anthropic, openai, and google-genai SDKs all present behind a common provider interface in app/ai/providers/, plus tiktoken for token counting and content-core/pymupdf/python-docx/mammoth for document extraction. Auth uses pyjwt and bcrypt, sensitive fields are encrypted with cryptography (Fernet), and the whole stack ships as seven Docker containers via docker-compose.yml. The frontend is Next.js with Tailwind CSS.
Code Quality
The repository has a real but limited pytest suite (tests/) covering token counting, MRP multipass/section-selection logic, embedding catalog behavior, and MCP tool middleware/permissions/registry completeness — dependencies declare pytest, pytest-asyncio, and ruff as dev tools, and ruff is configured in pyproject.toml for linting. There is no CI workflow configuration in the repository (no .github/workflows), so tests and linting appear to run locally/manually rather than being enforced automatically. Source files are consistently docstring-annotated with module-level explanations of intent (e.g. auth_service.py, app/mcp/server.py), use type hints on function signatures, and favor explicit try/except blocks with logger.warning/logger.success calls over silent failures, particularly around optional subsystems like MinIO and admin seeding at startup.
What Makes It Unique Most self-hosted “knowledge base for AI” tools stop at chunk-and-embed retrieval; Arkon’s MRP pipeline instead compiles ingested documents into an editable, versioned wiki with a human plan-review gate before anything is written and LLM-assisted page merging so repeated ingestion doesn’t clobber prior edits. Combining that with department-scoped RBAC enforced identically at the API, MCP, and search layers, plus OAuth 2.1 + PKCE for the MCP connection itself (rather than a static bearer token), is a more enterprise-access-control-oriented take on the increasingly common “local knowledge base MCP server” pattern.
Self-Hosting
Licensing Model Arkon is licensed under the PolyForm Internal Use License 1.0.0, a source-available license, not an OSI-approved open-source license. It permits use, modification, and internal business operation of the software, but explicitly prohibits distributing the software or offering it as a service to third parties.
Self-Hosting Restrictions None found for internal use — the license permits full internal business use of every feature in a self-hosted deployment. The restriction is on redistribution and offering Arkon itself as a hosted service to others, not on which features are unlocked internally.
Enterprise Features No separate paid tier, license key, or feature gate was found in the source or README — all functionality (MRP pipeline, RBAC, MCP server, AI Skills distribution, audit log) ships in the single self-hosted deployment. The README notes contacting the maintainers directly for “enterprise support or custom integrations,” which reads as a services offering rather than a gated feature tier.
License Key Required No — no license key or activation step was found in the codebase or documentation.
Related Apps
OpenClaw
AI Assistants · AI Agents
An open-source AI assistant that runs on your own hardware and meets you in Discord, Slack, WhatsApp, iMessage, Telegram, and 20+ other channels, with native apps for every major platform.
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
Open WebUI
AI Assistants · AI Agents
The extensible, privacy-first AI platform that runs Ollama, OpenAI, and any LLM backend behind a polished, feature-packed web interface.