iflow-mcp_anton-prosterity-documentation-search-enhanced 1.9.0__py3-none-any.whl

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 (26) hide show
  1. documentation_search_enhanced/__init__.py +14 -0
  2. documentation_search_enhanced/__main__.py +6 -0
  3. documentation_search_enhanced/config.json +1674 -0
  4. documentation_search_enhanced/config_manager.py +233 -0
  5. documentation_search_enhanced/config_validator.py +79 -0
  6. documentation_search_enhanced/content_enhancer.py +578 -0
  7. documentation_search_enhanced/docker_manager.py +87 -0
  8. documentation_search_enhanced/logger.py +179 -0
  9. documentation_search_enhanced/main.py +2170 -0
  10. documentation_search_enhanced/project_generator.py +260 -0
  11. documentation_search_enhanced/project_scanner.py +85 -0
  12. documentation_search_enhanced/reranker.py +230 -0
  13. documentation_search_enhanced/site_index_builder.py +274 -0
  14. documentation_search_enhanced/site_index_downloader.py +222 -0
  15. documentation_search_enhanced/site_search.py +1325 -0
  16. documentation_search_enhanced/smart_search.py +473 -0
  17. documentation_search_enhanced/snyk_integration.py +657 -0
  18. documentation_search_enhanced/vector_search.py +303 -0
  19. documentation_search_enhanced/version_resolver.py +189 -0
  20. documentation_search_enhanced/vulnerability_scanner.py +545 -0
  21. documentation_search_enhanced/web_scraper.py +117 -0
  22. iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/METADATA +195 -0
  23. iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/RECORD +26 -0
  24. iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/WHEEL +4 -0
  25. iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/entry_points.txt +2 -0
  26. iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,195 @@
