
A comprehensive development toolkit that actually tries to teach AI agents about your codebase structure. It bundles 27 tools across the full cycle: product specs, UI design syncing, Git commits, code reviews, test generation, and bug workflows that default to Toyota's TBP 8-step root cause analysis before patching. The code graph bridge talks to GitNexus for impact analysis during feature starts and bugfixes. Memory tools run on Qdrant with Ollama or OpenAI-compatible embeddings to store reusable patterns across repos. It also reads local Cursor conversation history directly from the SQLite database. You'd reach for this if you want orchestrated workflows instead of single-shot commands, or if you're tired of AI forgetting project context between sessions.
Know the Context, Feed the Moment.
Introspection · Context Hydration · Delegated Orchestration
Talk is cheap, show me the Context.
mcp-probe-kit is a protocol-level toolkit designed for developers who want AI to understand project intent, choose a precise workflow, and retain validated experience without flooding the model with internal actions.
Languages: English | 简体中文 | 日本語 | 한국어 | Español | Français | Deutsch | Português (BR)
🚀 AI-Powered Complete Development Toolkit - Covering the Entire Development Lifecycle
A powerful MCP (Model Context Protocol) server with 24 model-visible tools by default, 30 when Memory is configured, and a 34-tool compatibility surface available through MCP_TOOLSET=full. It covers the complete workflow from product analysis to final release and supports structured output.
🎉 v4 stable release: native MCP Apps, resumable plans, evidence convergence, managed GitNexus Sidecar, parent-child specs, and a version-locked CLI fallback.
Supports All MCP Clients: Cursor, Claude Desktop, Cline, Continue, and more
Protocol Support: Legacy MCP (2025-era) + Modern MCP 2026-07-28 · SDK: split TypeScript SDK v2 packages
Runtime: Node.js 20 or newer. MCP_PROTOCOL_MODE=auto is the default; use legacy or modern only for compatibility diagnosis.
v4 turns delegated Agent work into an observable and verifiable delivery loop. The animations below are rendered from the same MCP App source shipped in the npm package—not separate marketing mockups.
Feature Workbench — parent-child specs, active step, outputs, evidence, and cross-session recovery.
Memory Center — semantic search, full-content inspection, lifecycle state, evidence, stale marking, and confirmed deletion.
Convergence Gate — blocks closure when steps or requirements/spec/implementation/test/review evidence are incomplete.
plan_heartbeat persists real progress; resume_plan restores the next executable step.converge gates delivery and long-term Memory writes.probe wrappers reach the same Tool Registry when a host drops the MCP tool lease.Open the five live, read-only MCP App demos
v4 stable:
mcp-probe-kit@4.0.0is the current stable release and npmlatestchannel.
👉 https://mcp-probe-kit.bytezonex.com
50008 / 50012, MCP envThe default compact surface keeps every independently useful workflow while removing competing internal and maintenance entries from the model context.
workflowplan_heartbeat, resume_plan, convergestart_feature, start_bugfix, start_onboard, start_ui, start_product, start_ralphinit_project, init_project_context, check_spec, estimatearchitecturecode_insight, gentest, code_review, refactor, gencommit, git_work_reportui_design_system, ui_searchinterviewThat is 24 model-visible tools by default. When the full Memory stack is configured, six Memory tools are added dynamically, bringing the model-visible surface to 30:
search_memory, read_memory_asset, memorize_asset, update_memory_asset, delete_memory_asset, scan_and_extract_patterns
For compatibility and diagnostics, MCP_TOOLSET=full restores all 34 model tools. The compact surface deliberately omits add_feature, fix_bug, sync_ui_data, and ask_user: their implementations remain available through orchestration, maintenance scripts, or full compatibility mode.
workflow is a fallback tool-selection guide, not a natural-language intent classifier. The Agent normally chooses the appropriate MCP tool directly from the current conversation, Skill, and tool descriptions. scenario=auto returns guidance only (firstTool=null); an explicit scenario returns deterministic guidance for a scenario the Agent has already selected.
executionStatePolicy and instructs the Agent to create a local checkpoint on the first step.plan_heartbeat persists completed/skipped steps, unresolved items, evidence, and the last verified revision under .mcp-probe-kit/plans/.resume_plan recalculates ready and blocked steps from stored dependencies after interruption, restart, or Agent handoff.converge refuses closure while steps, unresolved items, or requirements/spec/implementation/test/review evidence are incomplete. Formal long-term memory writes are allowed only after convergence passes.All hard quality rules live in one module (src/lib/quality-constraints.ts) and are injected into code_review, the add_feature task templates, and the UI tools. Change once, apply everywhere — inspired by taste-skill and impeccable.
code_review flags placeholder/elision patterns (// ..., // TODO, // rest of code, bare ...) as CRITICAL — "a partial output is a broken output".add_feature tasks now carry a Scope-lock deliverable count, a mandatory evidence block (read code before writing), a per-file line budget, and a binary zero-tolerance rule for placeholders. check_spec validates these (missing Scope-lock = error, thin task without evidence = warning).code_insight bridges GitNexus by default for query/context/impact analysisinit_project_context bootstraps baseline graph docs under docs/graph-insights/; if docs/project-context.md already exists, it preserves the old context docs and only backfills graph docs plus the index entrystart_feature refreshes the GitNexus index and runs task-level query/context/impact narrowing before spec generation to reduce over-scopingstart_bugfix refreshes the GitNexus index and runs task-level graph analysis before TBP RCA to constrain failure boundary and blast radiusproject-context.md but no graph docs are bootstrapped automatically through the init_project_context step.gitnexus index; docs/graph-insights/latest.md|json are readable snapshots for humans and AI agentsprobe://status, probe://project/bootstrap). Graph runtime snapshots (probe://graph/latest, etc.) and probe://project/skill|agents|context|graph remain readable via resources/read when tools expose URIs.mcp-probe-kit/graph-snapshots (customizable via MCP_GRAPH_SNAPSHOT_DIR)_meta.graph with snapshot URI and local JSON/Markdown file pathsstart_bugfix runs graph narrowing, then delegated SRC-8 plan (metadata.plan.steps src8-1~8) before repair and testsfix_bug returns delegated plan (src8-1~8), src8Checklist, rootCauseWorksheet (Step 4 core), and hard gates (no code change until root-cause worksheet is closed)agent_behavior), contributing factors, memorize_asset for cross-repo learningInherited from Toyota TBP: gap thinking, Plan-before-Do, no skipping to root-cause analysis, fact-based investigation, countermeasures over symptoms, evaluate then standardize.
Our elevation: genchi-genbutsu → read code/logs/repro; Step 4 worksheet; guidance-only MCP that forces discipline while the Agent executes.
ollamaopenai-compatibleMemory tools:
search_memory - Semantic search across the shared memory pool (optionally prefer type / tags); text output includes id, score, summary, description, and a --- content --- body (default up to 1500 chars via MEMORY_SEARCH_CONTENT_MAX_CHARS)memorize_asset - Persist an already validated MemoryCandidate into vector memory; for delegated workflows, call it only after converge passesread_memory_asset - Read full asset content by asset_id (text output includes the full content body)update_memory_asset - Update an existing asset by asset_id (preserves ID; content changes re-embed)delete_memory_asset - Delete an asset by asset_id from the shared poolscan_and_extract_patterns - Extract reusable patterns from code/file/directory before deciding whether to persistCross-repo memory pools: do not rely on source_project / source_path for shared retrieval; put file paths in content instead. Search injection hides foreign sourcePath unless MEMORY_REPO_ID matches or MEMORY_SEARCH_SHOW_SOURCE=true.
Memory backend and embedding configuration:
Qdrant (port 50008) + Infinity / nomic-embed (port 50012) — lighter than Ollama; see Local Memory Stack guide (中文: memory-local-setup.zh-CN.md)ollamaopenai-compatible (Infinity, OpenAI, etc.)MEMORY_QDRANT_URLMEMORY_EMBEDDING_URLMEMORY_EMBEDDING_MODELMEMORY_QDRANT_API_KEYMEMORY_QDRANT_COLLECTION (default: mcp_probe_memory)MEMORY_EMBEDDING_API_KEYMEMORY_EMBEDDING_PROVIDER (ollama by default)MEMORY_SEARCH_LIMIT (default: 3)MEMORY_SUMMARY_MAX_CHARS (default: 280)MEMORY_SEARCH_MIN_SCORE (default: 0 = disabled; try 0.72 for noisy pools)MEMORY_SEARCH_SHOW_SOURCE (default: false)MEMORY_REPO_ID (optional; show sourcePath only when sourceProject matches)MEMORY_INJECTION_CONTENT_MAX_CHARS (default: 1500; max content per hit injected into start_* guides)MEMORY_QDRANT_URLMEMORY_QDRANT_URL, MEMORY_EMBEDDING_URL, and MEMORY_EMBEDDING_MODEL are all configuredRecommended local memory setup (Qdrant + Nomic Embed / Infinity):
Full Docker Compose, ports, and troubleshooting: docs/memory-local-setup.md
{
"mcpServers": {
"mcp-probe-kit": {
"command": "npx",
"args": ["-y", "mcp-probe-kit@4.0.0"],
"env": {
"MEMORY_QDRANT_URL": "http://127.0.0.1:50008",
"MEMORY_QDRANT_API_KEY": "your-qdrant-api-key",
"MEMORY_QDRANT_COLLECTION": "mcp_probe_memory",
"MEMORY_EMBEDDING_PROVIDER": "openai-compatible",
"MEMORY_EMBEDDING_URL": "http://127.0.0.1:50012/embeddings",
"MEMORY_EMBEDDING_MODEL": "nomic-ai/nomic-embed-text-v1.5",
"MEMORY_EMBEDDING_API_KEY": "your-infinity-api-key",
"MEMORY_SEARCH_LIMIT": "3",
"MEMORY_SUMMARY_MAX_CHARS": "280"
}
}
}
}
Alternative: Qdrant + Ollama (if you already run Ollama):
docker run -d --name mcp-qdrant -p 6333:6333 qdrant/qdrant
ollama pull nomic-embed-text
"MEMORY_QDRANT_URL": "http://127.0.0.1:6333",
"MEMORY_EMBEDDING_PROVIDER": "ollama",
"MEMORY_EMBEDDING_URL": "http://127.0.0.1:11434/api/embeddings",
"MEMORY_EMBEDDING_MODEL": "nomic-embed-text"
OpenAI-compatible embedding (hosted API):
{
"mcpServers": {
"mcp-probe-kit": {
"command": "npx",
"args": ["-y", "mcp-probe-kit@4.0.0"],
"env": {
"MEMORY_QDRANT_URL": "http://127.0.0.1:6333",
"MEMORY_QDRANT_COLLECTION": "mcp_probe_memory",
"MEMORY_EMBEDDING_PROVIDER": "openai-compatible",
"MEMORY_EMBEDDING_URL": "https://your-embedding-endpoint/v1/embeddings",
"MEMORY_EMBEDDING_API_KEY": "your-api-key",
"MEMORY_EMBEDDING_MODEL": "text-embedding-3-small"
}
}
}
}
Core and orchestration tools support structured output, returning machine-readable JSON data, improving AI parsing accuracy, supporting tool chaining and state tracking.
tasks/get, tasks/result, tasks/list, tasks/cancelcapabilities.tasks.requests.tools.call so clients can create tasks for tools/callnotifications/progress when client provides _meta.progressTokenAbortSignal and preserves a clear cancelled statestart_*) and sync_ui_data support cooperative cancellation/progress callbacksMCP_TASK_STORE=json to use .mcp-probe-kit/tasks.json, or set MCP_TASK_STORE_PATH to choose another JSON path. Interrupted tasks that cannot reconstruct their executor are explicitly marked failed on restart instead of being reported as still running.v4.0.0 uses the official @modelcontextprotocol/ext-apps SDK and the stable io.modelcontextprotocol/ui extension.
MCP_ENABLE_UI_APPS=0.ui:// resources are exposed only after the client advertises support for text/html;profile=mcp-app.resume_plan while visible, and progress advances only after the Agent records real step state through plan_heartbeat.list_memory_assets is an App-only action with _meta.ui.visibility=["app"]. It may appear in the raw tools/list response of an Apps-capable host, but compliant hosts must not offer it to the model. The model-visible count remains 24 by default or 30 with Memory.structuredContent responses; no GUI capability is required for existing workflows.MCP_ENABLE_EXTENSIONS_CAPABILITY=1.# Deterministic server-side audit across compact, Memory, full, App-only, and Legacy surfaces
npm run audit:tools
# Optional real-host audit: Claude Code calls and evaluates all 34 model tools
npm run audit:tools:agent
The direct audit verifies non-empty readable text, structuredContent, and that every referenced MCP tool exists on the active surface. The real-Agent audit additionally checks whether an Agent understands each tool, can follow the returned guidance, sees no text/structured contradiction, and can execute the stated next step. It is intentionally separate from release:verify because it requires a configured Claude Code account and incurs model usage.
All start_* orchestration tools return an execution plan in structuredContent.metadata.plan.
AI needs to call tools step by step and persist files, rather than the tool executing internally.
Plan Schema (Core Fields):
{
"mode": "delegated",
"steps": [
{
"id": "spec",
"tool": "add_feature",
"args": { "feature_name": "user-auth", "description": "User authentication feature" },
"outputs": ["docs/specs/user-auth/requirements.md"]
}
]
}
Field Description:
mode: Fixed as delegatedsteps: Array of execution stepstool: Tool name (e.g. add_feature)action: Manual action description when no tool (e.g. update_project_context)args: Tool parametersoutputs: Expected artifactswhen/dependsOn/note: Optional conditions and notesBoth orchestration and atomic tools return structuredContent, common fields:
summary: One-line summarystatus: Status (pending/success/failed/partial)steps: Execution steps (orchestration tools)artifacts: Artifact list (path + purpose)metadata.plan: Delegated execution plan (only start_*)specArtifacts: Specification artifacts (start_feature)estimate: Estimation results (start_feature / estimate)When requirements are unclear, use requirements_mode=loop in start_feature / start_bugfix / start_ui.
This mode performs 1-2 rounds of structured clarification before entering spec/fix/UI execution.
Example:
{
"feature_name": "user-auth",
"description": "User authentication feature",
"requirements_mode": "loop",
"loop_max_rounds": 2,
"loop_question_budget": 5
}
add_feature supports template profiles, default auto auto-selects: prefers guided when requirements are incomplete (includes detailed filling rules and checklists), selects strict when requirements are complete (more compact structure, suitable for high-capability models or archival scenarios).
Example:
{
"description": "Add user authentication feature",
"template_profile": "auto"
}
Applicable Tools:
start_feature passes template_profile to add_featurestart_bugfix / start_ui also support template_profile for controlling guidance strength (auto/guided/strict)Template Profile Strategy:
guided: Less/incomplete requirements info, regular model prioritystrict: Requirements structured, prefer more compact guidanceauto: Default recommendation, auto-selects guided/strictFor version-level or epic work, start_feature defaults to spec_layout: "auto" and selects parent-child when the requirement spans multiple modules, stages, or capability domains. If child boundaries are not known yet, the delegated plan first returns a decompose-spec step. You can still explicitly pass flat or parent-child; add_feature remains an atomic tool and defaults to flat unless the layout and subspecs are already defined. The MCP server returns templates and pendingFiles; the calling Agent creates the parent spec, spec-manifest.json, and child specs after review. check_spec then validates the complete hierarchy recursively.
start_feature uses query-only GitNexus narrowing with an 8-second degradation budget, so graph cold starts do not block specification planning. Automatic index refresh is disabled by default; set MCP_GITNEXUS_AUTO_REFRESH=1 when the MCP process should refresh the index before graph queries.
{
"feature_name": "commerce-v2",
"description": "Upgrade the commerce domain while preserving v1 compatibility",
"spec_layout": "parent-child",
"subspecs": [
{ "id": "01-foundation", "title": "Data foundation", "fr": ["FR-1"] },
{ "id": "06-inventory-ledger", "title": "Inventory ledger", "fr": ["FR-2"], "dependsOn": ["01-foundation"] }
]
}
6 intelligent orchestration tools that automatically combine multiple basic tools for one-click complex development workflows:
start_feature - New feature development (Requirements → Design → Estimation)start_bugfix - Bug fixing (SRC-8 RCA → Fix → Testing)start_onboard - Project onboarding (Generate project context docs)start_ui - UI development (Design system → Components → Code)start_product - Product design (PRD → Prototype → Design system → HTML)start_ralph - Ralph Loop (Iterative development until goal completion)start_product is a complete product design orchestration tool, from requirements to interactive prototype:
Workflow:
Structured Output Additions:
start_product.structuredContent.artifacts: Artifact list (PRD, prototypes, design system, etc.)interview.structuredContent.mode: usage / questions / record4 UI/UX tools with start_ui as the unified entry point:
start_ui - One-click UI development (supports intelligent mode) (orchestration tool)ui_design_system - Intelligent design system generationui_search - UI/UX data search (BM25 algorithm)sync_ui_data - Sync latest UI/UX data locallyNote: start_ui automatically calls ui_design_system and ui_search, you don't need to call them separately.
Inspiration:
Skill Bridge for UI/PRD workflows:
start_ui and start_product now include a Skill Bridge section in guidance and structuredContent.metadata.skills.ui-ux-pro-max → interaction-design → frontend-design.Why use sync_ui_data?
Our start_ui tool relies on a rich UI/UX database (colors, icons, charts, components, design patterns, etc.) to generate high-quality design systems and code. This data comes from npm package uipro-cli, including:
Data Sync Strategy:
~/.mcp-probe-kit/ui-ux-data/ without changing current session outputsync_ui_data to force refresh cache immediately (still applies next start by default)This ensures start_ui can generate professional-grade UI code even offline.
2 interview tools to clarify requirements before development:
interview - Structured requirements interviewask_user - AI proactive questioningUse orchestration tools (start_*) when:
Use individual tools when:
| Scenario | Recommended Tool | Reason |
|---|---|---|
| Develop new feature (complete flow) | start_feature | Auto-complete: spec→estimation |
| Only need feature spec docs | add_feature | More lightweight, only generates docs |
| Fix bug (complete flow) | start_bugfix | Delegated SRC-8 plan (src8-1~8) → fix → test → memorize |
| Only need bug analysis | fix_bug | Delegated SRC-8 plan + root-cause worksheet (methodology: docs) |
| Generate design system | ui_design_system | Directly generate design specs |
| Develop UI components | start_ui | Complete flow: design→components→code |
| Product design (requirements to prototype) | start_product | One-click: PRD→prototype→HTML |
| One-sentence requirement analysis | init_project | Generate complete project spec docs |
| Project onboarding docs | init_project_context | Generate tech stack/architecture/conventions |
No installation needed, use the latest version directly.
Config file location:
%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json~/.config/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonConfig content:
{
"mcpServers": {
"mcp-probe-kit": {
"command": "npx",
"args": ["-y", "mcp-probe-kit@4.0.0"]
}
}
}
Skill & AGENTS auto-bootstrap (v3.6.3+): Every MCP tool call writes
.agents/skills/mcp-probe-kit/SKILL.mdand merges themcp-probe:contextblock intoAGENTS.md. Workspace root is auto-detected (Cursor injectsWORKSPACE_FOLDER_PATHS; OpenCode projectopencode.jsonsets cwd). No per-clientMCP_PROJECT_ROOTunless global MCP cannot resolve the workspace — then setMCP_PROJECT_ROOTor passproject_rootin tool args.
Multi-harness adapters (v3.6.8+):
AGENTS.mdand the canonical Skill stay the single rule source. If the project already has.trae/,.lingma/,.comate/,.codebuddy/, or.claude/, matching thin adapters (skill mirror or rules pointer) are written automatically — no env vars.
Version-locked CLI fallback (v4.0.0+): Bootstrap also writes
.mcp-probe-kit/bin/probe.cmd|probe.ps1|probeand.mcp-probe-kit/runtime.json. If a modified host or third-party Agent provider connects the MCP server but omits its tools from the Agent session, the generated Skill and Cursor rule instruct the Agent to invoke the same Tool Registry through the project wrapper. The wrapper pins the exact MCP package version, does not install globally, and does not modify the project'spackage.json.Memory for CLI fallback:
install-agentalso creates.mcp-probe-kit/local.env(andlocal.env.example). The CLI fallback path (probe.* exec ...) does not inherit IDEmcp.jsonenv; editlocal.envwith the sameMEMORY_*keys.
Direct CLI examples:
# JSON from stdin is the most portable option
printf '%s' '{"intent":"build a task board","scenario":"feature","project_root":"."}' \
| ./.mcp-probe-kit/bin/probe exec workflow --stdin
# Repair or install the project wrappers without a working MCP tool lease
npx --yes mcp-probe-kit@<exact-version> install-agent --project-root .
Config file location:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonConfig content:
{
"mcpServers": {
"mcp-probe-kit": {
"command": "npx",
"args": ["-y", "mcp-probe-kit@4.0.0"]
}
}
}
Config file location:
opencode.json (in project root)~/.config/opencode/opencode.jsonConfig content:
{
"mcp": {
"mcp-probe-kit": {
"type": "local",
"command": ["npx", "-y", "mcp-probe-kit@4.0.0"],
"enabled": true
}
}
}
Note: OpenCode uses
opencode.jsonwith a different schema from Cursor/Claude Desktop. The keymcpreplacesmcpServers,commandis an array,type: "local"is required, and environment variables useenvironmentinstead ofenv. See OpenCode MCP docs for details.
npm install -g mcp-probe-kit
Use in config file:
{
"mcpServers": {
"mcp-probe-kit": {
"command": "mcp-probe-kit"
}
}
}
If you want to use memorize_asset, update_memory_asset, read_memory_asset, delete_memory_asset, and scan_and_extract_patterns, configure as follows:
MEMORY_QDRANT_URL): read_memory_asset, delete_memory_assetMEMORY_* write/search vars): search_memory, memorize_asset, update_memory_assetscan_and_extract_patterns (local scan only; persist via memorize_asset when ready)For full write/search you need both:
ollama or openai-compatible modeNote (CLI fallback): If you run the project wrapper (
./.mcp-probe-kit/bin/probe* exec ...) instead of native MCP, Memory env is read from.mcp-probe-kit/local.env(created byinstall-agent).
Full guide (Docker Compose for Qdrant + Infinity, ports 50008 / 50012, MCP env, smoke tests):
Lightweight local stack; no Ollama. Deploy Qdrant and nomic-embed via Docker Compose (see guide), then:
{
"mcpServers": {
"mcp-probe-kit": {
"command": "npx",
"args": ["-y", "mcp-probe-kit@4.0.0"],
"env": {
"MEMORY_QDRANT_URL": "http://127.0.0.1:50008",
"MEMORY_QDRANT_API_KEY": "your-qdrant-api-key",
"MEMORY_QDRANT_COLLECTION": "mcp_probe_memory",
"MEMORY_EMBEDDING_PROVIDER": "openai-compatible",
"MEMORY_EMBEDDING_URL": "http://127.0.0.1:50012/embeddings",
"MEMORY_EMBEDDING_MODEL": "nomic-ai/nomic-embed-text-v1.5",
"MEMORY_EMBEDDING_API_KEY": "your-infinity-api-key",
"MEMORY_SEARCH_LIMIT": "3",
"MEMORY_SUMMARY_MAX_CHARS": "280"
}
}
}
}
Embedding URL must be
/embeddings(not/v1/embeddings). Qdrant requiresapi-keywhenQDRANT__SERVICE__API_KEYis set.
docker run -d --name mcp-qdrant -p 6333:6333 qdrant/qdrant
ollama pull nomic-embed-text
"MEMORY_QDRANT_URL": "http://127.0.0.1:6333",
"MEMORY_EMBEDDING_PROVIDER": "ollama",
"MEMORY_EMBEDDING_URL": "http://127.0.0.1:11434/api/embeddings",
"MEMORY_EMBEDDING_MODEL": "nomic-embed-text"
"MEMORY_QDRANT_URL": "http://127.0.0.1:50008",
"MEMORY_EMBEDDING_PROVIDER": "openai-compatible",
"MEMORY_EMBEDDING_URL": "https://your-embedding-endpoint/v1/embeddings",
"MEMORY_EMBEDDING_API_KEY": "your-api-key",
"MEMORY_EMBEDDING_MODEL": "text-embedding-3-small"
MEMORY_QDRANT_URL: Qdrant base URL, required for all memory featuresMEMORY_QDRANT_API_KEY: Optional Qdrant API keyMEMORY_QDRANT_COLLECTION: Collection name, default mcp_probe_memoryMEMORY_EMBEDDING_PROVIDER: ollama or openai-compatibleMEMORY_EMBEDDING_URL: Embedding endpoint URLMEMORY_EMBEDDING_API_KEY: Optional for Ollama, usually required for hosted OpenAI-compatible providersMEMORY_EMBEDDING_MODEL: Default is nomic-embed-textMEMORY_SEARCH_LIMIT: Default search result count is 3MEMORY_SUMMARY_MAX_CHARS: Default summary truncation length is 280MEMORY_QDRANT_URL, MEMORY_EMBEDDING_URL, and MEMORY_EMBEDDING_MODEL are configuredMEMORY_QDRANT_URLCosine distanceApplies to code_insight, start_feature, start_bugfix, and init_project_context.
GitNexus is not bundled into the mcp-probe-kit npm tarball because it includes native, platform-specific dependencies and uses the PolyForm Noncommercial license. The runtime policy is:
MCP_GITNEXUS_COMMAND when explicitly configured.gitnexus CLI already available on PATH.doctor gitnexus --install and retry automatically.Validated compatibility:
| Node.js | Managed GitNexus |
|---|---|
| 20-21 | Managed Sidecar disabled; use a system GitNexus CLI or degraded mode |
| 22+ / Windows、macOS、Linux | 1.6.9 |
Each managed installation is isolated by GitNexus version, operating system, CPU architecture, and Node.js major version. npm integrity is checked against the pinned release metadata before the runtime is accepted. The installer then runs gitnexus doctor plus a real TypeScript indexing probe and rejects any runtime that silently disables FTS/BM25 search.
Install or repair the managed Sidecar through the project launcher:
# Windows
& ./.mcp-probe-kit/bin/probe.cmd doctor gitnexus --install
# macOS / Linux
./.mcp-probe-kit/bin/probe doctor gitnexus --install
The first installation can take several minutes because GitNexus includes native parsers, LadybugDB, ONNX Runtime, and post-install grammar builds. It runs outside the project and does not modify the project package.json or node_modules.
Available modes:
MCP_GITNEXUS_MODE=auto — default; explicit/system/existing managed runtime, otherwise fast degradation.MCP_GITNEXUS_MODE=managed — require the managed Sidecar and allow installation during the graph request.MCP_GITNEXUS_MODE=system — use only explicit/system GitNexus; never install.MCP_GITNEXUS_MODE=off — disable GitNexus.MCP_GITNEXUS_AUTO_INSTALL=1 — allow auto mode to install synchronously; not recommended for latency-sensitive clients.Some GitNexus dependencies use native modules. On Windows, LadybugDB FTS also requires the OpenSSL runtime shipped with Git for Windows; mcp-probe-kit discovers its mingw64/bin directory and exposes it only to the managed child process. Set MCP_GITNEXUS_WINDOWS_RUNTIME_BIN to an equivalent directory when Git is installed in a nonstandard location. A failed prebuilt-binary download may still require Visual Studio Build Tools with the C++ workload. Installation failure never prevents the mcp-probe-kit workflow from continuing in degraded mode.
Example config using a preinstalled gitnexus CLI:
{
"mcpServers": {
"mcp-probe-kit": {
"command": "mcp-probe-kit",
"env": {
"MCP_GITNEXUS_MODE": "system",
"MCP_GITNEXUS_COMMAND": "gitnexus",
"MCP_GITNEXUS_ARGS": "mcp",
"MCP_GITNEXUS_CONNECT_TIMEOUT_MS": "30000",
"MCP_GITNEXUS_TIMEOUT_MS": "45000"
}
}
}
}
After configuration, completely quit and reopen your MCP client.
code_review @feature.ts # Code review
gentest @feature.ts # Generate tests
gencommit # Generate commit message
start_feature user-auth "User authentication feature"
# Auto-complete: Requirements analysis → Design → Effort estimation
start_bugfix
# Then paste error message
# Auto-complete: Problem location → Fix solution → Test code
start_product "Online Education Platform" --product_type=SaaS
# Auto-complete: PRD → Prototype → Design system → HTML prototype
start_ui "Login Page" --mode=auto
# Auto-complete: Design system → Component generation → Code output
# Single file mode (default) - Generate a complete project-context.md
init_project_context
# Modular mode - Generate 6 category docs (suitable for large projects)
init_project_context --mode=modular
# Generates: project-context.md (index) + 5 category docs
# Generate daily report
git_work_report --date 2026-02-03
# Generate weekly report
git_work_report --start_date 2026-02-01 --end_date 2026-02-07
# Save to file
git_work_report --date 2026-02-03 --output_file daily-report.md
# Auto-analyze Git diff, generate concise professional report
# If direct command fails, auto-provides temp script solution (auto-deletes after execution)
Check detailed logs:
Windows (PowerShell):
npx -y mcp-probe-kit@4.0.0 2>&1 | Tee-Object -FilePath .\mcp-probe-kit.log
macOS/Linux:
npx -y mcp-probe-kit@4.0.0 2>&1 | tee ./mcp-probe-kit.log
This is a known Cursor-side issue: stderr may report a valid compact tool surface, while Mcp FileSystem Writer shows lease returned 0 tools and toolCount=0 — the Agent lease layer silently dropped the tool list.
Common causes:
| Symptom in logs | Likely cause |
|---|---|
tools/list ≈ 50+ KB then lease returned 0 tools | Cursor internal payload size limit (whole list dropped silently) |
latched shared-process MCP routing disabled + ipcReady timeout | Windows mcpProcess utility failed; legacy fallback discovers tools but Agent lease stays empty |
Settings green dot, Agent No MCP servers available | Renderer ↔ shared-process MCP routing not wired for this session |
What we do: tools/list omits outputSchema by default, and v4.0.0 defaults to the 24-tool compact model surface. Structured output still works through structuredContent on tools/call. Restore output schemas with MCP_INCLUDE_OUTPUT_SCHEMA=1, or restore the 34-tool compatibility surface with MCP_TOOLSET=full.
What you can try:
lease returned 0 tools / ipcReady / MessagePortipcReady regressions; try latest or roll back to a known-good build)connected=true, stderr tool count, lease toolCount=0, and shared-process MCP routing disabledFallback when the Host Agent path is replaced or does not bridge MCP tools:
If the MCP panel and tool cache are healthy but the actual Agent request is handled by a third-party provider with no MCP tool bridge, restarting the server cannot fix that path. Use the project wrapper generated by bootstrap:
# Windows
'{"intent":"continue the current feature","scenario":"feature","project_root":"."}' |
.\.mcp-probe-kit\bin\probe.cmd exec workflow --stdin
# macOS / Linux
printf '%s' '{"intent":"continue the current feature","scenario":"feature","project_root":"."}' \
| ./.mcp-probe-kit/bin/probe exec workflow --stdin
The Skill automatically selects this route when native MCP tools are absent. plan_heartbeat, resume_plan, and converge use the same project files across separate CLI processes and native MCP sessions.
Diagnostic: .cursor/projects/<project>/mcps/user-mcp-probe-kit/
This folder is written by Cursor (Mcp FileSystem Writer), not by mcp-probe-kit. After a successful tool lease you should see:
mcps/user-mcp-probe-kit/
├── SERVER_METADATA.json
├── STATUS.md
├── tools/ ← one JSON per model-visible tool (~24 by default); Agent reads these for CallMcpTool
│ ├── init_project.json
│ └── ...
└── resources/ ← from resources/list (may exist even when tools/ is empty)
| State | Meaning |
|---|---|
resources/ exists, tools/ missing or empty | resources/list OK but tools lease failed (matches lease returned 0 tools) |
tools/ has fewer entries than the selected model surface (24 default, 30 with Memory, 34 full) | Partial write or session interrupted; Reload MCP |
STATUS.md says server errored | Cursor marked the server unhealthy for Agent even if Settings is green |
Healthy session: tools/ should auto-populate within seconds of MCP connect — no manual setup, no repo config.
npx method (Recommended):
Use @latest tag in config, automatically uses latest version.
Global installation method:
npm update -g mcp-probe-kit
GitNexus includes native parsers, a graph database, ONNX Runtime, and post-install grammar builds. A cold managed installation may take several minutes, especially on Windows or a slow network.
The normal feature and bug-fix workflows do not wait for this installation in default auto mode. They return a structured managed_install_required degradation result, and the Agent can automatically run:
& ./.mcp-probe-kit/bin/probe.cmd doctor gitnexus --install
The installation is stored in the mcp-probe-kit user cache, uses an exact compatible version and npm integrity pin, and does not modify the business project. If native installation fails, graph analysis remains degraded while the rest of the workflow continues normally.
👉 More FAQ
Issues and Pull Requests welcome!
Improvement suggestions:
MIT License
Related Projects:
Made with ❤️ for AI-Powered Development
Thanks to the Linux.do community for its support in promoting the project and providing feedback.