@crownpeak/dqm-react-component-dev-mcp 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/README.md +138 -0
  2. package/data/.env.example +22 -0
  3. package/data/.gitattributes +47 -0
  4. package/data/.glfrc.json +7 -0
  5. package/data/.husky/pre-commit +5 -0
  6. package/data/.nvmrc +1 -0
  7. package/data/CHANGELOG.md +75 -0
  8. package/data/CODE_OF_CONDUCT.md +129 -0
  9. package/data/CONTRIBUTING.md +203 -0
  10. package/data/DOCS-STRUCTURE.md +307 -0
  11. package/data/I18N.md +292 -0
  12. package/data/LICENSE +22 -0
  13. package/data/README.md +315 -0
  14. package/data/SECURITY.md +125 -0
  15. package/data/WIKI-DEPLOYMENT.md +348 -0
  16. package/data/docs/AI-FEATURES.md +610 -0
  17. package/data/docs/API-REFERENCE.md +1022 -0
  18. package/data/docs/AUTHENTICATION.md +301 -0
  19. package/data/docs/BACKEND-API.md +468 -0
  20. package/data/docs/DEVELOPMENT.md +375 -0
  21. package/data/docs/EXAMPLES.md +622 -0
  22. package/data/docs/MCP-SERVER.md +307 -0
  23. package/data/docs/MIGRATION-GUIDE.md +367 -0
  24. package/data/docs/NPM-PUBLISH.md +193 -0
  25. package/data/docs/QUICKSTART.md +206 -0
  26. package/data/docs/REDIS-SETUP.md +162 -0
  27. package/data/docs/SERVER.md +228 -0
  28. package/data/docs/TROUBLESHOOTING.md +657 -0
  29. package/data/docs/WIDGET-GUIDE.md +638 -0
  30. package/data/docs/WIKI-HOME.md +58 -0
  31. package/data/docs/WIKI-SIDEBAR.md +39 -0
  32. package/data/package.json +171 -0
  33. package/data/playwright.config.ts +64 -0
  34. package/data/probe/.cargo/config.toml +10 -0
  35. package/data/probe/.claude/commands/performance-review.md +15 -0
  36. package/data/probe/.clinerules +288 -0
  37. package/data/probe/.dockerignore +57 -0
  38. package/data/probe/.githooks/post-commit +11 -0
  39. package/data/probe/.githooks/pre-commit +99 -0
  40. package/data/probe/.githooks/pre-commit-vow +9 -0
  41. package/data/probe/.prompts/engineer.md +41 -0
  42. package/data/probe/.roomodes +28 -0
  43. package/data/probe/.windsurfrules +0 -0
  44. package/data/probe/BASH_TOOL_SUMMARY.md +148 -0
  45. package/data/probe/BENCHMARKING.md +256 -0
  46. package/data/probe/CLAUDE.md +226 -0
  47. package/data/probe/CODE_OF_CONDUCT.md +128 -0
  48. package/data/probe/CONTRIBUTING.md +193 -0
  49. package/data/probe/Cargo.toml +120 -0
  50. package/data/probe/Cross.toml +10 -0
  51. package/data/probe/DOCKER-README.md +224 -0
  52. package/data/probe/Dockerfile +32 -0
  53. package/data/probe/ENHANCED_DEBUG_TELEMETRY.md +188 -0
  54. package/data/probe/LICENSE +201 -0
  55. package/data/probe/Makefile +210 -0
  56. package/data/probe/README.md +824 -0
  57. package/data/probe/SECURITY.md +67 -0
  58. package/data/probe/WINDOWS-GUIDE.md +294 -0
  59. package/data/probe/benches/parsing_benchmarks.rs +370 -0
  60. package/data/probe/benches/search_benchmarks.rs +599 -0
  61. package/data/probe/benches/simd_benchmarks.rs +372 -0
  62. package/data/probe/benches/timing_benchmarks.rs +287 -0
  63. package/data/probe/build-windows.bat +229 -0
  64. package/data/probe/codex-config/config.toml +6 -0
  65. package/data/probe/docs/PERFORMANCE_OPTIMIZATION.md +161 -0
  66. package/data/probe/examples/cache_demo.rs +46 -0
  67. package/data/probe/examples/chat/.dockerignore +37 -0
  68. package/data/probe/examples/chat/ChatSessionManager.js +295 -0
  69. package/data/probe/examples/chat/Dockerfile +98 -0
  70. package/data/probe/examples/chat/LICENSE +201 -0
  71. package/data/probe/examples/chat/LOCAL_IMAGE_SUPPORT.md +195 -0
  72. package/data/probe/examples/chat/MCP_INTEGRATION.md +400 -0
  73. package/data/probe/examples/chat/README.md +338 -0
  74. package/data/probe/examples/chat/TRACING.md +226 -0
  75. package/data/probe/examples/chat/appTracer.js +968 -0
  76. package/data/probe/examples/chat/auth.js +76 -0
  77. package/data/probe/examples/chat/bin/probe-chat.js +13 -0
  78. package/data/probe/examples/chat/build.js +104 -0
  79. package/data/probe/examples/chat/cancelRequest.js +84 -0
  80. package/data/probe/examples/chat/demo-agentic-image-flow.js +88 -0
  81. package/data/probe/examples/chat/demo-local-images.js +128 -0
  82. package/data/probe/examples/chat/fileSpanExporter.js +181 -0
  83. package/data/probe/examples/chat/implement/README.md +228 -0
  84. package/data/probe/examples/chat/implement/backends/AiderBackend.js +750 -0
  85. package/data/probe/examples/chat/implement/backends/BaseBackend.js +276 -0
  86. package/data/probe/examples/chat/implement/backends/ClaudeCodeBackend.js +767 -0
  87. package/data/probe/examples/chat/implement/backends/MockBackend.js +237 -0
  88. package/data/probe/examples/chat/implement/backends/registry.js +85 -0
  89. package/data/probe/examples/chat/implement/core/BackendManager.js +567 -0
  90. package/data/probe/examples/chat/implement/core/ImplementTool.js +354 -0
  91. package/data/probe/examples/chat/implement/core/config.js +428 -0
  92. package/data/probe/examples/chat/implement/core/timeouts.js +58 -0
  93. package/data/probe/examples/chat/implement/core/utils.js +496 -0
  94. package/data/probe/examples/chat/implement/types/BackendTypes.js +126 -0
  95. package/data/probe/examples/chat/index.js +669 -0
  96. package/data/probe/examples/chat/mcpServer.js +341 -0
  97. package/data/probe/examples/chat/npm/LICENSE +15 -0
  98. package/data/probe/examples/chat/npm/README.md +168 -0
  99. package/data/probe/examples/chat/npm/bin/probe-chat.js +156 -0
  100. package/data/probe/examples/chat/npm/index.js +259 -0
  101. package/data/probe/examples/chat/npm/package.json +54 -0
  102. package/data/probe/examples/chat/package.json +102 -0
  103. package/data/probe/examples/chat/probeChat.js +456 -0
  104. package/data/probe/examples/chat/probeTool.js +491 -0
  105. package/data/probe/examples/chat/storage/JsonChatStorage.js +476 -0
  106. package/data/probe/examples/chat/telemetry.js +281 -0
  107. package/data/probe/examples/chat/test/integration/chatFlows.test.js +320 -0
  108. package/data/probe/examples/chat/test/integration/toolCalling.test.js +471 -0
  109. package/data/probe/examples/chat/test/mocks/mockLLMProvider.js +269 -0
  110. package/data/probe/examples/chat/test/test-backends.js +90 -0
  111. package/data/probe/examples/chat/test/testUtils.js +530 -0
  112. package/data/probe/examples/chat/test/unit/backendTimeout.test.js +161 -0
  113. package/data/probe/examples/chat/test/unit/packageFiles.test.js +120 -0
  114. package/data/probe/examples/chat/test/verify-tests.js +118 -0
  115. package/data/probe/examples/chat/test-agentic-image-loading.js +294 -0
  116. package/data/probe/examples/chat/test-ai-sdk-telemetry.js +204 -0
  117. package/data/probe/examples/chat/test-chat-tracing.js +38 -0
  118. package/data/probe/examples/chat/test-direct-function.js +49 -0
  119. package/data/probe/examples/chat/test-file-size-validation.js +103 -0
  120. package/data/probe/examples/chat/test-full-mcp-integration.js +258 -0
  121. package/data/probe/examples/chat/test-github-context.txt +12 -0
  122. package/data/probe/examples/chat/test-hierarchy.js +203 -0
  123. package/data/probe/examples/chat/test-image-spans.js +37 -0
  124. package/data/probe/examples/chat/test-local-image-reading.js +176 -0
  125. package/data/probe/examples/chat/test-mcp-integration.js +136 -0
  126. package/data/probe/examples/chat/test-mcp-probe-server.js +161 -0
  127. package/data/probe/examples/chat/test-mcp-with-ai.js +279 -0
  128. package/data/probe/examples/chat/test-multiple-allowed-dirs.js +111 -0
  129. package/data/probe/examples/chat/test-probe-mcp-server.js +110 -0
  130. package/data/probe/examples/chat/test-security-validation.js +145 -0
  131. package/data/probe/examples/chat/test-simple-tracing.js +32 -0
  132. package/data/probe/examples/chat/test-trace-verification.js +235 -0
  133. package/data/probe/examples/chat/test-tracing.js +114 -0
  134. package/data/probe/examples/chat/tokenCounter.js +419 -0
  135. package/data/probe/examples/chat/tokenUsageDisplay.js +134 -0
  136. package/data/probe/examples/chat/webServer.js +1103 -0
  137. package/data/probe/examples/reranker/Cargo.toml +33 -0
  138. package/data/probe/examples/reranker/DEBUG_OUTPUT_ANALYSIS.md +71 -0
  139. package/data/probe/examples/reranker/MODELS.md +66 -0
  140. package/data/probe/examples/reranker/MODEL_COMPARISON.md +60 -0
  141. package/data/probe/examples/reranker/MULTI_MODEL_ANALYSIS.md +176 -0
  142. package/data/probe/examples/reranker/PERFORMANCE_SUMMARY.md +156 -0
  143. package/data/probe/examples/reranker/README.md +347 -0
  144. package/data/probe/examples/reranker/RUST_BERT_COMPARISON.md +82 -0
  145. package/data/probe/examples/reranker/TOKENIZATION_GUIDE.md +120 -0
  146. package/data/probe/examples/reranker/check_rust_tokenizer.py +108 -0
  147. package/data/probe/examples/reranker/convert_to_torchscript.py +109 -0
  148. package/data/probe/examples/reranker/debug_scoring.py +189 -0
  149. package/data/probe/examples/reranker/debug_tokenization.py +154 -0
  150. package/data/probe/examples/reranker/download_models.sh +73 -0
  151. package/data/probe/examples/reranker/requirements.txt +13 -0
  152. package/data/probe/examples/reranker/run_comprehensive_benchmark.sh +83 -0
  153. package/data/probe/examples/reranker/rust_bert_test/Cargo.toml +12 -0
  154. package/data/probe/examples/reranker/rust_bert_test/README.md +54 -0
  155. package/data/probe/examples/reranker/simple_test.py +50 -0
  156. package/data/probe/examples/reranker/test_all_models.sh +63 -0
  157. package/data/probe/examples/reranker/test_bert_results.sh +44 -0
  158. package/data/probe/examples/reranker/test_cross_encoder.py +334 -0
  159. package/data/probe/examples/reranker/test_cross_encoder.sh +80 -0
  160. package/data/probe/examples/reranker/test_exact_comparison.py +151 -0
  161. package/data/probe/examples/reranker/test_parallel_performance.sh +56 -0
  162. package/data/probe/examples/reranker/test_scores.py +132 -0
  163. package/data/probe/install.ps1 +508 -0
  164. package/data/probe/install.sh +460 -0
  165. package/data/probe/npm/CLONE_METHOD_EXAMPLES.md +596 -0
  166. package/data/probe/npm/CONTEXT_COMPACTION.md +303 -0
  167. package/data/probe/npm/DELEGATE_TOOL_README.md +166 -0
  168. package/data/probe/npm/MAID_INTEGRATION.md +313 -0
  169. package/data/probe/npm/MCP_INTEGRATION_SUMMARY.md +241 -0
  170. package/data/probe/npm/README.md +824 -0
  171. package/data/probe/npm/bin/.gitignore +7 -0
  172. package/data/probe/npm/bin/.gitkeep +0 -0
  173. package/data/probe/npm/bin/README.md +12 -0
  174. package/data/probe/npm/bin/probe +167 -0
  175. package/data/probe/npm/docs/CLAUDE_CODE_INTEGRATION.md +414 -0
  176. package/data/probe/npm/docs/CODEX_INTEGRATION.md +502 -0
  177. package/data/probe/npm/docs/EDIT_CREATE_TOOLS.md +233 -0
  178. package/data/probe/npm/docs/RETRY_AND_FALLBACK.md +674 -0
  179. package/data/probe/npm/example-usage.js +335 -0
  180. package/data/probe/npm/examples/multi-engine-demo.js +117 -0
  181. package/data/probe/npm/examples/probe-agent-cli.js +113 -0
  182. package/data/probe/npm/examples/test-agent-edit.js +114 -0
  183. package/data/probe/npm/examples/test-edit-create.js +120 -0
  184. package/data/probe/npm/examples/test-edit-direct.js +114 -0
  185. package/data/probe/npm/index.d.ts +744 -0
  186. package/data/probe/npm/jest.config.js +52 -0
  187. package/data/probe/npm/package.json +117 -0
  188. package/data/probe/npm/scripts/build-agent.cjs +75 -0
  189. package/data/probe/npm/scripts/build-cjs.js +124 -0
  190. package/data/probe/npm/scripts/build-mcp.cjs +36 -0
  191. package/data/probe/npm/scripts/postinstall.js +216 -0
  192. package/data/probe/npm/test-codex-e2e.js +78 -0
  193. package/data/probe/npm/test-download-lock.js +109 -0
  194. package/data/probe/npm/test-grep-security.js +94 -0
  195. package/data/probe/npm/test-grep-simplified.js +63 -0
  196. package/data/probe/npm/test-grep.js +51 -0
  197. package/data/probe/npm/tests/README.md +96 -0
  198. package/data/probe/npm/tests/agent-compact-history.test.js +174 -0
  199. package/data/probe/npm/tests/allow-tests-default.test.js +151 -0
  200. package/data/probe/npm/tests/contextCompactor.test.js +498 -0
  201. package/data/probe/npm/tests/delegate-config.test.js +353 -0
  202. package/data/probe/npm/tests/delegate-integration.test.js +348 -0
  203. package/data/probe/npm/tests/extractor-integration.test.js +162 -0
  204. package/data/probe/npm/tests/extractor.test.js +317 -0
  205. package/data/probe/npm/tests/fixtures/sampleDiagrams.js +267 -0
  206. package/data/probe/npm/tests/integration/claude-code-auto-fallback.spec.js +148 -0
  207. package/data/probe/npm/tests/integration/claude-code-multi-step.spec.js +127 -0
  208. package/data/probe/npm/tests/integration/claude-code-tool-events.spec.js +163 -0
  209. package/data/probe/npm/tests/integration/codex-auto-fallback.spec.js +191 -0
  210. package/data/probe/npm/tests/integration/codex-tool-events.spec.js +147 -0
  211. package/data/probe/npm/tests/integration/examplesChatMcp.test.js +402 -0
  212. package/data/probe/npm/tests/integration/mcpDotenvSupport.test.js +174 -0
  213. package/data/probe/npm/tests/integration/mcpErrorHandling.test.js +566 -0
  214. package/data/probe/npm/tests/integration/mcpRobustness.test.js +564 -0
  215. package/data/probe/npm/tests/integration/mcpStdoutPurity.test.js +355 -0
  216. package/data/probe/npm/tests/integration/probeAgentMcp.test.js +398 -0
  217. package/data/probe/npm/tests/integration/retryFallback.test.js +368 -0
  218. package/data/probe/npm/tests/integration/schema-in-initial-message.test.js +318 -0
  219. package/data/probe/npm/tests/integration/schema-validation-loop-prevention.test.js +244 -0
  220. package/data/probe/npm/tests/integration/schemaRetryLogic.test.js +94 -0
  221. package/data/probe/npm/tests/integration/validationFlow.test.js +329 -0
  222. package/data/probe/npm/tests/manual/test-codex-basic.js +110 -0
  223. package/data/probe/npm/tests/mcp/mcpClientManager.test.js +614 -0
  224. package/data/probe/npm/tests/mcp/mcpConfig.test.js +359 -0
  225. package/data/probe/npm/tests/mcp/mcpXmlBridge.test.js +436 -0
  226. package/data/probe/npm/tests/mcp/mockMcpServer.js +510 -0
  227. package/data/probe/npm/tests/mcp-strict-syntax.test.js +319 -0
  228. package/data/probe/npm/tests/mermaidQuoteEscaping.test.js +214 -0
  229. package/data/probe/npm/tests/nestedQuoteFix.test.js +40 -0
  230. package/data/probe/npm/tests/setup.js +46 -0
  231. package/data/probe/npm/tests/unit/allowed-tools.test.js +513 -0
  232. package/data/probe/npm/tests/unit/attempt-completion-closing-tag-in-content.test.js +188 -0
  233. package/data/probe/npm/tests/unit/attemptCompletionJsonFix.test.js +238 -0
  234. package/data/probe/npm/tests/unit/attemptCompletionJsonIssue.test.js +128 -0
  235. package/data/probe/npm/tests/unit/backtickAutoFix.test.js +35 -0
  236. package/data/probe/npm/tests/unit/bash-probe-agent-integration.test.js +389 -0
  237. package/data/probe/npm/tests/unit/bash-simple-commands.test.js +324 -0
  238. package/data/probe/npm/tests/unit/bash-tool-comprehensive.test.js +371 -0
  239. package/data/probe/npm/tests/unit/bash-tool-integration.test.js +310 -0
  240. package/data/probe/npm/tests/unit/bash-tool.test.js +341 -0
  241. package/data/probe/npm/tests/unit/completion-prompt.test.js +379 -0
  242. package/data/probe/npm/tests/unit/cwd-path-options.test.js +287 -0
  243. package/data/probe/npm/tests/unit/delegate-limits.test.js +422 -0
  244. package/data/probe/npm/tests/unit/direct-content-attempt-completion.test.js +235 -0
  245. package/data/probe/npm/tests/unit/edit-create-tools.test.js +609 -0
  246. package/data/probe/npm/tests/unit/enhancedMermaidValidation.test.js +577 -0
  247. package/data/probe/npm/tests/unit/extract-content.test.js +83 -0
  248. package/data/probe/npm/tests/unit/extract-multiple-targets.test.js +89 -0
  249. package/data/probe/npm/tests/unit/fallbackManager.test.js +442 -0
  250. package/data/probe/npm/tests/unit/githubCompatibilityValidation.test.js +258 -0
  251. package/data/probe/npm/tests/unit/imageConfig.test.js +149 -0
  252. package/data/probe/npm/tests/unit/imagePathResolution.test.js +345 -0
  253. package/data/probe/npm/tests/unit/json-fixing-agent.test.js +238 -0
  254. package/data/probe/npm/tests/unit/json-validation-enhanced-errors.test.js +199 -0
  255. package/data/probe/npm/tests/unit/jsonValidationInfiniteLoopFix.test.js +228 -0
  256. package/data/probe/npm/tests/unit/maidIntegration.test.js +139 -0
  257. package/data/probe/npm/tests/unit/maxIterationsWarning.test.js +195 -0
  258. package/data/probe/npm/tests/unit/mermaidEdgeLabelFix.test.js +161 -0
  259. package/data/probe/npm/tests/unit/mermaidHtmlEntities.test.js +76 -0
  260. package/data/probe/npm/tests/unit/mermaidInfiniteLoopFix.test.js +64 -0
  261. package/data/probe/npm/tests/unit/mermaidValidation.test.js +723 -0
  262. package/data/probe/npm/tests/unit/mermaidValidationVisorExample.test.js +309 -0
  263. package/data/probe/npm/tests/unit/probe-agent-clone-realistic.test.js +643 -0
  264. package/data/probe/npm/tests/unit/probe-agent-clone.test.js +476 -0
  265. package/data/probe/npm/tests/unit/probe-agent-delegate.test.js +400 -0
  266. package/data/probe/npm/tests/unit/probe-agent-model-option.test.js +118 -0
  267. package/data/probe/npm/tests/unit/probeTool-security.test.js +283 -0
  268. package/data/probe/npm/tests/unit/readImageTool.test.js +418 -0
  269. package/data/probe/npm/tests/unit/retryManager.test.js +317 -0
  270. package/data/probe/npm/tests/unit/schema-aware-reminders.test.js +288 -0
  271. package/data/probe/npm/tests/unit/schemaDefinitionDetection.test.js +115 -0
  272. package/data/probe/npm/tests/unit/schemaUtils.test.js +1268 -0
  273. package/data/probe/npm/tests/unit/simpleTelemetry.test.js +282 -0
  274. package/data/probe/npm/tests/unit/simplified-attempt-completion.test.js +274 -0
  275. package/data/probe/npm/tests/unit/single-quote-json-bug.test.js +231 -0
  276. package/data/probe/npm/tests/unit/subgraphAutoFix.test.js +110 -0
  277. package/data/probe/npm/tests/unit/system-prompt.test.js +32 -0
  278. package/data/probe/npm/tests/unit/types-probe-agent-options.test.js +42 -0
  279. package/data/probe/npm/tests/unit/xmlParsing.test.js +720 -0
  280. package/data/probe/npm/tsconfig.json +21 -0
  281. package/data/probe/result1.txt +19 -0
  282. package/data/probe/result2.txt +26 -0
  283. package/data/probe/scripts/benchmark.sh +270 -0
  284. package/data/probe/scripts/cache_memory_analysis.rs +844 -0
  285. package/data/probe/scripts/claude-hook-wrapper.sh +56 -0
  286. package/data/probe/site/.env.example +10 -0
  287. package/data/probe/site/DEPLOYMENT.md +86 -0
  288. package/data/probe/site/README.md +183 -0
  289. package/data/probe/site/adding-languages.md +135 -0
  290. package/data/probe/site/ai-chat.md +427 -0
  291. package/data/probe/site/ai-integration.md +1488 -0
  292. package/data/probe/site/blog/agentic-flow-custom-xml-protocol.md +407 -0
  293. package/data/probe/site/blog/index.md +118 -0
  294. package/data/probe/site/blog/v0.6.0-release.md +426 -0
  295. package/data/probe/site/blog.md +8 -0
  296. package/data/probe/site/changelog.md +200 -0
  297. package/data/probe/site/cli-mode.md +437 -0
  298. package/data/probe/site/code-extraction.md +436 -0
  299. package/data/probe/site/contributing/README.md +9 -0
  300. package/data/probe/site/contributing/documentation-cross-references.md +215 -0
  301. package/data/probe/site/contributing/documentation-maintenance.md +275 -0
  302. package/data/probe/site/contributing/documentation-structure.md +75 -0
  303. package/data/probe/site/documentation-cross-references.md +215 -0
  304. package/data/probe/site/documentation-guide.md +132 -0
  305. package/data/probe/site/documentation-maintenance.md +275 -0
  306. package/data/probe/site/features.md +147 -0
  307. package/data/probe/site/how-it-works.md +118 -0
  308. package/data/probe/site/index.md +175 -0
  309. package/data/probe/site/index.md.bak +133 -0
  310. package/data/probe/site/installation.md +235 -0
  311. package/data/probe/site/integrations/docker.md +248 -0
  312. package/data/probe/site/integrations/github-actions.md +413 -0
  313. package/data/probe/site/language-support-overview.md +168 -0
  314. package/data/probe/site/mcp-integration.md +587 -0
  315. package/data/probe/site/mcp-server.md +304 -0
  316. package/data/probe/site/navigation-structure.md +76 -0
  317. package/data/probe/site/nodejs-sdk.md +798 -0
  318. package/data/probe/site/output-formats.md +625 -0
  319. package/data/probe/site/package.json +21 -0
  320. package/data/probe/site/public/_headers +28 -0
  321. package/data/probe/site/public/_redirects +11 -0
  322. package/data/probe/site/quick-start.md +289 -0
  323. package/data/probe/site/search-functionality.md +291 -0
  324. package/data/probe/site/search-reference.md +291 -0
  325. package/data/probe/site/supported-languages.md +215 -0
  326. package/data/probe/site/use-cases/README.md +8 -0
  327. package/data/probe/site/use-cases/advanced-cli.md +253 -0
  328. package/data/probe/site/use-cases/ai-code-editors.md +239 -0
  329. package/data/probe/site/use-cases/building-ai-tools.md +529 -0
  330. package/data/probe/site/use-cases/cli-ai-workflows.md +285 -0
  331. package/data/probe/site/use-cases/deploying-probe-web-interface.md +255 -0
  332. package/data/probe/site/use-cases/integrating-probe-into-ai-code-editors.md +161 -0
  333. package/data/probe/site/use-cases/nodejs-sdk.md +596 -0
  334. package/data/probe/site/use-cases/team-chat.md +350 -0
  335. package/data/probe/site/web-interface.md +434 -0
  336. package/data/probe/site/wrangler.toml +9 -0
  337. package/data/probe/test-api-key.sh +1 -0
  338. package/data/probe/test-probe-implementation/hello.js +7 -0
  339. package/data/probe/test_cases/demonstrate_early_termination_issues.sh +176 -0
  340. package/data/probe/test_cases/early_termination_issues.rs +533 -0
  341. package/data/probe/test_data/test_nested_struct.go +26 -0
  342. package/data/probe/tests/README.md +286 -0
  343. package/data/probe/tests/README_search_determinism_tests.md +116 -0
  344. package/data/probe/tests/adjacent_comment_test.rs +152 -0
  345. package/data/probe/tests/apostrophe_handling_tests.rs +132 -0
  346. package/data/probe/tests/block_filtering_with_ast_tests.rs +669 -0
  347. package/data/probe/tests/block_merging_tests.rs +396 -0
  348. package/data/probe/tests/c_outline_format_tests.rs +2179 -0
  349. package/data/probe/tests/cache_invalidation_issues.rs.disabled +682 -0
  350. package/data/probe/tests/cache_order_tests.rs +147 -0
  351. package/data/probe/tests/cache_query_scoping_tests.rs +221 -0
  352. package/data/probe/tests/cli_tests.rs +680 -0
  353. package/data/probe/tests/comment_context_integration_test.rs +240 -0
  354. package/data/probe/tests/common.rs +33 -0
  355. package/data/probe/tests/complex_block_merging_tests.rs +599 -0
  356. package/data/probe/tests/complex_query_block_filtering_tests.rs +422 -0
  357. package/data/probe/tests/control_flow_closing_braces_test.rs +91 -0
  358. package/data/probe/tests/cpp_outline_format_tests.rs +1507 -0
  359. package/data/probe/tests/csharp_outline_format_tests.rs +941 -0
  360. package/data/probe/tests/elastic_query_integration_tests.rs +922 -0
  361. package/data/probe/tests/extract_command_tests.rs +1848 -0
  362. package/data/probe/tests/extract_deduplication_tests.rs +146 -0
  363. package/data/probe/tests/extract_input_file_tests.rs +84 -0
  364. package/data/probe/tests/extract_prompt_tests.rs +102 -0
  365. package/data/probe/tests/filename_search_tests.rs +96 -0
  366. package/data/probe/tests/fixtures/user/AssemblyInfo.cs +3 -0
  367. package/data/probe/tests/github_extract_tests.rs +234 -0
  368. package/data/probe/tests/go_comment_test.rs +253 -0
  369. package/data/probe/tests/go_outline_format_tests.rs +2587 -0
  370. package/data/probe/tests/go_path_resolver_tests.rs +96 -0
  371. package/data/probe/tests/html_outline_format_tests.rs +637 -0
  372. package/data/probe/tests/integration_tests.rs +837 -0
  373. package/data/probe/tests/ip_whitelist_test.rs +148 -0
  374. package/data/probe/tests/java_outline_format_tests.rs +1611 -0
  375. package/data/probe/tests/javascript_extract_tests.rs +315 -0
  376. package/data/probe/tests/javascript_outline_format_tests.rs +1464 -0
  377. package/data/probe/tests/json_format_tests.rs +436 -0
  378. package/data/probe/tests/json_schema_validation_tests.rs +450 -0
  379. package/data/probe/tests/lib_usage.rs +60 -0
  380. package/data/probe/tests/line_comment_context_extension_test.rs +459 -0
  381. package/data/probe/tests/line_map_cache_tests.rs +114 -0
  382. package/data/probe/tests/markdown_integration_tests.rs +190 -0
  383. package/data/probe/tests/mocks/test_ip_whitelist.go +11 -0
  384. package/data/probe/tests/mocks/test_object.js +27 -0
  385. package/data/probe/tests/mocks/test_struct.go +50 -0
  386. package/data/probe/tests/multi_keyword_pattern_tests.rs +464 -0
  387. package/data/probe/tests/multi_language_syntax_integration_tests.rs +218 -0
  388. package/data/probe/tests/multiple_capture_groups_tests.rs +169 -0
  389. package/data/probe/tests/negative_compound_word_tests.rs +246 -0
  390. package/data/probe/tests/nested_symbol_extraction_tests.rs +99 -0
  391. package/data/probe/tests/outline_cross_file_interference_test.rs +335 -0
  392. package/data/probe/tests/outline_keyword_preservation_test.rs +67 -0
  393. package/data/probe/tests/output_format_edge_cases_tests.rs +693 -0
  394. package/data/probe/tests/parallel_extraction_tests.rs +178 -0
  395. package/data/probe/tests/parallel_search_tests.rs +355 -0
  396. package/data/probe/tests/path_resolver_tests.rs +698 -0
  397. package/data/probe/tests/php_outline_format_extended_tests.rs +928 -0
  398. package/data/probe/tests/php_outline_format_tests.rs +768 -0
  399. package/data/probe/tests/property_tests.proptest-regressions +9 -0
  400. package/data/probe/tests/property_tests.rs +118 -0
  401. package/data/probe/tests/python_outline_format_tests.rs +1538 -0
  402. package/data/probe/tests/query_command_json_tests.rs +438 -0
  403. package/data/probe/tests/query_command_tests.rs +232 -0
  404. package/data/probe/tests/query_command_xml_tests.rs +569 -0
  405. package/data/probe/tests/quoted_term_with_negative_keyword_tests.rs +216 -0
  406. package/data/probe/tests/required_terms_filename_tests.rs +116 -0
  407. package/data/probe/tests/ruby_outline_format_tests.rs +1011 -0
  408. package/data/probe/tests/rust_line_comment_context_test.rs +151 -0
  409. package/data/probe/tests/rust_outline_format_enhanced_tests.rs +725 -0
  410. package/data/probe/tests/rust_outline_format_tests.rs +843 -0
  411. package/data/probe/tests/schemas/xml_output_schema.xsd +38 -0
  412. package/data/probe/tests/search_determinism_tests.rs +451 -0
  413. package/data/probe/tests/search_hints_tests.rs +253 -0
  414. package/data/probe/tests/special_character_escaping_tests.rs +417 -0
  415. package/data/probe/tests/stemming_compound_word_filtering_tests.rs +535 -0
  416. package/data/probe/tests/strict_elastic_syntax_tests.rs +404 -0
  417. package/data/probe/tests/swift_outline_format_tests.rs +3319 -0
  418. package/data/probe/tests/symbols_tests.rs +166 -0
  419. package/data/probe/tests/test_file.rs +45 -0
  420. package/data/probe/tests/test_tokenize.rs +28 -0
  421. package/data/probe/tests/timeout_tests.rs +82 -0
  422. package/data/probe/tests/tokenization_tests.rs +195 -0
  423. package/data/probe/tests/tokenized_block_filtering_tests.rs +174 -0
  424. package/data/probe/tests/typescript_extract_tests.rs +214 -0
  425. package/data/probe/tests/typescript_outline_format_tests.rs +2188 -0
  426. package/data/probe/tests/xml_format_tests.rs +568 -0
  427. package/data/probe/tests/xml_schema_validation_tests.rs +497 -0
  428. package/data/scripts/postinstall.mjs +9 -0
  429. package/data/scripts/set-version.js +0 -0
  430. package/data/scripts/wiki-build.sh +111 -0
  431. package/data/scripts/wiki-deploy.sh +73 -0
  432. package/data/serve.json +12 -0
  433. package/data/test/demo-dynamic.html +134 -0
  434. package/data/test/demo-esm.html +105 -0
  435. package/data/test/demo-iife.html +78 -0
  436. package/data/tsconfig.json +7 -0
  437. package/data/vite.server.ts +483 -0
  438. package/data/vitest.config.ts +40 -0
  439. package/data/wiki/Home.md +58 -0
  440. package/data/wiki/_Sidebar.md +39 -0
  441. package/docs-mcp.config.json +20 -0
  442. package/package.json +56 -0
  443. package/src/config.js +111 -0
  444. package/src/index.js +395 -0
