sirchmunk 0.0.1.post1__tar.gz → 0.0.2__tar.gz

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 (82) hide show
  1. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/PKG-INFO +124 -9
  2. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/README.md +121 -8
  3. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/requirements/core.txt +2 -0
  4. sirchmunk-0.0.2/src/sirchmunk/api/chat.py +1123 -0
  5. sirchmunk-0.0.2/src/sirchmunk/api/components/history_storage.py +402 -0
  6. sirchmunk-0.0.2/src/sirchmunk/api/components/monitor_tracker.py +518 -0
  7. sirchmunk-0.0.2/src/sirchmunk/api/components/settings_storage.py +353 -0
  8. sirchmunk-0.0.2/src/sirchmunk/api/history.py +254 -0
  9. sirchmunk-0.0.2/src/sirchmunk/api/knowledge.py +411 -0
  10. sirchmunk-0.0.2/src/sirchmunk/api/main.py +120 -0
  11. sirchmunk-0.0.2/src/sirchmunk/api/monitor.py +219 -0
  12. sirchmunk-0.0.2/src/sirchmunk/api/run_server.py +54 -0
  13. sirchmunk-0.0.2/src/sirchmunk/api/search.py +230 -0
  14. sirchmunk-0.0.2/src/sirchmunk/api/settings.py +309 -0
  15. sirchmunk-0.0.2/src/sirchmunk/api/tools.py +315 -0
  16. sirchmunk-0.0.2/src/sirchmunk/cli/__init__.py +11 -0
  17. sirchmunk-0.0.2/src/sirchmunk/cli/cli.py +789 -0
  18. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/learnings/knowledge_base.py +5 -2
  19. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/llm/prompts.py +12 -1
  20. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/retrieve/text_retriever.py +186 -2
  21. sirchmunk-0.0.2/src/sirchmunk/scan/__init__.py +1 -0
  22. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/scan/file_scanner.py +2 -2
  23. sirchmunk-0.0.2/src/sirchmunk/scheduler/__init__.py +0 -0
  24. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/knowledge.py +119 -35
  25. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/search.py +384 -26
  26. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/storage/__init__.py +2 -2
  27. sirchmunk-0.0.1.post1/src/sirchmunk/storage/knowledge_manager.py → sirchmunk-0.0.2/src/sirchmunk/storage/knowledge_storage.py +265 -60
  28. sirchmunk-0.0.2/src/sirchmunk/utils/constants.py +17 -0
  29. sirchmunk-0.0.2/src/sirchmunk/utils/embedding_util.py +217 -0
  30. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/tokenizer_util.py +36 -1
  31. sirchmunk-0.0.2/src/sirchmunk/version.py +1 -0
  32. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk.egg-info/PKG-INFO +124 -9
  33. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk.egg-info/SOURCES.txt +26 -3
  34. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk.egg-info/requires.txt +2 -0
  35. sirchmunk-0.0.2/src/sirchmunk.egg-info/top_level.txt +2 -0
  36. sirchmunk-0.0.2/src/sirchmunk_mcp/__init__.py +25 -0
  37. sirchmunk-0.0.2/src/sirchmunk_mcp/cli.py +478 -0
  38. sirchmunk-0.0.2/src/sirchmunk_mcp/config.py +276 -0
  39. sirchmunk-0.0.2/src/sirchmunk_mcp/server.py +355 -0
  40. sirchmunk-0.0.2/src/sirchmunk_mcp/service.py +327 -0
  41. sirchmunk-0.0.2/src/sirchmunk_mcp/setup.py +15 -0
  42. sirchmunk-0.0.2/src/sirchmunk_mcp/tools.py +410 -0
  43. sirchmunk-0.0.1.post1/setup.py +0 -5
  44. sirchmunk-0.0.1.post1/src/sirchmunk/utils/constants.py +0 -15
  45. sirchmunk-0.0.1.post1/src/sirchmunk/version.py +0 -1
  46. sirchmunk-0.0.1.post1/src/sirchmunk.egg-info/top_level.txt +0 -1
  47. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/LICENSE +0 -0
  48. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/pyproject.toml +0 -0
  49. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/requirements/docs.txt +0 -0
  50. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/requirements/tests.txt +0 -0
  51. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/requirements/web.txt +0 -0
  52. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/setup.cfg +0 -0
  53. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/__init__.py +0 -0
  54. {sirchmunk-0.0.1.post1/src/sirchmunk/learnings → sirchmunk-0.0.2/src/sirchmunk/api}/__init__.py +0 -0
  55. {sirchmunk-0.0.1.post1/src/sirchmunk/scheduler → sirchmunk-0.0.2/src/sirchmunk/api/components}/__init__.py +0 -0
  56. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/base.py +0 -0
  57. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/insight/__init__.py +0 -0
  58. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/insight/text_insights.py +0 -0
  59. {sirchmunk-0.0.1.post1/src/sirchmunk/retrieve → sirchmunk-0.0.2/src/sirchmunk/learnings}/__init__.py +0 -0
  60. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/learnings/evidence_processor.py +0 -0
  61. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/llm/__init__.py +0 -0
  62. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/llm/openai_chat.py +0 -0
  63. {sirchmunk-0.0.1.post1/src/sirchmunk/scan → sirchmunk-0.0.2/src/sirchmunk/retrieve}/__init__.py +0 -0
  64. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/retrieve/base.py +0 -0
  65. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/scan/base.py +0 -0
  66. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/scan/web_scanner.py +0 -0
  67. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/__init__.py +0 -0
  68. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/cognition.py +0 -0
  69. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/context.py +0 -0
  70. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/metadata.py +0 -0
  71. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/request.py +0 -0
  72. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/response.py +0 -0
  73. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/schema/snapshot.py +0 -0
  74. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/storage/duckdb.py +0 -0
  75. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/__init__.py +0 -0
  76. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/deps.py +0 -0
  77. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/file_utils.py +0 -0
  78. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/install_rga.py +0 -0
  79. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/log_utils.py +0 -0
  80. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk/utils/utils.py +0 -0
  81. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk.egg-info/dependency_links.txt +0 -0
  82. {sirchmunk-0.0.1.post1 → sirchmunk-0.0.2}/src/sirchmunk.egg-info/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sirchmunk
