Installation & Configuration

Get started with MCP Probe Kit v3.3.0 in 5 minutes. Supports Cursor, Cline, and Claude Desktop

v3.3.0 MCP 2025-11-25 SDK 1.27.1
1

Choose Installation Method

No installation required, use the latest version directly:

JSON
{
  "mcpServers": {
    "mcp-probe-kit": {
      "command": "npx",
      "args": ["-y", "mcp-probe-kit@latest"]
    }
  }
}
Advantage:No manual updates needed, automatically uses the latest version on each startup

Memory System Setup (Qdrant + Embedding)

If you want to use search_memory、 memorize_asset、 read_memory_asset、 scan_and_extract_patterns , you need to configure both a vector database and an embedding service.

Copy the files below into two folders, start both services, then paste the MCP config. No Ollama required.

Extended guide (troubleshooting, performance): docs/memory-local-setup.md Β· δΈ­ζ–‡

Ports

ServiceURL
Qdrant HTTPhttp://127.0.0.1:50008
Qdrant gRPC127.0.0.1:50009
Nomic Embedhttp://127.0.0.1:50012

0. Directory layout

Create two folders anywhere on your machine (example: ~/mcp-memory/):

mcp-memory/
β”œβ”€β”€ qdrant/
β”‚   β”œβ”€β”€ docker-compose.yml
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ data/
β”‚   └── snapshots/
└── nomic-embed/
    β”œβ”€β”€ docker-compose.yml
    └── .env

1. Qdrant (vector DB, port 50008)

qdrant/docker-compose.yml

docker-compose.yml
services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    restart: always
    env_file:
      - .env
    ports:
      - "50008:6333"
      - "50009:6334"
    volumes:
      - ./data:/qdrant/storage
      - ./snapshots:/qdrant/snapshots
    environment:
      - QDRANT__SERVICE__HTTP_PORT=6333
      - QDRANT__SERVICE__GRPC_PORT=6334
      - QDRANT__LOG_LEVEL=INFO
      - QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY}
    healthcheck:
      test:
        - "CMD"
        - "bash"
        - "-c"
        - "exec 3<>/dev/tcp/127.0.0.1/6333 && printf 'GET /collections HTTP/1.1\r\nHost: localhost\r\napi-key: ${QDRANT_API_KEY}\r\nConnection: close\r\n\r\n' >&3 && IFS= read -r line <&3 && [[ \"$$line\" == *\"200\"* ]]"
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s

qdrant/.env

.env
# Generate: python -c "import secrets; print(secrets.token_urlsafe(32))"
QDRANT_API_KEY=change-me-to-a-long-random-string
QDRANT_URL=http://127.0.0.1:50008

Start Qdrant

PowerShell / Bash
cd qdrant
mkdir data snapshots 2>$null; mkdir -p data snapshots
docker compose up -d
docker compose ps

Verify Qdrant

curl
curl http://127.0.0.1:50008/collections \
  -H "api-key: YOUR_QDRANT_API_KEY"

When API key is enabled, all requests need header api-key. Dashboard: http://127.0.0.1:50008/dashboard

2. Nomic Embed / Infinity (embeddings, port 50012)

nomic-embed/docker-compose.yml

docker-compose.yml
services:
  nomic-embed:
    image: michaelf34/infinity:0.0.70
    container_name: nomic-embed
    restart: unless-stopped
    ports:
      - "50012:7997"
    volumes:
      - hf_cache:/app/.cache
    environment:
      INFINITY_API_KEY: ${INFINITY_API_KEY}
    command:
      - v2
      - --model-id
      - nomic-ai/nomic-embed-text-v1.5
      - --revision
      - main
      - --dtype
      - float32
      - --batch-size
      - "8"
      - --engine
      - torch
      - --port
      - "7997"
      - --no-bettertransformer
    healthcheck:
      test:
        - "CMD"
        - "curl"
        - "-f"
        - "http://127.0.0.1:7997/health"
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 120s

volumes:
  hf_cache:

nomic-embed/.env

.env
# Generate: python -c "import secrets; print(secrets.token_urlsafe(32))"
INFINITY_API_KEY=change-me-to-a-long-random-string

Start embedding service

PowerShell / Bash
cd nomic-embed
docker compose up -d
docker logs -f nomic-embed
# Wait for: ready to batch requests

Verify embeddings

curl
curl http://127.0.0.1:50012/health

curl http://127.0.0.1:50012/embeddings \
  -H "Authorization: Bearer YOUR_INFINITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"nomic-ai/nomic-embed-text-v1.5","input":"hello world"}'