@@ -0,0 +1,587 @@
1
+ # MCP Server Integration
2
+
3
+ The Model Context Protocol (MCP) server integration allows Probe to seamlessly connect with AI assistants and editors. This document provides comprehensive information about setting up, configuring, and using Probe's MCP server capabilities.
4
+
5
+ ## What is MCP?
6
+
7
+ MCP (Model Context Protocol) is a standardized protocol that enables AI assistants to access external tools and resources. By running Probe as an MCP server, AI assistants can use Probe's powerful search capabilities to find and understand code in your projects.
8
+
9
+ Key benefits:
10
+
11
+ - **Seamless AI Integration**: Allows AI assistants to search and analyze your code
12
+ - **Standardized Protocol**: Uses the Model Context Protocol for compatibility with various AI tools
13
+ - **Enhanced AI Capabilities**: Gives AI assistants code-aware capabilities
14
+ - **Secure Access**: Provides controlled access to your codebase
15
+
16
+ ## Setting Up the MCP Server
17
+
18
+ ### Using NPX (Recommended)
19
+
20
+ The easiest way to use Probe's MCP server is through NPX:
21
+
22
+ ```json
23
+ {
24
+ "mcpServers": {
25
+ "probe": {
26
+ "command": "npx",
27
+ "args": [
28
+ "-y",
29
+ "@probelabs/probe@latest"
30
+ ]
31
+ }
32
+ }
33
+ }
34
+ ```
35
+
36
+ Add this configuration to your AI editor's MCP configuration file. The exact location depends on your editor, but common locations include:
37
+
38
+ - For Cline: `.cline/mcp_config.json` in your project directory
39
+ - For other editors: Check your editor's documentation for MCP configuration
40
+
41
+ ### Manual Installation
42
+
43
+ If you prefer to install the MCP server manually:
44
+
45
+ 1. Install the NPM package globally:
46
+ ```bash
47
+ npm install -g @probelabs/probe@latest
48
+ ```
49
+
50
+ 2. Configure your AI editor to use the installed package:
51
+ ```json
52
+ {
53
+ "mcpServers": {
54
+ "probe": {
55
+ "command": "probe", "args": ["mcp"]
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ ### Configuring Timeout
62
+
63
+ For large codebases, you may need to increase the timeout for search operations. You can configure the timeout using the `--timeout` or `-t` flag:
64
+
65
+ ```json
66
+ {
67
+ "mcpServers": {
68
+ "probe": {
69
+ "command": "npx",
70
+ "args": [
71
+ "-y",
72
+ "@probelabs/probe@latest",
73
+ "--timeout",
74
+ "60"
75
+ ]
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ Or with manual installation:
82
+
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "probe": {
87
+ "command": "probe", "args": ["mcp"],
88
+ "args": [
89
+ "--timeout",
90
+ "60"
91
+ ]
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ The timeout is specified in seconds (default: 30 seconds). You can also see all available options by running:
98
+
99
+ ```bash
100
+ probe mcp --help
101
+ ```
102
+
103
+ ### Technical Implementation
104
+
105
+ The Probe MCP server:
106
+
107
+ - Implements the Model Context Protocol specification
108
+ - Uses stdio for communication with AI editors
109
+ - Automatically downloads and manages the Probe binary
110
+ - Provides three main tools: search_code, query_code, and extract_code
111
+ - Handles tool execution and error reporting
112
+
113
+ ## Available Tools
114
+
115
+ The Probe MCP server provides the following tools:
116
+
117
+ ### search_code
118
+
119
+ Search code in a specified directory using Elasticsearch-like query syntax with session-based caching.
120
+
121
+ #### Parameters
122
+
123
+ | Parameter | Type | Description | Required |
124
+ |-----------|------|-------------|----------|
125
+ | `path` | string | Absolute path to the directory to search in | Yes |
126
+ | `query` | string \| string[] | Query patterns to search for with Elasticsearch-like syntax support | Yes |
127
+ | `filesOnly` | boolean | Skip AST parsing and just output unique files | No |
128
+ | `ignore` | string[] | Custom patterns to ignore | No |
129
+ | `excludeFilenames` | boolean | Exclude filenames from being used for matching | No |
130
+ | `reranker` | string | Reranking method ('hybrid', 'hybrid2', 'bm25', 'tfidf') | No |
131
+ | `frequencySearch` | boolean | Use frequency-based search with stemming and stopword removal | No |
132
+ | `exact` | boolean | Use exact matching without stemming or stopword removal | No |
133
+ | `maxResults` | number | Maximum number of results to return | No |
134
+ | `maxBytes` | number | Maximum total bytes of code content to return | No |
135
+ | `maxTokens` | number | Maximum total tokens in code content to return (for AI usage) | No |
136
+ | `allowTests` | boolean | Allow test files and test code blocks in search results | No |
137
+ | `noMerge` | boolean | Disable merging of adjacent code blocks after ranking | No |
138
+ | `mergeThreshold` | number | Maximum number of lines between code blocks to consider them adjacent for merging | No |
139
+ | `session` | string | Session identifier for caching | No |
140
+
141
+ #### Example
142
+
143
+ ```json
144
+ {
145
+ "path": "/path/to/your/project",
146
+ "query": "authentication flow",
147
+ "maxTokens": 20000
148
+ }
149
+ ```
150
+
151
+ #### Query Syntax
152
+
153
+ The search tool supports Elasticsearch-like query syntax with the following features:
154
+
155
+ - **Basic term searching**: `config` or `search`
156
+ - **Field-specific searching**: `field:value` (e.g., `function:parse`)
157
+ - **Required terms with + prefix**: `+required`
158
+ - **Excluded terms with - prefix**: `-excluded`
159
+ - **Logical operators**: `term1 AND term2`, `term1 OR term2`
160
+ - **Grouping with parentheses**: `(term1 OR term2) AND term3`
161
+
162
+ ### query_code
163
+
164
+ Find specific code structures (functions, classes, etc.) using tree-sitter patterns.
165
+
166
+ #### Parameters
167
+
168
+ | Parameter | Type | Description | Required |
169
+ |-----------|------|-------------|----------|
170
+ | `path` | string | Absolute path to the directory to search in | Yes |
171
+ | `pattern` | string | The ast-grep pattern to search for | Yes |
172
+ | `language` | string | The programming language to search in | No |
173
+ | `ignore` | string[] | Custom patterns to ignore | No |
174
+ | `allowTests` | boolean | Allow test files and test code blocks in results | No |
175
+ | `maxResults` | number | Maximum number of results to return | No |
176
+ | `format` | string | Output format ('markdown', 'plain', 'json', 'color') | No |
177
+
178
+ #### Example
179
+
180
+ ```json
181
+ {
182
+ "path": "/path/to/your/project",
183
+ "pattern": "fn $NAME($$$PARAMS) $$$BODY",
184
+ "language": "rust"
185
+ }
186
+ ```
187
+
188
+ #### Pattern Syntax
189
+
190
+ - `$NAME`: Matches an identifier (e.g., function name)
191
+ - `$$$PARAMS`: Matches parameter lists
192
+ - `$$$BODY`: Matches function bodies
193
+ - `$$$FIELDS`: Matches struct/class fields
194
+ - `$$$METHODS`: Matches class methods
195
+
196
+ ### extract_code
197
+
198
+ Extract code blocks from files based on file paths and optional line numbers.
199
+
200
+ #### Parameters
201
+
202
+ | Parameter | Type | Description | Required |
203
+ |-----------|------|-------------|----------|
204
+ | `path` | string | Absolute path to the directory to search in | Yes |
205
+ | `files` | string[] | Files to extract from (can include line numbers with colon) | Yes |
206
+ | `allowTests` | boolean | Allow test files and test code blocks in results | No |
207
+ | `contextLines` | number | Number of context lines to include | No |
208
+ | `format` | string | Output format ('markdown', 'plain', 'json') | No |
209
+
210
+ #### Example
211
+
212
+ ```json
213
+ {
214
+ "path": "/path/to/your/project",
215
+ "files": ["/path/to/your/project/src/main.rs:42"]
216
+ }
217
+ ```
218
+
219
+ ## Integration with AI Assistants
220
+
221
+ Once configured, you can ask your AI assistant to search your codebase with natural language queries. The AI will translate your request into appropriate Probe commands and display the results.
222
+
223
+ ### Example Queries
224
+
225
+ Here are some examples of natural language queries you can use:
226
+
227
+ - "Do the probe and search my codebase for implementations of the ranking algorithm"
228
+ - "Using probe find all functions related to error handling in the src directory"
229
+ - "Search for code that handles user authentication"
230
+ - "Find all instances where we're using the BM25 algorithm"
231
+ - "Look for functions that process query parameters"
232
+
233
+ ### How It Works
234
+
235
+ 1. You ask a question about your codebase to your AI assistant
236
+ 2. The AI assistant recognizes that Probe can help answer this question
237
+ 3. The assistant formulates an appropriate search query and parameters
238
+ 4. The MCP server executes the Probe search command
239
+ 5. The results are returned to the AI assistant
240
+ 6. The assistant analyzes the code and provides you with an answer
241
+
242
+ ### Technical Details
243
+
244
+ The MCP server:
245
+
246
+ - Receives tool call requests from the AI assistant
247
+ - Parses the request parameters
248
+ - Executes the appropriate Probe command
249
+ - Returns the results to the AI assistant
250
+ - Handles errors and provides appropriate error messages
251
+ - Maintains session-based caching to avoid duplicate results
252
+
253
+ ## Advanced Configuration
254
+
255
+ ### Custom Search Paths
256
+
257
+ You can configure the MCP server to search specific directories by default:
258
+
259
+ ```json
260
+ {
261
+ "mcpServers": {
262
+ "probe": {
263
+ "command": "npx",
264
+ "args": [
265
+ "-y",
266
+ "@probelabs/probe@latest"
267
+ ],
268
+ "env": {
269
+ "PROBE_DEFAULT_PATHS": "/path/to/project1,/path/to/project2"
270
+ }
271
+ }
272
+ }
273
+ }
274
+ ```
275
+
276
+ ### Limiting Results
277
+
278
+ You can set default limits for search results:
279
+
280
+ ```json
281
+ {
282
+ "mcpServers": {
283
+ "probe": {
284
+ "command": "npx",
285
+ "args": [
286
+ "-y",
287
+ "@probelabs/probe@latest"
288
+ ],
289
+ "env": {
290
+ "PROBE_MAX_TOKENS": "20000"
291
+ }
292
+ }
293
+ }
294
+ }
295
+ ```
296
+
297
+ ### Custom Binary Path
298
+
299
+ If you have a custom build of the Probe binary, you can specify its path:
300
+
301
+ ```json
302
+ {
303
+ "mcpServers": {
304
+ "probe": {
305
+ "command": "npx",
306
+ "args": [
307
+ "-y",
308
+ "@probelabs/probe@latest"
309
+ ],
310
+ "env": {
311
+ "PROBE_PATH": "/path/to/custom/probe"
312
+ }
313
+ }
314
+ }
315
+ }
316
+ ```
317
+
318
+ ### Debug Mode
319
+
320
+ Enable debug mode for detailed logging:
321
+
322
+ ```json
323
+ {
324
+ "mcpServers": {
325
+ "probe": {
326
+ "command": "npx",
327
+ "args": [
328
+ "-y",
329
+ "@probelabs/probe@latest"
330
+ ],
331
+ "env": {
332
+ "DEBUG": "1"
333
+ }
334
+ }
335
+ }
336
+ }
337
+ ```
338
+
339
+ ## Implementation Details
340
+
341
+ ### Server Architecture
342
+
343
+ The Probe MCP server is implemented as a Node.js application that:
344
+
345
+ 1. Initializes an MCP server instance
346
+ 2. Sets up tool handlers for search_code, query_code, and extract_code
347
+ 3. Connects to the AI editor using stdio transport
348
+ 4. Handles tool call requests and returns results
349
+
350
+ ### Binary Management
351
+
352
+ The server automatically manages the Probe binary:
353
+
354
+ 1. Checks for an existing binary in the bin directory
355
+ 2. Checks the PROBE_PATH environment variable
356
+ 3. Downloads the binary if not found
357
+ 4. Makes the binary executable
358
+ 5. Tests the binary to ensure it works correctly
359
+
360
+ ### Error Handling
361
+
362
+ The server includes robust error handling:
363
+
364
+ 1. Catches and reports errors during tool execution
365
+ 2. Provides detailed error messages for common issues
366
+ 3. Includes suggestions for resolving errors
367
+ 4. Gracefully handles timeouts and network errors
368
+
369
+ ### Session-Based Caching
370
+
371
+ The server implements session-based caching to avoid showing the same code blocks multiple times:
372
+
373
+ 1. Generates a unique session ID if not provided
374
+ 2. Tracks which code blocks have been shown in the session
375
+ 3. Filters out duplicate results in subsequent searches
376
+ 4. Maintains the cache for the duration of the session
377
+
378
+ ## Integration Examples
379
+
380
+ ### Cline Integration
381
+
382
+ To integrate Probe with Cline:
383
+
384
+ 1. Create a `.cline` directory in your project root
385
+ 2. Create a `mcp_config.json` file with the following content:
386
+
387
+ ```json
388
+ {
389
+ "mcpServers": {
390
+ "probe": {
391
+ "command": "npx",
392
+ "args": [
393
+ "-y",
394
+ "@probelabs/probe@latest"
395
+ ]
396
+ }
397
+ }
398
+ }
399
+ ```
400
+
401
+ 3. Start Cline and ask questions about your codebase
402
+
403
+ ### VSCode Integration
404
+
405
+ To integrate Probe with VSCode AI assistants:
406
+
407
+ 1. Install the appropriate AI assistant extension
408
+ 2. Configure the extension to use the Probe MCP server
409
+ 3. Add the MCP configuration to your settings.json file
410
+
411
+ ### Custom AI Application Integration
412
+
413
+ To integrate Probe with a custom AI application:
414
+
415
+ 1. Implement the MCP client protocol in your application
416
+ 2. Connect to the Probe MCP server using stdio or another supported transport
417
+ 3. Send tool call requests to the server
418
+ 4. Process the results and display them to the user
419
+
420
+ ## Troubleshooting
421
+
422
+ ### Common Issues
423
+
424
+ #### Binary Not Found
425
+
426
+ If you encounter a "Binary not found" error:
427
+
428
+ 1. Check if the Probe binary exists in the expected location
429
+ 2. Set the PROBE_PATH environment variable to the location of your Probe binary
430
+ 3. Try reinstalling the @probelabs/probe@latest package
431
+
432
+ #### Permission Denied
433
+
434
+ If you encounter a "Permission denied" error:
435
+
436
+ 1. Make sure the binary is executable (`chmod +x /path/to/probe`)
437
+ 2. Check if your user has permission to execute the binary
438
+ 3. Try running the MCP server with elevated privileges
439
+
440
+ #### Network Error During Binary Download
441
+
442
+ If you encounter a network error during binary download:
443
+
444
+ 1. Check your internet connection
445
+ 2. Verify that GitHub API is accessible from your network
446
+ 3. Try downloading the binary manually and placing it in the bin directory
447
+
448
+ #### Tool Calls Timeout
449
+
450
+ If tool calls timeout:
451
+
452
+ 1. Increase the timeout value in your AI editor's configuration
453
+ 2. Try a simpler query that will execute faster
454
+ 3. Limit the search scope to a smaller directory
455
+
456
+ #### Empty Search Results
457
+
458
+ If you get empty search results:
459
+
460
+ 1. Check your query syntax
461
+ 2. Try a simpler query
462
+ 3. Verify that the path exists and contains the expected files
463
+ 4. Check if the files are being ignored by default patterns
464
+
465
+ ### Detailed Error Messages
466
+
467
+ The MCP server provides detailed error messages for common issues:
468
+
469
+ - **Version not found**: The specified version of the Probe binary was not found in the repository
470
+ - **Network error**: A network error occurred while downloading the binary
471
+ - **Permission error**: A permission error occurred while downloading or extracting the binary
472
+ - **Binary extraction failed**: The binary could not be extracted from the downloaded archive
473
+ - **Binary execution failed**: The binary could not be executed
474
+
475
+ ## Best Practices
476
+
477
+ 1. **Be Specific**: More specific queries yield better results
478
+ 2. **Mention File Types**: If you're looking for code in specific file types, mention them
479
+ 3. **Mention Directories**: If you know which directory contains the code, include it in your query
480
+ 4. **Use Multiple Queries**: If you don't find what you're looking for, try reformulating your query
481
+ 5. **Combine with Other Tools**: Use Probe alongside other tools for a more comprehensive understanding of your codebase
482
+ 6. **Use Session IDs**: For related searches, use the same session ID to avoid seeing duplicate code blocks
483
+ 7. **Limit Result Size**: Use maxResults and maxTokens to limit the size of results
484
+ 8. **Use Debug Mode**: Enable debug mode for detailed logging when troubleshooting issues
485
+
486
+ ## Advanced Usage
487
+
488
+ ### Custom Tool Implementations
489
+
490
+ You can create custom implementations of the Probe tools for specific use cases:
491
+
492
+ ```javascript
493
+ // Custom search tool implementation
494
+ const customSearchTool = {
495
+ name: 'custom_search',
496
+ description: 'Custom search tool that filters results',
497
+ parameters: {
498
+ type: 'object',
499
+ properties: {
500
+ path: {
501
+ type: 'string',
502
+ description: 'Path to search in'
503
+ },
504
+ query: {
505
+ type: 'string',
506
+ description: 'Search query'
507
+ }
508
+ },
509
+ required: ['path', 'query']
510
+ },
511
+ execute: async ({ path, query }) => {
512
+ // Call the Probe search function
513
+ const results = await search({
514
+ path,
515
+ query,
516
+ maxResults: 10
517
+ });
518
+
519
+ // Apply custom filtering or processing
520
+ const filteredResults = customFilterFunction(results);
521
+
522
+ return filteredResults;
523
+ }
524
+ };
525
+ ```
526
+
527
+ ### Integrating with Multiple AI Assistants
528
+
529
+ You can configure multiple AI assistants to use the same Probe MCP server:
530
+
531
+ ```json
532
+ {
533
+ "mcpServers": {
534
+ "probe": {
535
+ "command": "npx",
536
+ "args": [
537
+ "-y",
538
+ "@probelabs/probe@latest"
539
+ ],
540
+ "env": {
541
+ "PROBE_DEFAULT_PATHS": "/path/to/project"
542
+ }
543
+ }
544
+ }
545
+ }
546
+ ```
547
+
548
+ Then, configure each AI assistant to use the "probe" MCP server.
549
+
550
+ ### Extending the MCP Server
551
+
552
+ You can extend the MCP server with additional tools:
553
+
554
+ 1. Fork the @probelabs/probe repository
555
+ 2. Add new tool implementations
556
+ 3. Build and publish your custom version
557
+ 4. Configure your AI editor to use your custom MCP server
558
+
559
+ ## Security and Privacy Considerations
560
+
561
+ When using the Probe MCP server, consider the following security and privacy implications:
562
+
563
+ ### Security
564
+
565
+ 1. **Code Access**: The MCP server has access to your codebase, so be careful about which directories you allow it to search
566
+ 2. **API Keys**: If your codebase contains API keys or other secrets, be aware that the AI assistant may have access to them
567
+ 3. **Execution Environment**: The MCP server runs with the same permissions as the user who started it
568
+ 4. **Network Access**: The MCP server needs network access to download the Probe binary
569
+ 5. **Binary Verification**: Consider verifying the Probe binary before using it
570
+
571
+ ### Privacy
572
+
573
+ 1. **Local Search Engine**: Probe itself is a fully local semantic code search tool that doesn't require embedding generation or cloud indexing
574
+ 2. **External AI Services**: When using Probe with external AI services (Anthropic, OpenAI, etc.), code snippets found by Probe are sent to those services
575
+ 3. **Data Transmission**: The following data may be transmitted to external AI providers:
576
+ - Your natural language queries
577
+ - Code snippets and context found by Probe's search
578
+ - Conversation history for contextual awareness
579
+ 4. **Sensitive Code**: Be cautious when searching for sensitive or proprietary code that should not be shared with external services
580
+ 5. **Local Model Options**: For maximum privacy, consider using Probe with locally-running AI models to keep all data on your machine
581
+
582
+ ## Related Resources
583
+
584
+ - [Probe GitHub Repository](https://github.com/probelabs/probe)
585
+ - [Model Context Protocol Specification](https://github.com/modelcontextprotocol/mcp)
586
+ - [Probe Node.js SDK](https://github.com/probelabs/probe/tree/main/npm)
587
+ - [Probe AI Chat](https://github.com/probelabs/probe/tree/main/examples/chat)