3
- Version: 0.0.1.post1
3
+ Version: 0.0.2
4
4
  Summary: Sirchmunk: From raw data to self-evolving real-time intelligence.
5
5
  Author: ModelScope Team
6
6
  Author-email: contact@modelscope.cn
@@ -34,6 +34,8 @@ Requires-Dist: tqdm
34
34
  Requires-Dist: rapidfuzz
35
35
  Requires-Dist: duckdb
36
36
  Requires-Dist: kreuzberg>=4.0.0rc1
37
+ Requires-Dist: sentence-transformers
38
+ Requires-Dist: modelscope
37
39
  Provides-Extra: web
38
40
  Requires-Dist: fastapi>=0.100.0; extra == "web"
39
41
  Requires-Dist: uvicorn[standard]>=0.24.0; extra == "web"
@@ -103,6 +105,7 @@ Dynamic: license-file
103
105
  [![ripgrep-all](https://img.shields.io/badge/ripgrep--all-Search-E67E22?style=flat-square&logo=rust&logoColor=white)](https://github.com/phiresky/ripgrep-all)
104
106
  [![OpenAI](https://img.shields.io/badge/OpenAI-API-412991?style=flat-square&logo=openai&logoColor=white)](https://github.com/openai/openai-python)
105
107
  [![Kreuzberg](https://img.shields.io/badge/Kreuzberg-Text_Extraction-4CAF50?style=flat-square)](https://github.com/kreuzberg-dev/kreuzberg)
108
+ [![MCP](https://img.shields.io/badge/MCP-Python_SDK-8B5CF6?style=flat-square&logo=python&logoColor=white)](https://github.com/modelcontextprotocol/python-sdk)
106
109
 
107
110
 
108
111
  [**Quick Start**](#-quick-start) · [**Key Features**](#-key-features) · [**Web UI**](#-web-ui) · [**How it Works**](#-how-it-works) · [**FAQ**](#-faq)
@@ -228,6 +231,12 @@ It serves as a unified intelligent hub for AI agents, delivering deep insights a
228
231
 
229
232
  ## 🎉 News
230
233
 
234
+ * 🚀 **Feb 5, 2026**: Release **v0.0.2** — MCP Support, CLI Commands & Knowledge Persistence!
235
+ - **MCP Integration**: Full [Model Context Protocol](https://modelcontextprotocol.io) support, works seamlessly with Claude Desktop and Cursor IDE.
236
+ - **CLI Commands**: New `sirchmunk` CLI with `init`, `config`, `serve`, and `search` commands.
237
+ - **KnowledgeCluster Persistence**: DuckDB-powered storage with Parquet export for efficient knowledge management.
238
+ - **Knowledge Reuse**: Semantic similarity-based cluster retrieval for faster searches via embedding vectors.
239
+
231
240
  * 🎉🎉 Jan 22, 2026: Introducing **Sirchmunk**: Initial Release v0.0.1 Now Available!
232
241
 
233
242
 
@@ -273,9 +282,9 @@ llm = OpenAIChat(
273
282
 
274
283
  async def main():
275
284
 
276
- agent_search = AgenticSearch(llm=llm)
285
+ searcher = AgenticSearch(llm=llm)
277
286
 
278
- result: str = await agent_search.search(
287
+ result: str = await searcher.search(
279
288
  query="How does transformer attention work?",
280
289
  search_paths=["/path/to/documents"],
281
290
  )
@@ -286,11 +295,117 @@ asyncio.run(main())
286
295
  ```
287
296
 
288
297
  **⚠️ Notes:**
289
- - Upon initialization, AgenticSearch automatically checks if ripgrep-all and ripgrep are installed. If they are missing, it will attempt to install them automatically. If the automatic installation fails, please install them manually.
298
+ - Upon initialization, `AgenticSearch` automatically checks if `ripgrep-all` and `ripgrep` are installed. If they are missing, it will attempt to install them automatically. If the automatic installation fails, please install them manually.
290
299
  - References: https://github.com/BurntSushi/ripgrep | https://github.com/phiresky/ripgrep-all
291
300
  - Replace `"your-api-key"`, `"your-base-url"`, `"your-model-name"` and `/path/to/documents` with your actual values.
292
301
 
293
302
 
303
+ ### Command Line Interface
304
+
305
+ Sirchmunk provides a powerful CLI for server management and search operations.
306
+
307
+ #### Installation
308
+
309
+ ```bash
310
+ pip install "sirchmunk[web]"
311
+
312
+ # or install via UV
313
+ uv pip install "sirchmunk[web]"
314
+ ```
315
+
316
+
317
+ #### Initialize
318
+
319
+ ```bash
320
+ # Initialize Sirchmunk with default settings (Default work path: `~/.sirchmunk/`)
321
+ sirchmunk init
322
+
323
+ # Alternatively, initialize with custom work path
324
+ sirchmunk init --work-path /path/to/workspace
325
+ ```
326
+
327
+ #### Configure
328
+
329
+ ```bash
330
+ # Show current configuration
331
+ sirchmunk config
332
+
333
+ # Regenerate configuration file if needed (Default config file: ~/.sirchmunk/.env)
334
+ sirchmunk config --generate
335
+ ```
336
+
337
+ #### Start API Server
338
+
339
+ ```bash
340
+ # Start server with default settings
341
+ sirchmunk serve
342
+
343
+ # Custom host and port
344
+ sirchmunk serve --host 0.0.0.0 --port 8000
345
+
346
+ # Development mode with auto-reload
347
+ sirchmunk serve --reload
348
+ ```
349
+
350
+ #### Search
351
+
352
+ ```bash
353
+ # Search in current directory
354
+ sirchmunk search "How does authentication work?"
355
+
356
+ # Search in specific paths
357
+ sirchmunk search "find all API endpoints" ./src ./docs
358
+
359
+ # Quick filename search
360
+ sirchmunk search "config" --mode FILENAME_ONLY
361
+
362
+ # Output as JSON
363
+ sirchmunk search "database schema" --output json
364
+
365
+ # Use API server (requires running server)
366
+ sirchmunk search "query" --api --api-url http://localhost:8584
367
+ ```
368
+
369
+ #### Available Commands
370
+
371
+ | Command | Description |
372
+ |---------|-------------|
373
+ | `sirchmunk init` | Initialize working directory and configuration |
374
+ | `sirchmunk config` | Show or generate configuration |
375
+ | `sirchmunk serve` | Start the API server |
376
+ | `sirchmunk search` | Perform search queries |
377
+ | `sirchmunk version` | Show version information |
378
+
379
+ ---
380
+
381
+ ## 🔌 MCP Server
382
+
383
+ Sirchmunk provides a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes its intelligent search capabilities as MCP tools. This enables seamless integration with AI assistants like **Claude Desktop** and **Cursor IDE**.
384
+
385
+ ### Quick Start
386
+
387
+ ```bash
388
+ # Install MCP package
389
+ pip install sirchmunk-mcp
390
+
391
+ # Initialize and configure
392
+ sirchmunk-mcp init
393
+ sirchmunk-mcp config --generate
394
+
395
+ # Edit ~/.sirchmunk/.mcp_env with your LLM API key
396
+
397
+ # Test with MCP Inspector
398
+ npx @modelcontextprotocol/inspector sirchmunk-mcp serve
399
+ ```
400
+
401
+ ### Features
402
+
403
+ - **Multi-Mode Search**: DEEP mode for comprehensive analysis, FILENAME_ONLY for fast file discovery
404
+ - **Knowledge Cluster Management**: Automatic extraction, storage, and reuse of knowledge
405
+ - **Standard MCP Protocol**: Works with stdio and Streamable HTTP transports
406
+
407
+ 📖 **For detailed documentation, see [Sirchmunk MCP README](src/sirchmunk_mcp/README.md)**.
408
+
294
409
  ---
295
410
 
296
411
  ## 🖥️ Web UI
@@ -364,10 +479,10 @@ python scripts/stop_web.py
364
479
 
365
480
  ### Data Storage
366
481
 
367
- All persistent data is stored in the configured `WORK_PATH` (default: `~/.sirchmunk/`):
482
+ All persistent data is stored in the configured `SIRCHMUNK_WORK_PATH` (default: `~/.sirchmunk/`):
368
483
 
369
484
  ```
370
- {WORK_PATH}/
485
+ {SIRCHMUNK_WORK_PATH}/
371
486
  ├── .cache/
372
487
  ├── history/ # Chat session history (DuckDB)
373
488
  │ └── chat_history.db
@@ -410,7 +525,7 @@ Any OpenAI-compatible API endpoint, including (but not limited too):
410
525
  Simply specify the path in your search query:
411
526
 
412
527
  ```python
413
- result = await search.search(
528
+ result = await searcher.search(
414
529
  query="Your question",
415
530
  search_paths=["/path/to/folder", "/path/to/file.pdf"]
416
531
  )
@@ -425,7 +540,7 @@ No pre-processing or indexing required!
425
540
 
426
541
  Knowledge clusters are persisted in Parquet format at:
427
542
  ```
428
- {WORK_PATH}/.cache/knowledge/knowledge_clusters.parquet
543
+ {SIRCHMUNK_WORK_PATH}/.cache/knowledge/knowledge_clusters.parquet
429
544
  ```
430
545
 
431
546
  You can query them using DuckDB or the `KnowledgeManager` API.
@@ -437,7 +552,7 @@ You can query them using DuckDB or the `KnowledgeManager` API.
437
552
 
438
553
  1. **Web Dashboard**: Visit the Monitor page for real-time statistics
439
554
  2. **API**: `GET /api/v1/monitor/llm` returns usage metrics
440
- 3. **Code**: Access `search.llm_usages` after search completion
555
+ 3. **Code**: Access `searcher.llm_usages` after search completion
441
556
 
442
557
  </details>
443
558
 
@@ -13,6 +13,7 @@
13
13
  [![ripgrep-all](https://img.shields.io/badge/ripgrep--all-Search-E67E22?style=flat-square&logo=rust&logoColor=white)](https://github.com/phiresky/ripgrep-all)
14
14
  [![OpenAI](https://img.shields.io/badge/OpenAI-API-412991?style=flat-square&logo=openai&logoColor=white)](https://github.com/openai/openai-python)
15
15
  [![Kreuzberg](https://img.shields.io/badge/Kreuzberg-Text_Extraction-4CAF50?style=flat-square)](https://github.com/kreuzberg-dev/kreuzberg)
16
+ [![MCP](https://img.shields.io/badge/MCP-Python_SDK-8B5CF6?style=flat-square&logo=python&logoColor=white)](https://github.com/modelcontextprotocol/python-sdk)
16
17
 
17
18
 
18
19
  [**Quick Start**](#-quick-start) · [**Key Features**](#-key-features) · [**Web UI**](#-web-ui) · [**How it Works**](#-how-it-works) · [**FAQ**](#-faq)
@@ -138,6 +139,12 @@ It serves as a unified intelligent hub for AI agents, delivering deep insights a
138
139
 
139
140
  ## 🎉 News
140
141
 
142
+ * 🚀 **Feb 5, 2026**: Release **v0.0.2** — MCP Support, CLI Commands & Knowledge Persistence!
143
+ - **MCP Integration**: Full [Model Context Protocol](https://modelcontextprotocol.io) support, works seamlessly with Claude Desktop and Cursor IDE.
144
+ - **CLI Commands**: New `sirchmunk` CLI with `init`, `config`, `serve`, and `search` commands.
145
+ - **KnowledgeCluster Persistence**: DuckDB-powered storage with Parquet export for efficient knowledge management.
146
+ - **Knowledge Reuse**: Semantic similarity-based cluster retrieval for faster searches via embedding vectors.
147
+
141
148
  * 🎉🎉 Jan 22, 2026: Introducing **Sirchmunk**: Initial Release v0.0.1 Now Available!
142
149
 
143
150
 
@@ -183,9 +190,9 @@ llm = OpenAIChat(
183
190
 
184
191
  async def main():
185
192
 
186
- agent_search = AgenticSearch(llm=llm)
193
+ searcher = AgenticSearch(llm=llm)
187
194
 
188
- result: str = await agent_search.search(
195
+ result: str = await searcher.search(
189
196
  query="How does transformer attention work?",
190
197
  search_paths=["/path/to/documents"],
191
198
  )
@@ -196,11 +203,117 @@ asyncio.run(main())
196
203
  ```
197
204
 
198
205
  **⚠️ Notes:**
199
- - Upon initialization, AgenticSearch automatically checks if ripgrep-all and ripgrep are installed. If they are missing, it will attempt to install them automatically. If the automatic installation fails, please install them manually.
206
+ - Upon initialization, `AgenticSearch` automatically checks if `ripgrep-all` and `ripgrep` are installed. If they are missing, it will attempt to install them automatically. If the automatic installation fails, please install them manually.
200
207
  - References: https://github.com/BurntSushi/ripgrep | https://github.com/phiresky/ripgrep-all
201
208
  - Replace `"your-api-key"`, `"your-base-url"`, `"your-model-name"` and `/path/to/documents` with your actual values.
202
209
 
203
210
 
211
+ ### Command Line Interface
212
+
213
+ Sirchmunk provides a powerful CLI for server management and search operations.
214
+
215
+ #### Installation
216
+
217
+ ```bash
218
+ pip install "sirchmunk[web]"
219
+
220
+ # or install via UV
221
+ uv pip install "sirchmunk[web]"
222
+ ```
223
+
224
+
225
+ #### Initialize
226
+
227
+ ```bash
228
+ # Initialize Sirchmunk with default settings (Default work path: `~/.sirchmunk/`)
229
+ sirchmunk init
230
+
231
+ # Alternatively, initialize with custom work path
232
+ sirchmunk init --work-path /path/to/workspace
233
+ ```
234
+
235
+ #### Configure
236
+
237
+ ```bash
238
+ # Show current configuration
239
+ sirchmunk config
240
+
241
+ # Regenerate configuration file if needed (Default config file: ~/.sirchmunk/.env)
242
+ sirchmunk config --generate
243
+ ```
244
+
245
+ #### Start API Server
246
+
247
+ ```bash
248
+ # Start server with default settings
249
+ sirchmunk serve
250
+
251
+ # Custom host and port
252
+ sirchmunk serve --host 0.0.0.0 --port 8000
253
+
254
+ # Development mode with auto-reload
255
+ sirchmunk serve --reload
256
+ ```
257
+
258
+ #### Search
259
+
260
+ ```bash
261
+ # Search in current directory
262
+ sirchmunk search "How does authentication work?"
263
+
264
+ # Search in specific paths
265
+ sirchmunk search "find all API endpoints" ./src ./docs
266
+
267
+ # Quick filename search
268
+ sirchmunk search "config" --mode FILENAME_ONLY
269
+
270
+ # Output as JSON
271
+ sirchmunk search "database schema" --output json
272
+
273
+ # Use API server (requires running server)
274
+ sirchmunk search "query" --api --api-url http://localhost:8584
275
+ ```
276
+
277
+ #### Available Commands
278
+
279
+ | Command | Description |
280
+ |---------|-------------|
281
+ | `sirchmunk init` | Initialize working directory and configuration |
282
+ | `sirchmunk config` | Show or generate configuration |
283
+ | `sirchmunk serve` | Start the API server |
284
+ | `sirchmunk search` | Perform search queries |
285
+ | `sirchmunk version` | Show version information |
286
+
287
+ ---
288
+
289
+ ## 🔌 MCP Server
290
+
291
+ Sirchmunk provides a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes its intelligent search capabilities as MCP tools. This enables seamless integration with AI assistants like **Claude Desktop** and **Cursor IDE**.
292
+
293
+ ### Quick Start
294
+
295
+ ```bash
296
+ # Install MCP package
297
+ pip install sirchmunk-mcp
298
+
299
+ # Initialize and configure
300
+ sirchmunk-mcp init
301
+ sirchmunk-mcp config --generate
302
+
303
+ # Edit ~/.sirchmunk/.mcp_env with your LLM API key
304
+
305
+ # Test with MCP Inspector
306
+ npx @modelcontextprotocol/inspector sirchmunk-mcp serve
307
+ ```
308
+
309
+ ### Features
310
+
311
+ - **Multi-Mode Search**: DEEP mode for comprehensive analysis, FILENAME_ONLY for fast file discovery
312
+ - **Knowledge Cluster Management**: Automatic extraction, storage, and reuse of knowledge
313
+ - **Standard MCP Protocol**: Works with stdio and Streamable HTTP transports
314
+
315
+ 📖 **For detailed documentation, see [Sirchmunk MCP README](src/sirchmunk_mcp/README.md)**.
316
+
204
317
  ---
205
318
 
206
319
  ## 🖥️ Web UI
@@ -274,10 +387,10 @@ python scripts/stop_web.py
274
387
 
275
388
  ### Data Storage
276
389
 
277
- All persistent data is stored in the configured `WORK_PATH` (default: `~/.sirchmunk/`):
390
+ All persistent data is stored in the configured `SIRCHMUNK_WORK_PATH` (default: `~/.sirchmunk/`):
278
391
 
279
392
  ```
280
- {WORK_PATH}/
393
+ {SIRCHMUNK_WORK_PATH}/
281
394
  ├── .cache/
282
395
  ├── history/ # Chat session history (DuckDB)
283
396
  │ └── chat_history.db
@@ -320,7 +433,7 @@ Any OpenAI-compatible API endpoint, including (but not limited too):
320
433
  Simply specify the path in your search query:
321
434
 
322
435
  ```python
323
- result = await search.search(
436
+ result = await searcher.search(
324
437
  query="Your question",
325
438
  search_paths=["/path/to/folder", "/path/to/file.pdf"]
326
439
  )
@@ -335,7 +448,7 @@ No pre-processing or indexing required!
335
448
 
336
449
  Knowledge clusters are persisted in Parquet format at:
337
450
  ```
338
- {WORK_PATH}/.cache/knowledge/knowledge_clusters.parquet
451
+ {SIRCHMUNK_WORK_PATH}/.cache/knowledge/knowledge_clusters.parquet
339
452
  ```
340
453
 
341
454
  You can query them using DuckDB or the `KnowledgeManager` API.
@@ -347,7 +460,7 @@ You can query them using DuckDB or the `KnowledgeManager` API.
347
460
 
348
461
  1. **Web Dashboard**: Visit the Monitor page for real-time statistics
349
462
  2. **API**: `GET /api/v1/monitor/llm` returns usage metrics
350
- 3. **Code**: Access `search.llm_usages` after search completion
463
+ 3. **Code**: Access `searcher.llm_usages` after search completion
351
464
 
352
465
  </details>
353
466
 
@@ -13,3 +13,5 @@ tqdm
13
13
  rapidfuzz
14
14
  duckdb
15
15
  kreuzberg>=4.0.0rc1
16
+ sentence-transformers
17
+ modelscope