Skip to main content

CruxHive MCP server — team AI knowledge governance layer

Project description

cruxhive-mcp

The Python MCP server for CruxHive — a team AI knowledge governance layer.

Drop it into any project and any MCP-compatible AI tool (Claude Code, OpenCode, Cursor, Windsurf, Gemini CLI) can search, propose, and review project knowledge with a human-in-the-loop approval gate.

Why

LLM coding tools all have their own context format (CLAUDE.md, AGENT.md, .cursor/rules/, .windsurfRules). When you switch tools, you lose all your accumulated context. When you let the AI write to that context, you lose control of what's true.

CruxHive solves both:

  • Tool-agnostic — one canonical .llm/CONTEXT.md, symlinked into every tool's expected location. Switch LLMs, keep your knowledge.
  • Approval-gated — AI proposes new knowledge, humans approve. Search and indexing happens locally in SQLite.
  • Three tiers — personal (~/.cruxhive/personal/), project (.llm/), org (synced).

Install

The recommended path is via the npm CLI which installs this server automatically:

npm install -g @cruxhive/cli
cruxhive init

To install just the Python server directly:

uv tool install cruxhive-mcp                # core
uv tool install "cruxhive-mcp[ui]"          # + web dashboard
uv tool install "cruxhive-mcp[full]"        # + hybrid vector search + NLI

What it exposes

Eleven MCP tools, all operating on local SQLite. Zero network calls.

Tool What it does
context_index Scan .llm/ + ~/.cruxhive/personal/ → SQLite FTS5 (+ optional vec)
context_search Hybrid BM25 + vector search with RRF fusion (k=60)
context_propose Write a pending knowledge entry to .llm/pending/
context_review List entries awaiting human approval
context_approve Approve a pending entry (source → human)
context_reject Mark entry invalid (sets invalid_at, removes from index)
context_check_faithfulness NLI contradiction check against approved constraints
context_radar Git commits → classify by plan area → coverage report
context_next_slice Read active plan → extract first unblocked work item
context_write_plan Write .llm/plans/{name}.md + register in active.md
context_sync_memory Sync workspace-level org context across projects

CLI binaries

Each tool also has a standalone CLI entry point, used internally by @cruxhive/cli:

cruxhive-mcp        # MCP stdio server
cruxhive-index      # build/refresh SQLite index
cruxhive-propose    # write a pending entry (content on stdin)
cruxhive-review     # JSON list of pending entries
cruxhive-approve    # approve an entry
cruxhive-reject     # reject an entry
cruxhive-stats      # usage observability dashboard

Manual .mcp.json wiring

If you'd rather skip cruxhive init:

{
  "mcpServers": {
    "cruxhive": {
      "command": "cruxhive-mcp",
      "type": "stdio"
    }
  }
}

Observability

Every MCP tool call is logged locally to .llm/cruxhive.db (events table) with: timestamp, calling AI tool, query, result count, latency. Inspect with:

cruxhive stats              # last 7 days summary + by-AI-tool breakdown + top gaps
cruxhive stats --days 30 --gaps
cruxhive stats --export csv > usage.csv

Disable logging entirely with CRUXHIVE_ANALYTICS=0.

Knowledge entry format

Every entry is a markdown file under .llm/ with YAML frontmatter:

---
type: constraint        # fact | decision | plan | pattern | constraint | research | outcome
scope: project          # personal | project | org
topic: auth
valid_at: 2026-05-29
invalid_at: ~
confidence: high        # low | medium | high
source: human           # human | ai-proposed | mozbridge-feed
approved_by: jane       # or ~ for pending
---

The body, in markdown. Explain what's true, when, and why.

cruxhive propose builds this for you interactively.

Architecture

  • Storage: SQLite FTS5 (BM25) + optional sqlite-vec + Nomic Embed v1.5
  • Fusion: Reciprocal Rank Fusion, k=60 (research-validated default)
  • Approval: AI proposes → human approves; constraint writes always require approval
  • Faithfulness: optional cross-encoder/nli-deberta-v3-small (~82MB) for post-session contradiction checks

Links

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cruxhive_mcp-0.10.0.tar.gz (164.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cruxhive_mcp-0.10.0-py3-none-any.whl (69.4 kB view details)

Uploaded Python 3

File details

Details for the file cruxhive_mcp-0.10.0.tar.gz.

File metadata

  • Download URL: cruxhive_mcp-0.10.0.tar.gz
  • Upload date:
  • Size: 164.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cruxhive_mcp-0.10.0.tar.gz
Algorithm Hash digest
SHA256 9ff7cf4dadcbafa12eeb658898f679e7bbd6f8f48f0b2e026441ee962ff4dedb
MD5 69310b2c8d2f32e07639f7d42c2aa321
BLAKE2b-256 95f4cfbb44005ec31079554c5e9d769bb509d22ca428450d08e9fe3781395b04

See more details on using hashes here.

File details

Details for the file cruxhive_mcp-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: cruxhive_mcp-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 69.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cruxhive_mcp-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cd9e50a9e8e7cf5aa29fea3daed3ba364039876c1beeb55dcf888f09cbac987
MD5 01b34dea05b4d59ac4e6e36b73f4da7f
BLAKE2b-256 6a02196bff1f0b9f093e96f6195735a452faf229e17ea12f21b590d455dc93f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page