# Expect data[0].embedding length = 768

First start downloads the model (~2–5 min). Use POST /embeddings (not /v1/embeddings). Returns 768-dim vectors.

3. MCP client configuration

Cursor / Claude Desktop mcpServers
{
  "mcpServers": {
    "mcp-probe-kit": {
      "command": "npx",
      "args": ["-y", "mcp-probe-kit@latest"],
      "env": {
        "MEMORY_QDRANT_URL": "http://127.0.0.1:50008",
        "MEMORY_QDRANT_API_KEY": "same-as-qdrant-.env-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": "same-as-nomic-embed-.env-INFINITY_API_KEY",
        "MEMORY_SEARCH_LIMIT": "3",
        "MEMORY_SUMMARY_MAX_CHARS": "280"
      }
    }
  }
}

Use the same keys as in qdrant/.env and nomic-embed/.env. Restart Cursor after saving.

Other embedding options

Option B: Qdrant + 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"

Option C: Qdrant + hosted OpenAI-compatible API

"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"

Environment Variables

  • MEMORY_QDRANT_URL: Qdrant endpoint, required by all memory features
  • MEMORY_QDRANT_API_KEY: Optional Qdrant API key
  • MEMORY_QDRANT_COLLECTION: Collection name, default mcp_probe_memory
  • MEMORY_EMBEDDING_PROVIDER: ollama or openai-compatible
  • MEMORY_EMBEDDING_URL: Embedding API endpoint
  • MEMORY_EMBEDDING_API_KEY: Embedding API key, usually empty for Ollama
  • MEMORY_EMBEDDING_MODEL: Embedding model name, default nomic-embed-text
  • MEMORY_SEARCH_LIMIT: Default search result limit, default 3
  • MEMORY_SUMMARY_MAX_CHARS: Summary max characters, default 280

Behavior Notes

  • Memory writes require MEMORY_QDRANT_URL, MEMORY_EMBEDDING_URL and MEMORY_EMBEDDING_MODEL
  • Read-only memory access (such as read by ID) only requires MEMORY_QDRANT_URL
  • The first write auto-creates the Qdrant collection and uses Cosine
  • Vector dimension is inferred automatically from the first embedding response

Windows Notes for Graph Tools

Graph-aware tools may have a slower first run on Windows because GitNexus is started through npx by default.

  • The first cold start may take 20+ seconds while npx checks or downloads dependencies.
  • Some GitNexus dependencies use tree-sitter native modules and may require Visual Studio Build Tools.
  • If your MCP client supports env, prefer a preinstalled gitnexus CLI and raise GitNexus timeouts.
  • Quick install Build Tools on Windows: winget install Microsoft.VisualStudio.2022.BuildTools

Quick install command:

winget install Microsoft.VisualStudio.2022.BuildTools

Example using a preinstalled gitnexus CLI:

JSON
{
  "mcpServers": {
    "mcp-probe-kit": {
      "command": "mcp-probe-kit",
      "env": {
        "MCP_GITNEXUS_COMMAND": "gitnexus",
        "MCP_GITNEXUS_ARGS": "mcp",
        "MCP_GITNEXUS_CONNECT_TIMEOUT_MS": "30000",
        "MCP_GITNEXUS_TIMEOUT_MS": "45000"
      }
    }
  }
}
2

Locate Configuration File

Find the corresponding configuration file based on your MCP client:

3

Verify Installation

After completing configuration, verify with the following steps:

  1. Restart MCP client (Cursor / Cline / Claude Desktop)
  2. Type in chat window:Please use gencommit tool to generate a test commit message
  3. If it returns a commit message following Conventional Commits specification, installation is successful!
βœ… Success example:AI returns something like feat: add user authentication message
❌ Common issues:
  • "Tool not found" β†’ Check configuration file format
  • "Command not found" β†’ Confirm Node.js is installed
  • Windows users β†’ Ensure using npx method
4

Delegated Orchestration Protocol

start_* orchestration tools do not execute operations directly, but return an executable plan.

Key fields:mode: "delegated", steps[], outputs[]

Plan Example
{
  "mode": "delegated",
  "steps": [
    {
      "id": "spec",
      "tool": "add_feature",
      "args": { "feature_name": "user-auth" },
      "outputs": ["docs/specs/user-auth/requirements.md"]
    }
  ]
}
πŸ’‘ Key point:Execute stepsin order, and ensure outputs files are actually written to disk

⚠️ Common Issues