From gnosis
Verifies gnosis-mcp server connectivity, schema integrity, corpus stats, and embeddings health using MCP tools and CLI checks. Use when MCP calls fail, return empty, or unexpected data.
npx claudepluginhub nicholasglazer/gnosis-mcpThis skill uses the workspace's default tool permissions.
Diagnostic for "something is wrong with gnosis-mcp". Produces a
Guides first-time Gnosis MCP setup: pip installs Python package with extras, initializes SQLite/PostgreSQL database, ingests docs folder for hybrid search. Use to enable agent doc querying.
Guides MCP-assisted debugging workflow for external services, database state, and API behavior using Gateway tools for logs, queries, and verification. Complements systematic-debugging.
Handles Claude Code MCP integration: installs/manages servers (HTTP/SSE/stdio), scopes, enterprise configs, OAuth auth, resources/@mentions, prompts, limits, security; delegates to docs-management.
Share bugs, ideas, or general feedback.
Diagnostic for "something is wrong with gnosis-mcp". Produces a compact report the user can screenshot and paste in an issue.
/gnosis:status # Full check — connectivity + schema + stats + common failure modes
/gnosis:status quick # Just connectivity
/gnosis:status stats # Document / chunk / embedding counts
/gnosis:status diag # Extended diagnostics (used when something is wrong)
Preferred path: the MCP itself. If mcp__gnosis__* tools respond, the
server is up and MCP is wired correctly.
mcp__gnosis__get_graph_stats()
If that returns data, skip to Step 2.
Two common causes:
.mcp.json / .claude/mcp.json
config, confirm gnosis-mcp is on PATH.Direct CLI check (works independent of MCP wiring):
gnosis-mcp check
Expected output:
Backend: sqlite (SQLite 3.46.0)
Database: /home/<you>/.local/share/gnosis-mcp/docs.db
chunks_table_exists: true (1742 rows)
fts_table_exists: true
sqlite_vec: true
vec_table_exists: true (1742 rows)
links_table_exists: true (812 rows)
embeddings_coverage: 100.0%
If check itself returns errors, stop here — the server can't talk to
its own database. Likely causes:
gnosis-mcp init-dbgnosis-mcp init-db (idempotent, adds any new columns)sqlite_vec: false) → pip install 'gnosis-mcp[embeddings]'mcp__gnosis__get_graph_stats()
Report in a compact block:
Docs: 412
Chunks: 1,247 (avg 3.0 per doc at current chunk_size)
Orphans: 18 (docs with no graph edges)
Top hubs:
README.md 37 links
docs/tools.md 24 links
docs/config.md 19 links
Edge types:
related 612
content_link 410
git_co_change 225
gnosis-mcp ingest ./docsgnosis-mcp init-db
followed by a re-ingestGNOSIS_MCP_CHUNK_SIZE) or your docs
are hugerelates_to: frontmatter or [markdown](links.md)--since 3m or removing ingest-gitgnosis-mcp stats
Look for:
Chunks with NULL embeddings: 0 ✓
If non-zero, embeddings are partial. Fix:
gnosis-mcp embed # backfill the missing ones
If that command errors about a missing provider, the user doesn't have
the [embeddings] extra installed:
pip install 'gnosis-mcp[embeddings]'
diag mode or user reports slow search)python -c "from gnosis_mcp.rerank import get_reranker; get_reranker().score('test', ['test passage'])"
Failure modes:
ImportError → [reranking] extra not installedHTTPError 401/404 on model download → model URL stale. If the
default model returns 401, override:
GNOSIS_MCP_RERANK_MODEL=cross-encoder/ms-marco-MiniLM-L6-v2~/.local/share/gnosis-mcp/rerankers/)Reminder for users enabling reranking: our measurements show
MS-MARCO-class rerankers hurt dev-doc retrieval by ~27 nDCG@10.
Disable unless /gnosis:tune full confirms it helps on the user's
specific corpus.
If the server runs as streamable-HTTP (not stdio):
curl -fsS http://127.0.0.1:8000/health | jq .
Expected:
{
"status": "ok",
"version": "0.11.0",
"docs": 412,
"chunks": 1247,
"backend": "sqlite"
}
Common failures:
GNOSIS_MCP_API_KEY is set but the probe didn't send a Bearer
token. Note: /health is always public; 401 there suggests an
unusual reverse-proxy configjournalctl -u gnosis-mcp -f or
docker logs gnosis-mcp)If users complain about stale "most popular" results from
get_context:
-- in the SQLite DB:
SELECT count(*) FROM search_access_log WHERE timestamp > datetime('now', '-30 days');
GNOSIS_MCP_ACCESS_LOG=false → logging disabled by
config (intentional for privacy-sensitive deployments)search_docs + get_doc haven't
been called yet; expected on a fresh installPurge old rows with gnosis-mcp cleanup --days 30 (weekly cron).
Just steps 1 and 2. Skip embeddings/reranker/transport checks.
Connectivity: ✓
Docs: 412 / Chunks: 1,247
Always include these fields when giving the user a status summary:
## gnosis-mcp status
Server: running (stdio | streamable-http) · v0.11.0
Backend: sqlite / postgres
DB path: ~/.local/share/gnosis-mcp/docs.db
Schema: current ✓
Docs: 412
Chunks: 1,247 (avg 3.0/doc)
Embeddings: 1,247 / 1,247 (100 %)
Chunk size: 2000 chars (v0.11 default)
Writable: false (set GNOSIS_MCP_WRITABLE=true to enable upserts)
Reranker: disabled (recommended on dev docs)
Access log: enabled, 1,289 entries in last 30 days
Known issues: none OR <list each found>
Recommended: <one-line next action>
/gnosis:setup — first-time setup wizard/gnosis:ingest — populate / re-populate / prune the corpus/gnosis:tune — find the chunk size / retrieval config optimum