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 | ephemeral
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.13.0.tar.gz (180.7 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.13.0-py3-none-any.whl (77.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cruxhive_mcp-0.13.0.tar.gz
  • Upload date:
  • Size: 180.7 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.13.0.tar.gz
Algorithm Hash digest
SHA256 996fafce111970ad92d7dd79849a1556d3155b3ed376b592a09c89a32183df16
MD5 63c40e8249605bfeae8a4e356538dfdd
BLAKE2b-256 f009b84d07471afd679c7ee7694a2dda81173b6cedfa650f3d2c535e03fd9511

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cruxhive_mcp-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 77.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.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 269293b90fbf41a6b37361466e68621042e86c663340b2ad2fc25e58a9a17467
MD5 720c23b29022a59d25fb12c897a7eb7d
BLAKE2b-256 f48f44361d8d26bc94520e7d853ba035213547b9e607db1322e454317e9f47d6

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