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.
- documentation_search_enhanced/__init__.py +14 -0
- documentation_search_enhanced/__main__.py +6 -0
- documentation_search_enhanced/config.json +1674 -0
- documentation_search_enhanced/config_manager.py +233 -0
- documentation_search_enhanced/config_validator.py +79 -0
- documentation_search_enhanced/content_enhancer.py +578 -0
- documentation_search_enhanced/docker_manager.py +87 -0
- documentation_search_enhanced/logger.py +179 -0
- documentation_search_enhanced/main.py +2170 -0
- documentation_search_enhanced/project_generator.py +260 -0
- documentation_search_enhanced/project_scanner.py +85 -0
- documentation_search_enhanced/reranker.py +230 -0
- documentation_search_enhanced/site_index_builder.py +274 -0
- documentation_search_enhanced/site_index_downloader.py +222 -0
- documentation_search_enhanced/site_search.py +1325 -0
- documentation_search_enhanced/smart_search.py +473 -0
- documentation_search_enhanced/snyk_integration.py +657 -0
- documentation_search_enhanced/vector_search.py +303 -0
- documentation_search_enhanced/version_resolver.py +189 -0
- documentation_search_enhanced/vulnerability_scanner.py +545 -0
- documentation_search_enhanced/web_scraper.py +117 -0
- iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/METADATA +195 -0
- iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/RECORD +26 -0
- iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/WHEEL +4 -0
- iflow_mcp_anton_prosterity_documentation_search_enhanced-1.9.0.dist-info/entry_points.txt +2 -0
- 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
|
+
[](https://github.com/antonmishel/documentation-search-mcp/actions/workflows/ci.yml)
|
|
43
|
+
[](https://github.com/antonmishel/documentation-search-mcp/actions/workflows/security.yml)
|
|
44
|
+
[](https://pypi.org/project/documentation-search-enhanced/)
|
|
45
|
+
[](https://www.python.org/downloads/)
|
|
46
|
+
[](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,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.
|