mcp-souschef 2.1.2__tar.gz → 2.5.3__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.
- mcp_souschef-2.1.2/README.md → mcp_souschef-2.5.3/PKG-INFO +218 -18
- mcp_souschef-2.1.2/PKG-INFO → mcp_souschef-2.5.3/README.md +194 -37
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/pyproject.toml +46 -5
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/assessment.py +531 -180
- mcp_souschef-2.5.3/souschef/ci/__init__.py +11 -0
- mcp_souschef-2.5.3/souschef/ci/github_actions.py +379 -0
- mcp_souschef-2.5.3/souschef/ci/gitlab_ci.py +299 -0
- mcp_souschef-2.5.3/souschef/ci/jenkins_pipeline.py +343 -0
- mcp_souschef-2.5.3/souschef/cli.py +1125 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/playbook.py +43 -5
- mcp_souschef-2.5.3/souschef/converters/resource.py +325 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/__init__.py +22 -0
- mcp_souschef-2.5.3/souschef/core/errors.py +275 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/validation.py +35 -2
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/deployment.py +414 -100
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/filesystem/operations.py +0 -7
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/__init__.py +6 -1
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/habitat.py +35 -6
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/inspec.py +415 -52
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/metadata.py +89 -23
- mcp_souschef-2.5.3/souschef/profiling.py +568 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/server.py +948 -255
- mcp_souschef-2.5.3/souschef/ui/__init__.py +8 -0
- mcp_souschef-2.5.3/souschef/ui/app.py +1837 -0
- mcp_souschef-2.5.3/souschef/ui/pages/cookbook_analysis.py +425 -0
- mcp_souschef-2.1.2/souschef/cli.py +0 -435
- mcp_souschef-2.1.2/souschef/converters/resource.py +0 -228
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/LICENSE +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/__init__.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/__init__.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/habitat.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/constants.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/path_utils.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/ruby_utils.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/filesystem/__init__.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/attributes.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/recipe.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/resource.py +0 -0
- {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/template.py +0 -0
|
@@ -1,11 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mcp-souschef
|
|
3
|
+
Version: 2.5.3
|
|
4
|
+
Summary: AI-powered MCP server for Chef to Ansible conversion
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Author: SousChef Contributors
|
|
8
|
+
Requires-Python: >=3.14,<4.0
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
12
|
+
Provides-Extra: ui
|
|
13
|
+
Requires-Dist: anthropic (>=0.75.0)
|
|
14
|
+
Requires-Dist: click (>=8.1.0)
|
|
15
|
+
Requires-Dist: mcp (>=1.25.0)
|
|
16
|
+
Requires-Dist: pandas (>=2.0.0) ; extra == "ui"
|
|
17
|
+
Requires-Dist: plotly (>=5.0.0)
|
|
18
|
+
Requires-Dist: python-dotenv (>=1.2.1)
|
|
19
|
+
Requires-Dist: pyyaml (>=6.0.0)
|
|
20
|
+
Requires-Dist: streamlit (>=1.28.0)
|
|
21
|
+
Requires-Dist: zod (>=0.8.0)
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# Chef to Ansible migration - SousChef MCP
|
|
2
25
|
|
|
3
26
|
An AI-powered MCP (Model Context Protocol) server that provides comprehensive Chef-to-Ansible migration capabilities for enterprise infrastructure transformation.
|
|
4
27
|
|
|
5
28
|
[](https://pypi.org/project/mcp-souschef/)
|
|
6
29
|
[](https://www.python.org/downloads/)
|
|
7
30
|
[](https://opensource.org/licenses/MIT)
|
|
8
|
-
[](htmlcov/index.html)
|
|
9
32
|
[](https://github.com/astral-sh/ruff)
|
|
10
33
|
[](http://mypy-lang.org/)
|
|
11
34
|
[](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)
|
|
@@ -14,7 +37,17 @@ An AI-powered MCP (Model Context Protocol) server that provides comprehensive Ch
|
|
|
14
37
|
|
|
15
38
|
## Overview - Chef to Ansible features
|
|
16
39
|
|
|
17
|
-
SousChef is a complete enterprise-grade migration platform with
|
|
40
|
+
SousChef is a complete enterprise-grade migration platform with **27 primary MCP tools** organised across **9 major capability areas** to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerised deployments and CI/CD pipeline generation, SousChef provides everything needed for a successful infrastructure automation migration.
|
|
41
|
+
|
|
42
|
+
### About Tool Counts
|
|
43
|
+
|
|
44
|
+
**Why 27 tools in the documentation but more in the server?**
|
|
45
|
+
|
|
46
|
+
The MCP server provides **37 total tools** (35 public + 2 internal). This documentation focuses on the **27 primary user-facing tools** that cover the main migration capabilities. The remaining 10 tools are low-level filesystem operations and helper utilities used internally by the main tools.
|
|
47
|
+
|
|
48
|
+
As a user, you'll primarily interact with the 27 documented tools. Your AI assistant may use the additional tools automatically when needed, but you don't need to know about them for successful migrations.
|
|
49
|
+
|
|
50
|
+
> 💡 **For developers:** See `souschef/server.py` for the complete list of all 37 registered tools.
|
|
18
51
|
|
|
19
52
|
## Model Agnostic - Works with Any AI Model
|
|
20
53
|
|
|
@@ -27,10 +60,17 @@ SousChef is a complete enterprise-grade migration platform with 38 MCP tools org
|
|
|
27
60
|
- **Local Models** (Ollama, llama.cpp, etc.)
|
|
28
61
|
- **Custom Enterprise Models**
|
|
29
62
|
|
|
30
|
-
**How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through
|
|
63
|
+
**How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through 27 specialized tools. The model calls these tools to help with your migration.
|
|
31
64
|
|
|
32
65
|
> See [config/CONFIGURATION.md](config/CONFIGURATION.md) for configuration examples with different model providers.
|
|
33
66
|
|
|
67
|
+
## Quick Links
|
|
68
|
+
|
|
69
|
+
- **[Terraform Provider](terraform-provider/README.md)** - Manage migrations with infrastructure-as-code
|
|
70
|
+
- **[User Guide](docs/user-guide/)** - Complete documentation
|
|
71
|
+
- **[API Reference](docs/api-reference/)** - Detailed tool documentation
|
|
72
|
+
- **[Migration Guide](docs/migration-guide/)** - Step-by-step migration process
|
|
73
|
+
|
|
34
74
|
## Installation
|
|
35
75
|
|
|
36
76
|
```bash
|
|
@@ -121,7 +161,67 @@ Modern deployment strategies and migration planning:
|
|
|
121
161
|
- **generate_blue_green_deployment_playbook** - Create blue/green deployment playbooks
|
|
122
162
|
- **generate_canary_deployment_strategy** - Generate canary deployment configurations
|
|
123
163
|
|
|
124
|
-
### 10.
|
|
164
|
+
### 10. CI/CD Pipeline Generation
|
|
165
|
+
Generate Jenkins, GitLab CI, and GitHub Actions workflows from Chef cookbook CI patterns:
|
|
166
|
+
|
|
167
|
+
- **generate_jenkinsfile_from_chef** - Generate Jenkinsfile (Declarative or Scripted) from Chef cookbook CI/CD patterns
|
|
168
|
+
- **generate_gitlab_ci_from_chef** - Generate .gitlab-ci.yml from Chef cookbook testing tools
|
|
169
|
+
- **generate_github_workflow_from_chef** - Generate GitHub Actions workflow from Chef cookbook CI/CD patterns
|
|
170
|
+
|
|
171
|
+
Automatically detects and converts:
|
|
172
|
+
- **Test Kitchen** configurations (.kitchen.yml) → Integration test stages
|
|
173
|
+
- **ChefSpec** tests (spec/) → Unit test stages
|
|
174
|
+
- **Cookstyle/Foodcritic** → Lint stages
|
|
175
|
+
- Multiple test suites → Parallel execution strategies
|
|
176
|
+
|
|
177
|
+
#### Example Usage
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Generate Jenkins Declarative pipeline
|
|
181
|
+
souschef generate-jenkinsfile ./mycookbook
|
|
182
|
+
|
|
183
|
+
# Generate Jenkins Scripted pipeline
|
|
184
|
+
souschef generate-jenkinsfile ./mycookbook --pipeline-type scripted
|
|
185
|
+
|
|
186
|
+
# Generate GitLab CI configuration
|
|
187
|
+
souschef generate-gitlab-ci ./mycookbook
|
|
188
|
+
|
|
189
|
+
# Generate GitHub Actions workflow
|
|
190
|
+
souschef generate-github-workflow ./mycookbook
|
|
191
|
+
|
|
192
|
+
# Customize with options
|
|
193
|
+
souschef generate-gitlab-ci ./mycookbook --no-cache --no-artifacts
|
|
194
|
+
souschef generate-github-workflow ./mycookbook --workflow-name "My CI" --no-cache
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**MCP Tool Usage:**
|
|
198
|
+
```python
|
|
199
|
+
# From an AI assistant with SousChef MCP
|
|
200
|
+
|
|
201
|
+
# Generate Jenkins pipeline
|
|
202
|
+
generate_jenkinsfile_from_chef(
|
|
203
|
+
cookbook_path="/path/to/cookbook",
|
|
204
|
+
pipeline_type="declarative", # or "scripted"
|
|
205
|
+
enable_parallel="yes" # or "no"
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
# Generate GitLab CI
|
|
209
|
+
generate_gitlab_ci_from_chef(
|
|
210
|
+
cookbook_path="/path/to/cookbook",
|
|
211
|
+
enable_cache="yes", # or "no"
|
|
212
|
+
enable_artifacts="yes" # or "no"
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# Generate GitHub Actions workflow
|
|
216
|
+
generate_github_workflow_from_chef(
|
|
217
|
+
cookbook_path="/path/to/cookbook",
|
|
218
|
+
workflow_name="Chef Cookbook CI",
|
|
219
|
+
enable_cache="yes", # or "no"
|
|
220
|
+
enable_artifacts="yes" # or "no"
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 11. Conversion Validation Framework
|
|
125
225
|
Comprehensive validation of Chef-to-Ansible conversions:
|
|
126
226
|
|
|
127
227
|
- **validate_conversion** - Validate conversions across multiple dimensions
|
|
@@ -228,7 +328,81 @@ generate_inspec_from_recipe /path/to/recipe.rb
|
|
|
228
328
|
convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
229
329
|
```
|
|
230
330
|
|
|
231
|
-
|
|
331
|
+
### Performance Profiling & Optimization
|
|
332
|
+
Profile cookbook parsing performance to identify bottlenecks and optimize large-scale migrations:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# Profile entire cookbook (all parsing operations)
|
|
336
|
+
souschef-cli profile /path/to/cookbook
|
|
337
|
+
|
|
338
|
+
# Save profiling report to file
|
|
339
|
+
souschef-cli profile /path/to/cookbook --output profile_report.txt
|
|
340
|
+
|
|
341
|
+
# Profile specific operations with detailed statistics
|
|
342
|
+
souschef-cli profile-operation recipe /path/to/recipe.rb --detailed
|
|
343
|
+
souschef-cli profile-operation attributes /path/to/attributes/default.rb
|
|
344
|
+
souschef-cli profile-operation template /path/to/template.erb
|
|
345
|
+
|
|
346
|
+
# MCP Tool Usage (from AI assistants)
|
|
347
|
+
profile_cookbook_performance /path/to/large_cookbook
|
|
348
|
+
profile_parsing_operation recipe /path/to/recipe.rb --detailed
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### 10. Visual Migration Planning Interface
|
|
352
|
+
Interactive web-based interface for Chef-to-Ansible migration planning and visualization:
|
|
353
|
+
|
|
354
|
+
- **Cookbook Analysis Dashboard**: Interactive directory scanning with metadata parsing and complexity assessment
|
|
355
|
+
- **Migration Planning Wizard**: Step-by-step migration planning with effort estimation and risk analysis
|
|
356
|
+
- **Dependency Mapping**: Visual dependency graphs showing cookbook relationships and migration ordering
|
|
357
|
+
- **Validation Reports**: Conversion validation results with syntax checking and best practice compliance
|
|
358
|
+
- **Progress Tracking**: Real-time migration progress with completion metrics and bottleneck identification
|
|
359
|
+
|
|
360
|
+
**Launch the UI:**
|
|
361
|
+
```bash
|
|
362
|
+
# Using Poetry (development)
|
|
363
|
+
poetry run souschef ui
|
|
364
|
+
|
|
365
|
+
# Using pip (installed)
|
|
366
|
+
souschef ui
|
|
367
|
+
|
|
368
|
+
# Custom port
|
|
369
|
+
souschef ui --port 8080
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Features:**
|
|
373
|
+
- Clean, professional design matching documentation standards
|
|
374
|
+
- Real-time cookbook analysis with progress indicators
|
|
375
|
+
- **Interactive dependency visualization** with Plotly graphs and NetworkX analysis
|
|
376
|
+
- **Static graph visualization** with matplotlib for reports and documentation
|
|
377
|
+
- **Real-time progress tracking** for all analysis operations
|
|
378
|
+
- Migration planning wizards with effort estimation
|
|
379
|
+
- Validation reporting dashboard with conversion quality metrics
|
|
380
|
+
- Cross-platform compatibility (Linux, macOS, Windows)
|
|
381
|
+
|
|
382
|
+
### Advanced UI Features
|
|
383
|
+
|
|
384
|
+
#### Interactive Dependency Visualization
|
|
385
|
+
The UI includes sophisticated dependency graph visualization powered by NetworkX and Plotly:
|
|
386
|
+
|
|
387
|
+
- **Graph Analysis**: Automatic detection of cookbook dependencies, circular references, and migration ordering
|
|
388
|
+
- **Interactive Exploration**: Zoom, pan, and hover over nodes to explore complex dependency relationships
|
|
389
|
+
- **Color Coding**: Visual distinction between cookbooks, dependencies, community cookbooks, and circular dependencies
|
|
390
|
+
- **Static Export**: Matplotlib-based static graphs for reports and documentation
|
|
391
|
+
- **Large Graph Support**: Optimized layouts for complex cookbook ecosystems
|
|
392
|
+
|
|
393
|
+
#### Real-Time Progress Tracking
|
|
394
|
+
All analysis operations include comprehensive progress feedback:
|
|
395
|
+
|
|
396
|
+
- **Progress Bars**: Visual progress indicators for long-running operations
|
|
397
|
+
- **Status Updates**: Real-time status messages during analysis phases
|
|
398
|
+
- **Operation Tracking**: Separate progress tracking for dependency analysis, validation, and migration planning
|
|
399
|
+
- **Error Handling**: Graceful error display with recovery suggestions
|
|
400
|
+
|
|
401
|
+
#### Enhanced User Experience
|
|
402
|
+
- **Responsive Design**: Clean, professional interface that works across different screen sizes
|
|
403
|
+
- **Export Options**: Download analysis results, graphs, and migration plans
|
|
404
|
+
- **Session Persistence**: Maintain analysis state across page refreshes
|
|
405
|
+
- **Quick Actions**: One-click access to common migration tasks
|
|
232
406
|
|
|
233
407
|
### Migration Assessment & Reporting
|
|
234
408
|
- **Complexity Analysis**: Automated assessment of migration effort and risk factors
|
|
@@ -254,7 +428,7 @@ convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
|
254
428
|
### Prerequisites
|
|
255
429
|
- Python 3.14+
|
|
256
430
|
- [Poetry](https://python-poetry.org/) for dependency management
|
|
257
|
-
- MCP-compatible client (Claude Desktop, VS Code with
|
|
431
|
+
- MCP-compatible client (Claude Desktop, VS Code 1.102+ with GitHub Copilot, etc.)
|
|
258
432
|
|
|
259
433
|
### Quick Start
|
|
260
434
|
|
|
@@ -267,9 +441,21 @@ convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
|
267
441
|
|
|
268
442
|
Use the pre-configured files in the `config/` directory for quick setup with Claude Desktop, VS Code Copilot, or other MCP clients.
|
|
269
443
|
|
|
444
|
+
**Claude Desktop** (macOS):
|
|
270
445
|
```bash
|
|
271
|
-
# Example: Claude Desktop (macOS)
|
|
272
446
|
cp config/claude-desktop.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
447
|
+
# Restart Claude Desktop
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**VS Code + GitHub Copilot** (requires VS Code 1.102+):
|
|
451
|
+
```bash
|
|
452
|
+
# macOS/Linux
|
|
453
|
+
cp config/vscode-copilot.json ~/.config/Code/User/mcp.json
|
|
454
|
+
|
|
455
|
+
# Windows
|
|
456
|
+
copy config\vscode-copilot.json %APPDATA%\Code\User\mcp.json
|
|
457
|
+
|
|
458
|
+
# Reload VS Code window, then trust the server when prompted
|
|
273
459
|
```
|
|
274
460
|
|
|
275
461
|
** See [config/CONFIGURATION.md](config/CONFIGURATION.md) for:**
|
|
@@ -313,6 +499,7 @@ souschef-cli inspec-convert controls.rb --format testinfra
|
|
|
313
499
|
- `inspec-parse` - Parse InSpec profiles and controls
|
|
314
500
|
- `inspec-convert` - Convert InSpec to Testinfra/Ansible tests
|
|
315
501
|
- `inspec-generate` - Generate InSpec validation from recipes
|
|
502
|
+
- `ui` - Launch the Visual Migration Planning Interface
|
|
316
503
|
- `ls` / `cat` - File system operations
|
|
317
504
|
|
|
318
505
|
### Development Setup
|
|
@@ -419,7 +606,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
419
606
|
|
|
420
607
|
## Roadmap
|
|
421
608
|
|
|
422
|
-
### Completed
|
|
609
|
+
### Completed ✅
|
|
423
610
|
- Complete Chef cookbook parsing (recipes, attributes, metadata, templates)
|
|
424
611
|
- InSpec profile parsing and conversion to Testinfra/Ansible tests
|
|
425
612
|
- Chef resource to Ansible task conversion with module mapping
|
|
@@ -437,18 +624,30 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
437
624
|
- Automated branch cleanup for release PRs
|
|
438
625
|
- Automated conversion validation and testing framework
|
|
439
626
|
- Chef Habitat to containerized deployment conversion (parse_habitat_plan, convert_habitat_to_dockerfile, generate_compose_from_habitat)
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
-
|
|
443
|
-
-
|
|
444
|
-
-
|
|
445
|
-
-
|
|
627
|
+
- Enhanced error handling with custom exceptions and actionable recovery suggestions
|
|
628
|
+
- Technical debt reduction - ALL PHASES COMPLETE: 16 functions refactored (15 C-grade eliminated, 70+ helpers extracted, average 77% complexity reduction, zero C-grade functions remaining)
|
|
629
|
+
- Performance profiling and optimization for large cookbooks (profiling module, CLI commands, MCP tools)
|
|
630
|
+
- Code duplication elimination (InSpec functions refactored: 55 duplicate lines removed, improved architecture)
|
|
631
|
+
- Documentation website with MkDocs + Material theme (charcoal + teal colour scheme, 16 pages)
|
|
632
|
+
- Comprehensive documentation content (Getting Started, Tool Reference, Migration Guide, API docs, Examples)
|
|
633
|
+
- Integration with additional test frameworks (ServerSpec, Goss) - InSpec conversion now supports 4 output formats
|
|
634
|
+
- Jenkins/GitLab CI pipeline generation from Chef cookbook CI patterns (Test Kitchen, ChefSpec, Cookstyle)
|
|
635
|
+
- Visual migration planning interface with Streamlit-based web UI for interactive cookbook analysis and migration planning
|
|
636
|
+
- **Interactive dependency mapping and visualization** with Plotly graphs and NetworkX analysis
|
|
637
|
+
- **Real-time progress tracking** for all analysis operations with Streamlit progress bars
|
|
638
|
+
- **Static graph visualization** with matplotlib for reports and documentation
|
|
446
639
|
|
|
447
640
|
### Planned 📅
|
|
448
|
-
- 📅
|
|
449
|
-
- 📅
|
|
641
|
+
- 📅 Enhanced graph layout algorithms for large dependency networks (force-directed, hierarchical)
|
|
642
|
+
- 📅 Export functionality for graphs (PNG, SVG, PDF formats)
|
|
643
|
+
- 📅 UI configuration options and themes
|
|
644
|
+
- 📅 Performance caching for expensive analysis operations
|
|
645
|
+
- 📅 Mobile-responsive design improvements
|
|
646
|
+
- 📅 Accessibility enhancements (ARIA labels, keyboard navigation)
|
|
647
|
+
- 📅 Integration testing for UI components
|
|
648
|
+
- 📅 Advanced filtering and search in dependency graphs
|
|
649
|
+
- 📅 Migration templates and presets
|
|
450
650
|
- 📅 Terraform provider for infrastructure state management
|
|
451
|
-
- 📅 Jenkins/GitLab CI pipeline generation
|
|
452
651
|
|
|
453
652
|
## 🙋♀️ Support & Community
|
|
454
653
|
|
|
@@ -1176,3 +1375,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
1176
1375
|
---
|
|
1177
1376
|
|
|
1178
1377
|
**SousChef** - *Ansible automation, one recipe at a time.* ✨
|
|
1378
|
+
|
|
@@ -1,29 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Name: mcp-souschef
|
|
3
|
-
Version: 2.1.2
|
|
4
|
-
Summary: AI-powered MCP server for Chef to Ansible conversion
|
|
5
|
-
License: MIT
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
Author: SousChef Contributors
|
|
8
|
-
Requires-Python: >=3.14,<4.0
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
12
|
-
Requires-Dist: anthropic (>=0.75.0)
|
|
13
|
-
Requires-Dist: click (>=8.1.0)
|
|
14
|
-
Requires-Dist: mcp (>=1.25.0)
|
|
15
|
-
Requires-Dist: python-dotenv (>=1.2.1)
|
|
16
|
-
Requires-Dist: zod (>=0.8.0)
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
|
|
19
|
-
# Chef to Ansible migration - SousChef MCP
|
|
1
|
+
# Chef to Ansible migration - SousChef MCP
|
|
20
2
|
|
|
21
3
|
An AI-powered MCP (Model Context Protocol) server that provides comprehensive Chef-to-Ansible migration capabilities for enterprise infrastructure transformation.
|
|
22
4
|
|
|
23
5
|
[](https://pypi.org/project/mcp-souschef/)
|
|
24
6
|
[](https://www.python.org/downloads/)
|
|
25
7
|
[](https://opensource.org/licenses/MIT)
|
|
26
|
-
[](htmlcov/index.html)
|
|
27
9
|
[](https://github.com/astral-sh/ruff)
|
|
28
10
|
[](http://mypy-lang.org/)
|
|
29
11
|
[](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)
|
|
@@ -32,7 +14,17 @@ An AI-powered MCP (Model Context Protocol) server that provides comprehensive Ch
|
|
|
32
14
|
|
|
33
15
|
## Overview - Chef to Ansible features
|
|
34
16
|
|
|
35
|
-
SousChef is a complete enterprise-grade migration platform with
|
|
17
|
+
SousChef is a complete enterprise-grade migration platform with **27 primary MCP tools** organised across **9 major capability areas** to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerised deployments and CI/CD pipeline generation, SousChef provides everything needed for a successful infrastructure automation migration.
|
|
18
|
+
|
|
19
|
+
### About Tool Counts
|
|
20
|
+
|
|
21
|
+
**Why 27 tools in the documentation but more in the server?**
|
|
22
|
+
|
|
23
|
+
The MCP server provides **37 total tools** (35 public + 2 internal). This documentation focuses on the **27 primary user-facing tools** that cover the main migration capabilities. The remaining 10 tools are low-level filesystem operations and helper utilities used internally by the main tools.
|
|
24
|
+
|
|
25
|
+
As a user, you'll primarily interact with the 27 documented tools. Your AI assistant may use the additional tools automatically when needed, but you don't need to know about them for successful migrations.
|
|
26
|
+
|
|
27
|
+
> 💡 **For developers:** See `souschef/server.py` for the complete list of all 37 registered tools.
|
|
36
28
|
|
|
37
29
|
## Model Agnostic - Works with Any AI Model
|
|
38
30
|
|
|
@@ -45,10 +37,17 @@ SousChef is a complete enterprise-grade migration platform with 38 MCP tools org
|
|
|
45
37
|
- **Local Models** (Ollama, llama.cpp, etc.)
|
|
46
38
|
- **Custom Enterprise Models**
|
|
47
39
|
|
|
48
|
-
**How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through
|
|
40
|
+
**How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through 27 specialized tools. The model calls these tools to help with your migration.
|
|
49
41
|
|
|
50
42
|
> See [config/CONFIGURATION.md](config/CONFIGURATION.md) for configuration examples with different model providers.
|
|
51
43
|
|
|
44
|
+
## Quick Links
|
|
45
|
+
|
|
46
|
+
- **[Terraform Provider](terraform-provider/README.md)** - Manage migrations with infrastructure-as-code
|
|
47
|
+
- **[User Guide](docs/user-guide/)** - Complete documentation
|
|
48
|
+
- **[API Reference](docs/api-reference/)** - Detailed tool documentation
|
|
49
|
+
- **[Migration Guide](docs/migration-guide/)** - Step-by-step migration process
|
|
50
|
+
|
|
52
51
|
## Installation
|
|
53
52
|
|
|
54
53
|
```bash
|
|
@@ -139,7 +138,67 @@ Modern deployment strategies and migration planning:
|
|
|
139
138
|
- **generate_blue_green_deployment_playbook** - Create blue/green deployment playbooks
|
|
140
139
|
- **generate_canary_deployment_strategy** - Generate canary deployment configurations
|
|
141
140
|
|
|
142
|
-
### 10.
|
|
141
|
+
### 10. CI/CD Pipeline Generation
|
|
142
|
+
Generate Jenkins, GitLab CI, and GitHub Actions workflows from Chef cookbook CI patterns:
|
|
143
|
+
|
|
144
|
+
- **generate_jenkinsfile_from_chef** - Generate Jenkinsfile (Declarative or Scripted) from Chef cookbook CI/CD patterns
|
|
145
|
+
- **generate_gitlab_ci_from_chef** - Generate .gitlab-ci.yml from Chef cookbook testing tools
|
|
146
|
+
- **generate_github_workflow_from_chef** - Generate GitHub Actions workflow from Chef cookbook CI/CD patterns
|
|
147
|
+
|
|
148
|
+
Automatically detects and converts:
|
|
149
|
+
- **Test Kitchen** configurations (.kitchen.yml) → Integration test stages
|
|
150
|
+
- **ChefSpec** tests (spec/) → Unit test stages
|
|
151
|
+
- **Cookstyle/Foodcritic** → Lint stages
|
|
152
|
+
- Multiple test suites → Parallel execution strategies
|
|
153
|
+
|
|
154
|
+
#### Example Usage
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Generate Jenkins Declarative pipeline
|
|
158
|
+
souschef generate-jenkinsfile ./mycookbook
|
|
159
|
+
|
|
160
|
+
# Generate Jenkins Scripted pipeline
|
|
161
|
+
souschef generate-jenkinsfile ./mycookbook --pipeline-type scripted
|
|
162
|
+
|
|
163
|
+
# Generate GitLab CI configuration
|
|
164
|
+
souschef generate-gitlab-ci ./mycookbook
|
|
165
|
+
|
|
166
|
+
# Generate GitHub Actions workflow
|
|
167
|
+
souschef generate-github-workflow ./mycookbook
|
|
168
|
+
|
|
169
|
+
# Customize with options
|
|
170
|
+
souschef generate-gitlab-ci ./mycookbook --no-cache --no-artifacts
|
|
171
|
+
souschef generate-github-workflow ./mycookbook --workflow-name "My CI" --no-cache
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**MCP Tool Usage:**
|
|
175
|
+
```python
|
|
176
|
+
# From an AI assistant with SousChef MCP
|
|
177
|
+
|
|
178
|
+
# Generate Jenkins pipeline
|
|
179
|
+
generate_jenkinsfile_from_chef(
|
|
180
|
+
cookbook_path="/path/to/cookbook",
|
|
181
|
+
pipeline_type="declarative", # or "scripted"
|
|
182
|
+
enable_parallel="yes" # or "no"
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
# Generate GitLab CI
|
|
186
|
+
generate_gitlab_ci_from_chef(
|
|
187
|
+
cookbook_path="/path/to/cookbook",
|
|
188
|
+
enable_cache="yes", # or "no"
|
|
189
|
+
enable_artifacts="yes" # or "no"
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
# Generate GitHub Actions workflow
|
|
193
|
+
generate_github_workflow_from_chef(
|
|
194
|
+
cookbook_path="/path/to/cookbook",
|
|
195
|
+
workflow_name="Chef Cookbook CI",
|
|
196
|
+
enable_cache="yes", # or "no"
|
|
197
|
+
enable_artifacts="yes" # or "no"
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 11. Conversion Validation Framework
|
|
143
202
|
Comprehensive validation of Chef-to-Ansible conversions:
|
|
144
203
|
|
|
145
204
|
- **validate_conversion** - Validate conversions across multiple dimensions
|
|
@@ -246,7 +305,81 @@ generate_inspec_from_recipe /path/to/recipe.rb
|
|
|
246
305
|
convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
247
306
|
```
|
|
248
307
|
|
|
249
|
-
|
|
308
|
+
### Performance Profiling & Optimization
|
|
309
|
+
Profile cookbook parsing performance to identify bottlenecks and optimize large-scale migrations:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# Profile entire cookbook (all parsing operations)
|
|
313
|
+
souschef-cli profile /path/to/cookbook
|
|
314
|
+
|
|
315
|
+
# Save profiling report to file
|
|
316
|
+
souschef-cli profile /path/to/cookbook --output profile_report.txt
|
|
317
|
+
|
|
318
|
+
# Profile specific operations with detailed statistics
|
|
319
|
+
souschef-cli profile-operation recipe /path/to/recipe.rb --detailed
|
|
320
|
+
souschef-cli profile-operation attributes /path/to/attributes/default.rb
|
|
321
|
+
souschef-cli profile-operation template /path/to/template.erb
|
|
322
|
+
|
|
323
|
+
# MCP Tool Usage (from AI assistants)
|
|
324
|
+
profile_cookbook_performance /path/to/large_cookbook
|
|
325
|
+
profile_parsing_operation recipe /path/to/recipe.rb --detailed
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### 10. Visual Migration Planning Interface
|
|
329
|
+
Interactive web-based interface for Chef-to-Ansible migration planning and visualization:
|
|
330
|
+
|
|
331
|
+
- **Cookbook Analysis Dashboard**: Interactive directory scanning with metadata parsing and complexity assessment
|
|
332
|
+
- **Migration Planning Wizard**: Step-by-step migration planning with effort estimation and risk analysis
|
|
333
|
+
- **Dependency Mapping**: Visual dependency graphs showing cookbook relationships and migration ordering
|
|
334
|
+
- **Validation Reports**: Conversion validation results with syntax checking and best practice compliance
|
|
335
|
+
- **Progress Tracking**: Real-time migration progress with completion metrics and bottleneck identification
|
|
336
|
+
|
|
337
|
+
**Launch the UI:**
|
|
338
|
+
```bash
|
|
339
|
+
# Using Poetry (development)
|
|
340
|
+
poetry run souschef ui
|
|
341
|
+
|
|
342
|
+
# Using pip (installed)
|
|
343
|
+
souschef ui
|
|
344
|
+
|
|
345
|
+
# Custom port
|
|
346
|
+
souschef ui --port 8080
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Features:**
|
|
350
|
+
- Clean, professional design matching documentation standards
|
|
351
|
+
- Real-time cookbook analysis with progress indicators
|
|
352
|
+
- **Interactive dependency visualization** with Plotly graphs and NetworkX analysis
|
|
353
|
+
- **Static graph visualization** with matplotlib for reports and documentation
|
|
354
|
+
- **Real-time progress tracking** for all analysis operations
|
|
355
|
+
- Migration planning wizards with effort estimation
|
|
356
|
+
- Validation reporting dashboard with conversion quality metrics
|
|
357
|
+
- Cross-platform compatibility (Linux, macOS, Windows)
|
|
358
|
+
|
|
359
|
+
### Advanced UI Features
|
|
360
|
+
|
|
361
|
+
#### Interactive Dependency Visualization
|
|
362
|
+
The UI includes sophisticated dependency graph visualization powered by NetworkX and Plotly:
|
|
363
|
+
|
|
364
|
+
- **Graph Analysis**: Automatic detection of cookbook dependencies, circular references, and migration ordering
|
|
365
|
+
- **Interactive Exploration**: Zoom, pan, and hover over nodes to explore complex dependency relationships
|
|
366
|
+
- **Color Coding**: Visual distinction between cookbooks, dependencies, community cookbooks, and circular dependencies
|
|
367
|
+
- **Static Export**: Matplotlib-based static graphs for reports and documentation
|
|
368
|
+
- **Large Graph Support**: Optimized layouts for complex cookbook ecosystems
|
|
369
|
+
|
|
370
|
+
#### Real-Time Progress Tracking
|
|
371
|
+
All analysis operations include comprehensive progress feedback:
|
|
372
|
+
|
|
373
|
+
- **Progress Bars**: Visual progress indicators for long-running operations
|
|
374
|
+
- **Status Updates**: Real-time status messages during analysis phases
|
|
375
|
+
- **Operation Tracking**: Separate progress tracking for dependency analysis, validation, and migration planning
|
|
376
|
+
- **Error Handling**: Graceful error display with recovery suggestions
|
|
377
|
+
|
|
378
|
+
#### Enhanced User Experience
|
|
379
|
+
- **Responsive Design**: Clean, professional interface that works across different screen sizes
|
|
380
|
+
- **Export Options**: Download analysis results, graphs, and migration plans
|
|
381
|
+
- **Session Persistence**: Maintain analysis state across page refreshes
|
|
382
|
+
- **Quick Actions**: One-click access to common migration tasks
|
|
250
383
|
|
|
251
384
|
### Migration Assessment & Reporting
|
|
252
385
|
- **Complexity Analysis**: Automated assessment of migration effort and risk factors
|
|
@@ -272,7 +405,7 @@ convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
|
272
405
|
### Prerequisites
|
|
273
406
|
- Python 3.14+
|
|
274
407
|
- [Poetry](https://python-poetry.org/) for dependency management
|
|
275
|
-
- MCP-compatible client (Claude Desktop, VS Code with
|
|
408
|
+
- MCP-compatible client (Claude Desktop, VS Code 1.102+ with GitHub Copilot, etc.)
|
|
276
409
|
|
|
277
410
|
### Quick Start
|
|
278
411
|
|
|
@@ -285,9 +418,21 @@ convert_inspec_to_test /path/to/inspec_profile testinfra
|
|
|
285
418
|
|
|
286
419
|
Use the pre-configured files in the `config/` directory for quick setup with Claude Desktop, VS Code Copilot, or other MCP clients.
|
|
287
420
|
|
|
421
|
+
**Claude Desktop** (macOS):
|
|
288
422
|
```bash
|
|
289
|
-
# Example: Claude Desktop (macOS)
|
|
290
423
|
cp config/claude-desktop.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
424
|
+
# Restart Claude Desktop
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**VS Code + GitHub Copilot** (requires VS Code 1.102+):
|
|
428
|
+
```bash
|
|
429
|
+
# macOS/Linux
|
|
430
|
+
cp config/vscode-copilot.json ~/.config/Code/User/mcp.json
|
|
431
|
+
|
|
432
|
+
# Windows
|
|
433
|
+
copy config\vscode-copilot.json %APPDATA%\Code\User\mcp.json
|
|
434
|
+
|
|
435
|
+
# Reload VS Code window, then trust the server when prompted
|
|
291
436
|
```
|
|
292
437
|
|
|
293
438
|
** See [config/CONFIGURATION.md](config/CONFIGURATION.md) for:**
|
|
@@ -331,6 +476,7 @@ souschef-cli inspec-convert controls.rb --format testinfra
|
|
|
331
476
|
- `inspec-parse` - Parse InSpec profiles and controls
|
|
332
477
|
- `inspec-convert` - Convert InSpec to Testinfra/Ansible tests
|
|
333
478
|
- `inspec-generate` - Generate InSpec validation from recipes
|
|
479
|
+
- `ui` - Launch the Visual Migration Planning Interface
|
|
334
480
|
- `ls` / `cat` - File system operations
|
|
335
481
|
|
|
336
482
|
### Development Setup
|
|
@@ -437,7 +583,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
437
583
|
|
|
438
584
|
## Roadmap
|
|
439
585
|
|
|
440
|
-
### Completed
|
|
586
|
+
### Completed ✅
|
|
441
587
|
- Complete Chef cookbook parsing (recipes, attributes, metadata, templates)
|
|
442
588
|
- InSpec profile parsing and conversion to Testinfra/Ansible tests
|
|
443
589
|
- Chef resource to Ansible task conversion with module mapping
|
|
@@ -455,18 +601,30 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
455
601
|
- Automated branch cleanup for release PRs
|
|
456
602
|
- Automated conversion validation and testing framework
|
|
457
603
|
- Chef Habitat to containerized deployment conversion (parse_habitat_plan, convert_habitat_to_dockerfile, generate_compose_from_habitat)
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
-
|
|
461
|
-
-
|
|
462
|
-
-
|
|
463
|
-
-
|
|
604
|
+
- Enhanced error handling with custom exceptions and actionable recovery suggestions
|
|
605
|
+
- Technical debt reduction - ALL PHASES COMPLETE: 16 functions refactored (15 C-grade eliminated, 70+ helpers extracted, average 77% complexity reduction, zero C-grade functions remaining)
|
|
606
|
+
- Performance profiling and optimization for large cookbooks (profiling module, CLI commands, MCP tools)
|
|
607
|
+
- Code duplication elimination (InSpec functions refactored: 55 duplicate lines removed, improved architecture)
|
|
608
|
+
- Documentation website with MkDocs + Material theme (charcoal + teal colour scheme, 16 pages)
|
|
609
|
+
- Comprehensive documentation content (Getting Started, Tool Reference, Migration Guide, API docs, Examples)
|
|
610
|
+
- Integration with additional test frameworks (ServerSpec, Goss) - InSpec conversion now supports 4 output formats
|
|
611
|
+
- Jenkins/GitLab CI pipeline generation from Chef cookbook CI patterns (Test Kitchen, ChefSpec, Cookstyle)
|
|
612
|
+
- Visual migration planning interface with Streamlit-based web UI for interactive cookbook analysis and migration planning
|
|
613
|
+
- **Interactive dependency mapping and visualization** with Plotly graphs and NetworkX analysis
|
|
614
|
+
- **Real-time progress tracking** for all analysis operations with Streamlit progress bars
|
|
615
|
+
- **Static graph visualization** with matplotlib for reports and documentation
|
|
464
616
|
|
|
465
617
|
### Planned 📅
|
|
466
|
-
- 📅
|
|
467
|
-
- 📅
|
|
618
|
+
- 📅 Enhanced graph layout algorithms for large dependency networks (force-directed, hierarchical)
|
|
619
|
+
- 📅 Export functionality for graphs (PNG, SVG, PDF formats)
|
|
620
|
+
- 📅 UI configuration options and themes
|
|
621
|
+
- 📅 Performance caching for expensive analysis operations
|
|
622
|
+
- 📅 Mobile-responsive design improvements
|
|
623
|
+
- 📅 Accessibility enhancements (ARIA labels, keyboard navigation)
|
|
624
|
+
- 📅 Integration testing for UI components
|
|
625
|
+
- 📅 Advanced filtering and search in dependency graphs
|
|
626
|
+
- 📅 Migration templates and presets
|
|
468
627
|
- 📅 Terraform provider for infrastructure state management
|
|
469
|
-
- 📅 Jenkins/GitLab CI pipeline generation
|
|
470
628
|
|
|
471
629
|
## 🙋♀️ Support & Community
|
|
472
630
|
|
|
@@ -1194,4 +1352,3 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
1194
1352
|
---
|
|
1195
1353
|
|
|
1196
1354
|
**SousChef** - *Ansible automation, one recipe at a time.* ✨
|
|
1197
|
-
|