devtoolkit-mcp 0.1.0__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.
@@ -0,0 +1,371 @@
1
+ Metadata-Version: 2.4
2
+ Name: devtoolkit-mcp
3
+ Version: 0.1.0
4
+ Summary: An open-source MCP server providing essential software development tools for AI assistants.
5
+ Keywords: mcp,model-context-protocol,developer-tools,python,ai,code-analysis
6
+ Author: Prashil001
7
+ Author-email: Prashil001 <151838442+Prashil001@users.noreply.github.com>
8
+ License-Expression: MIT
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Requires-Dist: fastmcp>=4.1.6
17
+ Requires-Dist: httpx>=0.28.1
18
+ Requires-Dist: packaging>=26.3
19
+ Requires-Python: >=3.11
20
+ Project-URL: Homepage, https://github.com/Prashil001/devtoolkit-mcp
21
+ Project-URL: Repository, https://github.com/Prashil001/devtoolkit-mcp
22
+ Project-URL: Issues, https://github.com/Prashil001/devtoolkit-mcp/issues
23
+ Description-Content-Type: text/markdown
24
+
25
+ # DevToolkit MCP
26
+
27
+ **A lightweight, model-independent MCP server that gives AI assistants practical software development tools.**
28
+
29
+ [![PyPI version](https://img.shields.io/pypi/v/devtoolkit-mcp)](https://pypi.org/project/devtoolkit-mcp/)
30
+ [![Python versions](https://img.shields.io/pypi/pyversions/devtoolkit-mcp)](https://pypi.org/project/devtoolkit-mcp/)
31
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
32
+ [![GitHub](https://img.shields.io/badge/GitHub-Repository-black?logo=github)](https://github.com/Prashil001/devtoolkit-mcp)
33
+
34
+ DevToolkit MCP is an open-source **Model Context Protocol (MCP) server** that exposes essential software development utilities as tools that AI assistants can call.
35
+
36
+ It helps AI assistants inspect Python projects, understand code, analyze errors, check dependencies, and execute tests through a standardized MCP interface.
37
+
38
+ The server is designed to be simple, extensible, and independent of any specific AI model or provider.
39
+
40
+ ## Features
41
+
42
+ - **Repository Analysis:** Inspect project structure, file types, and configuration files.
43
+ - **Code Explanation:** Analyze Python code using Abstract Syntax Trees (AST).
44
+ - **Error Analysis:** Extract useful information from Python exceptions and tracebacks.
45
+ - **Dependency Checking:** Identify dependency versions and check for known vulnerabilities.
46
+ - **Test Execution:** Detect and execute pytest or unittest test suites.
47
+ - **MCP Integration:** Connect compatible AI assistants through the Model Context Protocol.
48
+ - **Model Independent:** Works with MCP-compatible clients without requiring a specific LLM provider.
49
+
50
+ ## Available Tools
51
+
52
+ DevToolkit MCP currently provides five tools.
53
+
54
+ ### 1. `analyze_repository`
55
+
56
+ Analyzes a local project directory and returns information about its structure.
57
+
58
+ **Parameters**
59
+
60
+ | Parameter | Type | Default | Description |
61
+ |---|---|---|---|
62
+ | `repository_path` | string | Required | Path to the project directory |
63
+ | `max_files` | integer | 5000 | Maximum number of files to inspect |
64
+
65
+ **Returns**
66
+
67
+ - Project directory information
68
+ - File and directory statistics
69
+ - File extension distribution
70
+ - Detected languages and configuration files
71
+ - Project structure information
72
+
73
+ ### 2. `explain_code`
74
+
75
+ Analyzes Python source code or a Python file using AST parsing.
76
+
77
+ **Parameters**
78
+
79
+ | Parameter | Type | Default | Description |
80
+ |---|---|---|---|
81
+ | `code` | string or null | None | Python source code |
82
+ | `file_path` | string or null | None | Path to a Python file |
83
+
84
+ Provide either `code` or `file_path`.
85
+
86
+ **Returns**
87
+
88
+ - Functions and classes
89
+ - Methods and imports
90
+ - Code structure and statistics
91
+ - Syntax errors, when present
92
+
93
+ ### 3. `analyze_error`
94
+
95
+ Analyzes Python exceptions and traceback text.
96
+
97
+ **Parameters**
98
+
99
+ | Parameter | Type | Description |
100
+ |---|---|---|
101
+ | `error_text` | string | Python exception or traceback |
102
+
103
+ **Returns**
104
+
105
+ - Exception type
106
+ - Error message
107
+ - File and line information, when available
108
+ - Traceback details
109
+ - Structured error information
110
+
111
+ ### 4. `check_dependencies`
112
+
113
+ Checks project dependencies and retrieves package information from external vulnerability and package registries.
114
+
115
+ **Parameters**
116
+
117
+ | Parameter | Type | Description |
118
+ |---|---|---|
119
+ | `project_path` | string | Path to the Python project |
120
+
121
+ **Supported dependency files**
122
+
123
+ - `requirements.txt`
124
+ - `pyproject.toml`
125
+
126
+ **Returns**
127
+
128
+ - Detected dependencies
129
+ - Declared dependency versions
130
+ - Latest available versions from PyPI
131
+ - Known vulnerability information from OSV, when available
132
+
133
+ Network access is required for live PyPI and OSV checks. Network failures are handled without treating unavailable data as a clean security result.
134
+
135
+ ### 5. `run_tests`
136
+
137
+ Automatically detects and executes Python test suites.
138
+
139
+ **Parameters**
140
+
141
+ | Parameter | Type | Default | Description |
142
+ |---|---|---|---|
143
+ | `project_path` | string | Required | Path to the project directory |
144
+ | `timeout` | integer | 120 | Maximum execution time in seconds (1–600) |
145
+
146
+ **Supported frameworks**
147
+
148
+ - pytest
149
+ - unittest
150
+
151
+ **Returns**
152
+
153
+ - Detected testing framework
154
+ - Test execution status
155
+ - Process exit code
156
+ - Test output
157
+ - Timeout or execution error information, when applicable
158
+
159
+ The tool prefers pytest when both frameworks are detected and uses the project's virtual environment when available.
160
+
161
+ ---
162
+
163
+ ## Installation
164
+
165
+ ### Using uv (recommended)
166
+
167
+ ```bash
168
+ uv tool install devtoolkit-mcp
169
+ ```
170
+
171
+ Alternatively, run it without permanently installing:
172
+
173
+ ```bash
174
+ uvx devtoolkit-mcp
175
+ ```
176
+
177
+ ### Using pip
178
+
179
+ ```bash
180
+ pip install devtoolkit-mcp
181
+ ```
182
+
183
+ ## MCP Client Configuration
184
+
185
+ Add DevToolkit MCP to an MCP-compatible client.
186
+
187
+ ### Claude Desktop
188
+
189
+ Open your Claude Desktop configuration file and add:
190
+
191
+ ```json
192
+ {
193
+ "mcpServers": {
194
+ "devtoolkit-mcp": {
195
+ "command": "uvx",
196
+ "args": ["devtoolkit-mcp"]
197
+ }
198
+ }
199
+ }
200
+ ```
201
+
202
+ Restart Claude Desktop after saving the configuration.
203
+
204
+ ### Other MCP-compatible clients
205
+
206
+ Use the following command to launch the server:
207
+
208
+ ```bash
209
+ uvx devtoolkit-mcp
210
+ ```
211
+
212
+ Configure your client to launch this command using its supported MCP transport configuration.
213
+
214
+ ## Example Use Cases
215
+
216
+ Once connected to an MCP-compatible AI assistant, you can ask it to:
217
+
218
+ - "Analyze the structure of my Python project."
219
+ - "Explain the classes and functions in this Python file."
220
+ - "Analyze this traceback and identify the exception."
221
+ - "Check my project's dependencies for outdated or vulnerable packages."
222
+ - "Run the tests in my project and show me the results."
223
+
224
+ The AI assistant decides when to invoke the available tools based on the user's request and the MCP client.
225
+
226
+ ## Architecture
227
+
228
+ ```text
229
+ AI Assistant
230
+ |
231
+ |
232
+ MCP-Compatible Client
233
+ |
234
+ |
235
+ DevToolkit MCP
236
+ |
237
+ +--------+--------+
238
+ | | |
239
+ v v v
240
+ Repository Code Error
241
+ Analysis Analysis Analysis
242
+ |
243
+ +----------------+
244
+ | |
245
+ v v
246
+ Dependency Test
247
+ Checking Execution
248
+ ```
249
+
250
+ DevToolkit MCP uses the Model Context Protocol to expose development utilities through standardized tool interfaces.
251
+
252
+ ## Technology Stack
253
+
254
+ | Technology | Purpose |
255
+ |---|---|
256
+ | Python 3.11+ | Core implementation |
257
+ | FastMCP | MCP server and tool registration |
258
+ | AST | Python source code analysis |
259
+ | httpx | HTTP requests to external APIs |
260
+ | packaging | Python dependency version parsing |
261
+ | pytest | Automated testing |
262
+ | Ruff | Linting and formatting |
263
+ | uv | Python project and package management |
264
+
265
+ ## Project Structure
266
+
267
+ ```text
268
+ devtoolkit-mcp/
269
+ │
270
+ ├── src/
271
+ │ └── devtoolkit_mcp/
272
+ │ ├── tools/
273
+ │ │ ├── repository.py
274
+ │ │ ├── explain_code.py
275
+ │ │ ├── analyze_error.py
276
+ │ │ ├── check_dependencies.py
277
+ │ │ └── run_tests.py
278
+ │ │
279
+ │ └── server.py
280
+ │
281
+ ├── tests/
282
+ │
283
+ ├── .github/
284
+ │ └── workflows/
285
+ │ └── publish.yml
286
+ │
287
+ ├── LICENSE
288
+ ├── README.md
289
+ ├── pyproject.toml
290
+ └── uv.lock
291
+ ```
292
+
293
+ ## Development Setup
294
+
295
+ ### 1. Clone the repository
296
+
297
+ ```bash
298
+ git clone https://github.com/Prashil001/devtoolkit-mcp.git
299
+ cd devtoolkit-mcp
300
+ ```
301
+
302
+ ### 2. Install dependencies
303
+
304
+ ```bash
305
+ uv sync --dev
306
+ ```
307
+
308
+ ### 3. Run tests
309
+
310
+ ```bash
311
+ uv run pytest -v
312
+ ```
313
+
314
+ ### 4. Run linting
315
+
316
+ ```bash
317
+ uv run ruff check .
318
+ ```
319
+
320
+ ### 5. Check formatting
321
+
322
+ ```bash
323
+ uv run ruff format --check .
324
+ ```
325
+
326
+ ### 6. Run the MCP server
327
+
328
+ ```bash
329
+ uv run devtoolkit-mcp
330
+ ```
331
+
332
+ ## Security Considerations
333
+
334
+ - Repository inspection is restricted to validated local project directories.
335
+ - Test execution uses subprocesses without shell command interpretation.
336
+ - Test execution has a configurable timeout.
337
+ - Dependency vulnerability checks use external public APIs.
338
+ - Tool execution should only be allowed on project directories the user trusts.
339
+ - Do not expose sensitive project files or credentials to AI clients unnecessarily.
340
+
341
+ ## Contributing
342
+
343
+ Contributions, bug reports, and feature suggestions are welcome.
344
+
345
+ 1. Fork the repository.
346
+ 2. Create a feature branch.
347
+ 3. Make your changes.
348
+ 4. Add or update tests.
349
+ 5. Run the test suite and Ruff checks.
350
+ 6. Submit a pull request.
351
+
352
+ Please keep contributions focused on improving the existing five tools unless the project scope is explicitly expanded.
353
+
354
+ ## License
355
+
356
+ This project is licensed under the **MIT License**.
357
+
358
+ See the [LICENSE](LICENSE) file for details.
359
+
360
+ ## Author
361
+
362
+ **Prashil001**
363
+
364
+ - GitHub: https://github.com/Prashil001
365
+ - Repository: https://github.com/Prashil001/devtoolkit-mcp
366
+
367
+ ---
368
+
369
+ If you find DevToolkit MCP useful, consider giving the repository a ⭐ on GitHub.
370
+
371
+ **Built to make AI-assisted software development more capable through MCP.**
@@ -0,0 +1,347 @@
1
+ # DevToolkit MCP
2
+
3
+ **A lightweight, model-independent MCP server that gives AI assistants practical software development tools.**
4
+
5
+ [![PyPI version](https://img.shields.io/pypi/v/devtoolkit-mcp)](https://pypi.org/project/devtoolkit-mcp/)
6
+ [![Python versions](https://img.shields.io/pypi/pyversions/devtoolkit-mcp)](https://pypi.org/project/devtoolkit-mcp/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+ [![GitHub](https://img.shields.io/badge/GitHub-Repository-black?logo=github)](https://github.com/Prashil001/devtoolkit-mcp)
9
+
10
+ DevToolkit MCP is an open-source **Model Context Protocol (MCP) server** that exposes essential software development utilities as tools that AI assistants can call.
11
+
12
+ It helps AI assistants inspect Python projects, understand code, analyze errors, check dependencies, and execute tests through a standardized MCP interface.
13
+
14
+ The server is designed to be simple, extensible, and independent of any specific AI model or provider.
15
+
16
+ ## Features
17
+
18
+ - **Repository Analysis:** Inspect project structure, file types, and configuration files.
19
+ - **Code Explanation:** Analyze Python code using Abstract Syntax Trees (AST).
20
+ - **Error Analysis:** Extract useful information from Python exceptions and tracebacks.
21
+ - **Dependency Checking:** Identify dependency versions and check for known vulnerabilities.
22
+ - **Test Execution:** Detect and execute pytest or unittest test suites.
23
+ - **MCP Integration:** Connect compatible AI assistants through the Model Context Protocol.
24
+ - **Model Independent:** Works with MCP-compatible clients without requiring a specific LLM provider.
25
+
26
+ ## Available Tools
27
+
28
+ DevToolkit MCP currently provides five tools.
29
+
30
+ ### 1. `analyze_repository`
31
+
32
+ Analyzes a local project directory and returns information about its structure.
33
+
34
+ **Parameters**
35
+
36
+ | Parameter | Type | Default | Description |
37
+ |---|---|---|---|
38
+ | `repository_path` | string | Required | Path to the project directory |
39
+ | `max_files` | integer | 5000 | Maximum number of files to inspect |
40
+
41
+ **Returns**
42
+
43
+ - Project directory information
44
+ - File and directory statistics
45
+ - File extension distribution
46
+ - Detected languages and configuration files
47
+ - Project structure information
48
+
49
+ ### 2. `explain_code`
50
+
51
+ Analyzes Python source code or a Python file using AST parsing.
52
+
53
+ **Parameters**
54
+
55
+ | Parameter | Type | Default | Description |
56
+ |---|---|---|---|
57
+ | `code` | string or null | None | Python source code |
58
+ | `file_path` | string or null | None | Path to a Python file |
59
+
60
+ Provide either `code` or `file_path`.
61
+
62
+ **Returns**
63
+
64
+ - Functions and classes
65
+ - Methods and imports
66
+ - Code structure and statistics
67
+ - Syntax errors, when present
68
+
69
+ ### 3. `analyze_error`
70
+
71
+ Analyzes Python exceptions and traceback text.
72
+
73
+ **Parameters**
74
+
75
+ | Parameter | Type | Description |
76
+ |---|---|---|
77
+ | `error_text` | string | Python exception or traceback |
78
+
79
+ **Returns**
80
+
81
+ - Exception type
82
+ - Error message
83
+ - File and line information, when available
84
+ - Traceback details
85
+ - Structured error information
86
+
87
+ ### 4. `check_dependencies`
88
+
89
+ Checks project dependencies and retrieves package information from external vulnerability and package registries.
90
+
91
+ **Parameters**
92
+
93
+ | Parameter | Type | Description |
94
+ |---|---|---|
95
+ | `project_path` | string | Path to the Python project |
96
+
97
+ **Supported dependency files**
98
+
99
+ - `requirements.txt`
100
+ - `pyproject.toml`
101
+
102
+ **Returns**
103
+
104
+ - Detected dependencies
105
+ - Declared dependency versions
106
+ - Latest available versions from PyPI
107
+ - Known vulnerability information from OSV, when available
108
+
109
+ Network access is required for live PyPI and OSV checks. Network failures are handled without treating unavailable data as a clean security result.
110
+
111
+ ### 5. `run_tests`
112
+
113
+ Automatically detects and executes Python test suites.
114
+
115
+ **Parameters**
116
+
117
+ | Parameter | Type | Default | Description |
118
+ |---|---|---|---|
119
+ | `project_path` | string | Required | Path to the project directory |
120
+ | `timeout` | integer | 120 | Maximum execution time in seconds (1–600) |
121
+
122
+ **Supported frameworks**
123
+
124
+ - pytest
125
+ - unittest
126
+
127
+ **Returns**
128
+
129
+ - Detected testing framework
130
+ - Test execution status
131
+ - Process exit code
132
+ - Test output
133
+ - Timeout or execution error information, when applicable
134
+
135
+ The tool prefers pytest when both frameworks are detected and uses the project's virtual environment when available.
136
+
137
+ ---
138
+
139
+ ## Installation
140
+
141
+ ### Using uv (recommended)
142
+
143
+ ```bash
144
+ uv tool install devtoolkit-mcp
145
+ ```
146
+
147
+ Alternatively, run it without permanently installing:
148
+
149
+ ```bash
150
+ uvx devtoolkit-mcp
151
+ ```
152
+
153
+ ### Using pip
154
+
155
+ ```bash
156
+ pip install devtoolkit-mcp
157
+ ```
158
+
159
+ ## MCP Client Configuration
160
+
161
+ Add DevToolkit MCP to an MCP-compatible client.
162
+
163
+ ### Claude Desktop
164
+
165
+ Open your Claude Desktop configuration file and add:
166
+
167
+ ```json
168
+ {
169
+ "mcpServers": {
170
+ "devtoolkit-mcp": {
171
+ "command": "uvx",
172
+ "args": ["devtoolkit-mcp"]
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ Restart Claude Desktop after saving the configuration.
179
+
180
+ ### Other MCP-compatible clients
181
+
182
+ Use the following command to launch the server:
183
+
184
+ ```bash
185
+ uvx devtoolkit-mcp
186
+ ```
187
+
188
+ Configure your client to launch this command using its supported MCP transport configuration.
189
+
190
+ ## Example Use Cases
191
+
192
+ Once connected to an MCP-compatible AI assistant, you can ask it to:
193
+
194
+ - "Analyze the structure of my Python project."
195
+ - "Explain the classes and functions in this Python file."
196
+ - "Analyze this traceback and identify the exception."
197
+ - "Check my project's dependencies for outdated or vulnerable packages."
198
+ - "Run the tests in my project and show me the results."
199
+
200
+ The AI assistant decides when to invoke the available tools based on the user's request and the MCP client.
201
+
202
+ ## Architecture
203
+
204
+ ```text
205
+ AI Assistant
206
+ |
207
+ |
208
+ MCP-Compatible Client
209
+ |
210
+ |
211
+ DevToolkit MCP
212
+ |
213
+ +--------+--------+
214
+ | | |
215
+ v v v
216
+ Repository Code Error
217
+ Analysis Analysis Analysis
218
+ |
219
+ +----------------+
220
+ | |
221
+ v v
222
+ Dependency Test
223
+ Checking Execution
224
+ ```
225
+
226
+ DevToolkit MCP uses the Model Context Protocol to expose development utilities through standardized tool interfaces.
227
+
228
+ ## Technology Stack
229
+
230
+ | Technology | Purpose |
231
+ |---|---|
232
+ | Python 3.11+ | Core implementation |
233
+ | FastMCP | MCP server and tool registration |
234
+ | AST | Python source code analysis |
235
+ | httpx | HTTP requests to external APIs |
236
+ | packaging | Python dependency version parsing |
237
+ | pytest | Automated testing |
238
+ | Ruff | Linting and formatting |
239
+ | uv | Python project and package management |
240
+
241
+ ## Project Structure
242
+
243
+ ```text
244
+ devtoolkit-mcp/
245
+ │
246
+ ├── src/
247
+ │ └── devtoolkit_mcp/
248
+ │ ├── tools/
249
+ │ │ ├── repository.py
250
+ │ │ ├── explain_code.py
251
+ │ │ ├── analyze_error.py
252
+ │ │ ├── check_dependencies.py
253
+ │ │ └── run_tests.py
254
+ │ │
255
+ │ └── server.py
256
+ │
257
+ ├── tests/
258
+ │
259
+ ├── .github/
260
+ │ └── workflows/
261
+ │ └── publish.yml
262
+ │
263
+ ├── LICENSE
264
+ ├── README.md
265
+ ├── pyproject.toml
266
+ └── uv.lock
267
+ ```
268
+
269
+ ## Development Setup
270
+
271
+ ### 1. Clone the repository
272
+
273
+ ```bash
274
+ git clone https://github.com/Prashil001/devtoolkit-mcp.git
275
+ cd devtoolkit-mcp
276
+ ```
277
+
278
+ ### 2. Install dependencies
279
+
280
+ ```bash
281
+ uv sync --dev
282
+ ```
283
+
284
+ ### 3. Run tests
285
+
286
+ ```bash
287
+ uv run pytest -v
288
+ ```
289
+
290
+ ### 4. Run linting
291
+
292
+ ```bash
293
+ uv run ruff check .
294
+ ```
295
+
296
+ ### 5. Check formatting
297
+
298
+ ```bash
299
+ uv run ruff format --check .
300
+ ```
301
+
302
+ ### 6. Run the MCP server
303
+
304
+ ```bash
305
+ uv run devtoolkit-mcp
306
+ ```
307
+
308
+ ## Security Considerations
309
+
310
+ - Repository inspection is restricted to validated local project directories.
311
+ - Test execution uses subprocesses without shell command interpretation.
312
+ - Test execution has a configurable timeout.
313
+ - Dependency vulnerability checks use external public APIs.
314
+ - Tool execution should only be allowed on project directories the user trusts.
315
+ - Do not expose sensitive project files or credentials to AI clients unnecessarily.
316
+
317
+ ## Contributing
318
+
319
+ Contributions, bug reports, and feature suggestions are welcome.
320
+
321
+ 1. Fork the repository.
322
+ 2. Create a feature branch.
323
+ 3. Make your changes.
324
+ 4. Add or update tests.
325
+ 5. Run the test suite and Ruff checks.
326
+ 6. Submit a pull request.
327
+
328
+ Please keep contributions focused on improving the existing five tools unless the project scope is explicitly expanded.
329
+
330
+ ## License
331
+
332
+ This project is licensed under the **MIT License**.
333
+
334
+ See the [LICENSE](LICENSE) file for details.
335
+
336
+ ## Author
337
+
338
+ **Prashil001**
339
+
340
+ - GitHub: https://github.com/Prashil001
341
+ - Repository: https://github.com/Prashil001/devtoolkit-mcp
342
+
343
+ ---
344
+
345
+ If you find DevToolkit MCP useful, consider giving the repository a ⭐ on GitHub.
346
+
347
+ **Built to make AI-assisted software development more capable through MCP.**