1
+ Metadata-Version: 2.4
2
+ Name: iflow-mcp_anton-prosterity-documentation-search-enhanced
3
+ Version: 1.9.0
4
+ Summary: Enhanced MCP server for searching documentation with OSINT vulnerability scanning, security analysis, and AWS-style deployment
5
+ Project-URL: Homepage, https://github.com/anton-prosterity/documentation-search-mcp
6
+ Project-URL: Repository, https://github.com/anton-prosterity/documentation-search-mcp
7
+ Project-URL: Issues, https://github.com/anton-prosterity/documentation-search-mcp/issues
8
+ Author-email: Anton Mishel <your-email@example.com>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,assistant,documentation,fastapi,langchain,mcp,osint,osv,search,security,vulnerability
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
19
+ Classifier: Topic :: Software Development :: Documentation
20
+ Requires-Python: >=3.12
21
+ Requires-Dist: beautifulsoup4>=4.13.4
22
+ Requires-Dist: httpx>=0.28.1
23
+ Requires-Dist: mcp[cli]>=1.23.0
24
+ Requires-Dist: playwright>=1.40.0
25
+ Requires-Dist: pydantic>=2.0
26
+ Requires-Dist: python-dotenv>=1.0.0
27
+ Requires-Dist: pyyaml>=6.0.1
28
+ Provides-Extra: dev
29
+ Requires-Dist: black>=23.0.0; extra == 'dev'
30
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
31
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
32
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
33
+ Requires-Dist: twine>=4.0.0; extra == 'dev'
34
+ Provides-Extra: vector
35
+ Requires-Dist: faiss-cpu>=1.7.4; extra == 'vector'
36
+ Requires-Dist: numpy>=1.24.0; extra == 'vector'
37
+ Requires-Dist: sentence-transformers>=2.2.0; extra == 'vector'
38
+ Description-Content-Type: text/markdown
39
+
40
+ # Documentation Search MCP Server
41
+
42
+ [![CI](https://github.com/antonmishel/documentation-search-mcp/workflows/CI%20-%20Test%20&%20Quality/badge.svg)](https://github.com/antonmishel/documentation-search-mcp/actions/workflows/ci.yml)
43
+ [![Security Scan](https://github.com/antonmishel/documentation-search-mcp/workflows/Security%20Scan/badge.svg)](https://github.com/antonmishel/documentation-search-mcp/actions/workflows/security.yml)
44
+ [![PyPI version](https://badge.fury.io/py/documentation-search-enhanced.svg)](https://pypi.org/project/documentation-search-enhanced/)
45
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
46
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
+
48
+ MCP server for searching documentation, scanning dependencies for vulnerabilities, and generating project boilerplate. Works with Claude Desktop, Cursor, and other MCP clients.
49
+
50
+ **📚 [Read the comprehensive tutorial](TUTORIAL.md)** for detailed examples and workflows.
51
+
52
+ ## Features
53
+
54
+ - Search 190+ curated documentation sources with optional semantic vector search
55
+ - Scan Python projects for vulnerabilities (Snyk, Safety, OSV)
56
+ - Generate FastAPI and React project starters
57
+ - Learning paths and code examples
58
+
59
+ ## Installation
60
+
61
+ ```bash
62
+ # Recommended: use uvx (install uv from https://docs.astral.sh/uv)
63
+ uvx documentation-search-enhanced@1.9.0
64
+
65
+ # Or with pip in a virtual environment
66
+ pip install documentation-search-enhanced==1.9.0
67
+
68
+ # Optional: AI semantic search (Python 3.12 only, adds ~600MB)
69
+ pip install documentation-search-enhanced[vector]==1.9.0
70
+ ```
71
+
72
+ ## Configuration
73
+
74
+ ### Claude Desktop
75
+
76
+ Find your uvx path: `which uvx`
77
+
78
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
79
+
80
+ ```json
81
+ {
82
+ "mcpServers": {
83
+ "documentation-search-enhanced": {
84
+ "command": "/Users/yourusername/.local/bin/uvx",
85
+ "args": ["documentation-search-enhanced@1.9.0"],
86
+ "env": {
87
+ "SERPER_API_KEY": "optional_key_here"
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ Replace `/Users/yourusername/.local/bin/uvx` with your actual uvx path.
95
+
96
+ ### Codex CLI
97
+
98
+ ```bash
99
+ # Find your uvx path first
100
+ which uvx
101
+
102
+ # Then add with full path (replace with your actual path)
103
+ codex mcp add documentation-search-enhanced \
104
+ -- /Users/yourusername/.local/bin/uvx documentation-search-enhanced@1.9.0
105
+
106
+ # Or if uvx is in PATH:
107
+ codex mcp add documentation-search-enhanced \
108
+ -- uvx documentation-search-enhanced@1.9.0
109
+ ```
110
+
111
+ **With SERPER API Key** (enables live web search):
112
+ ```bash
113
+ codex mcp add documentation-search-enhanced \
114
+ --env SERPER_API_KEY=your_key_here \
115
+ -- /Users/yourusername/.local/bin/uvx documentation-search-enhanced@1.9.0
116
+ ```
117
+
118
+ **Without SERPER API Key** (uses prebuilt index from GitHub Releases):
119
+ ```bash
120
+ codex mcp add documentation-search-enhanced \
121
+ -- /Users/yourusername/.local/bin/uvx documentation-search-enhanced@1.9.0
122
+ ```
123
+
124
+ If you get a timeout on first run, pre-download dependencies:
125
+ ```bash
126
+ uvx documentation-search-enhanced@1.9.0
127
+ ```
128
+
129
+ ### Environment Variables
130
+
131
+ - `SERPER_API_KEY` - Optional. Enables live web search. Without it, uses prebuilt index from GitHub Releases.
132
+ - `DOCS_SITE_INDEX_AUTO_DOWNLOAD` - Set to `false` to disable automatic index downloads
133
+ - `DOCS_SITE_INDEX_PATH` - Custom path for documentation index
134
+
135
+ Set `server_config.features.real_time_search=false` in your config to disable live crawling.
136
+
137
+ ## Semantic Search (Optional)
138
+
139
+ The `[vector]` extra adds semantic search using sentence-transformers (all-MiniLM-L6-v2) with hybrid reranking:
140
+
141
+ - 50% semantic similarity (cosine)
142
+ - 30% keyword matching
143
+ - 20% source authority
144
+
145
+ Only works on Python 3.12 (PyTorch limitation). Python 3.13 users get keyword-based search.
146
+
147
+ To disable vector search even when installed:
148
+ ```python
149
+ semantic_search(query="FastAPI auth", libraries=["fastapi"], use_vector_rerank=False)
150
+ ```
151
+
152
+ ## Available Tools
153
+
154
+ Core MCP tools:
155
+ - `semantic_search` - Search documentation
156
+ - `get_docs` - Fetch specific documentation
157
+ - `get_learning_path` - Generate learning roadmap
158
+ - `get_code_examples` - Find code snippets
159
+ - `scan_project_dependencies` - Vulnerability scan
160
+ - `snyk_scan_project` - Detailed Snyk analysis
161
+ - `generate_project_starter` - Create project boilerplate
162
+ - `manage_dev_environment` - Generate docker-compose files
163
+ - `compare_library_security` - Compare library vulnerabilities
164
+
165
+ ## Development
166
+
167
+ ```bash
168
+ git clone https://github.com/anton-prosterity/documentation-search-mcp.git
169
+ cd documentation-search-mcp
170
+ uv sync --all-extras
171
+ uv run python -m documentation_search_enhanced.main
172
+ ```
173
+
174
+ ### Testing
175
+
176
+ ```bash
177
+ uv run pytest --ignore=pytest-test-project # Core tests
178
+ uv run ruff check src # Linting
179
+ uv run ruff format src --check # Format check
180
+ ```
181
+
182
+ ### Configuration
183
+
184
+ Use the `get_current_config` tool to export current settings to `config.json`. Validate with:
185
+ ```bash
186
+ uv run python src/documentation_search_enhanced/config_validator.py
187
+ ```
188
+
189
+ ## Contributing
190
+
191
+ See `CONTRIBUTING.md` for guidelines. Use Conventional Commits for commit messages.
192
+
193
+ ## License
194
+
195
+ MIT License - see `LICENSE` for details.
@@ -0,0 +1,26 @@
1
+ documentation_search_enhanced/__init__.py,sha256=cflYnRVxahapQaCJD6m3U-bVn-POevFzHM7NJ7Xyxuo,339
2
+ documentation_search_enhanced/__main__.py,sha256=Pz0FXFQw0m25k0ShyLyxnb3BZ_lmKMslDegIcrc5wts,136
3
+ documentation_search_enhanced/config.json,sha256=VjRptzJ9uAn7C78QP8xK6aGuuLzhhqXiV0vRdnS6sh8,66899
4
+ documentation_search_enhanced/config_manager.py,sha256=VBqju4Iq3RZyPN_0sOkjKvnNUVYBOa-uZWHcL7AmRKY,8398
5
+ documentation_search_enhanced/config_validator.py,sha256=sx1lWnV6BFWFSil2i5Co4gTC0srltvbQp2siI_n55Z0,2152
6
+ documentation_search_enhanced/content_enhancer.py,sha256=4q0uj9_qBtcNovBwX1jgpNuq7RXauPGbYmXGidx2ifU,21147
7
+ documentation_search_enhanced/docker_manager.py,sha256=GjHBwF75OOkS9ikChkLUCBTf9D948dEUDsMWdwJUNAg,2643
8
+ documentation_search_enhanced/logger.py,sha256=RL8dvcSQZkVqQIKwNK3BT9_nmCBzZlEXx03_vXe3xlc,5389
9
+ documentation_search_enhanced/main.py,sha256=9yCWbfxnAwdJ7EEtMYWjx03UJEbJdEwgzWdXkzJJNjw,74533
10
+ documentation_search_enhanced/project_generator.py,sha256=FtoQeqgvxqMQvgy9R5wZ649e6evhr9gE0pTo_85l9rM,5881
11
+ documentation_search_enhanced/project_scanner.py,sha256=1ZoLMINXn1uY7JGdSUnj7FLqJOyOjIIS4AGxgZWfwpg,2701
12
+ documentation_search_enhanced/reranker.py,sha256=elT-96cfvJUx7C-UvV9sAeRIeIAbkKb7MAx8LrGlyOA,7393
13
+ documentation_search_enhanced/site_index_builder.py,sha256=Xu0dHr8tJfSE9cW8c0zdHUPW2_ne3hfqANkNZUuq2Aw,8880
14
+ documentation_search_enhanced/site_index_downloader.py,sha256=txED6ejgyJrspm4Den6fqpwyzTaHpVlnvx4Uu34jTVg,6776
15
+ documentation_search_enhanced/site_search.py,sha256=0E0vygKEC_02gI689QW9grkybN0T-C3t47fkypZdEVc,41789
16
+ documentation_search_enhanced/smart_search.py,sha256=n-UtZVgusx7u44AvnadIPMp5TqYzcXT-3V-cy8uOd9Y,16824
17
+ documentation_search_enhanced/snyk_integration.py,sha256=P3qbzxHQLvjCdyayBzH8EKyTVqWLWRgLX9AzybUA9Qo,23833
18
+ documentation_search_enhanced/vector_search.py,sha256=T_ImmRRNqqQVcHvX-peL8zn6Bc_Q7rSUliQxEHmUObM,9276
19
+ documentation_search_enhanced/version_resolver.py,sha256=fYmjrGhk_-NVCwKTpRnmtL658cWVlCRpVIqjHw2fihY,6578
20
+ documentation_search_enhanced/vulnerability_scanner.py,sha256=YOg4lg_47XeBuvEgh1oB2ba0cAsB1rTBQXMFuWW5ixU,20388
21
+ documentation_search_enhanced/web_scraper.py,sha256=ntLLCf1V4W9AL6nppEBciLm_wUMfNPKD0a4D7n9OcJE,4211
22
+ iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/METADATA,sha256=qbSkzyKMUvLJ4x9vO0nMxlSc2Jg53E1U97QM-v3PnLs,6947
23
+ iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
24
+ iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/entry_points.txt,sha256=sy1CibFyGdYhC4-FRDoCytTqlR-gdgSRHmamMFpsmUI,117
25
+ iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/licenses/LICENSE,sha256=Wh7rAOlQ9yAfxGTlIm-6egm_kv5Tv6AQ7ca_oIZZf4o,1069
26
+ iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ iflow-mcp_anton-prosterity-documentation-search-enhanced = documentation_search_enhanced.main:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Anton Mishel
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.