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.
Files changed (39) hide show
  1. mcp_souschef-2.1.2/README.md → mcp_souschef-2.5.3/PKG-INFO +218 -18
  2. mcp_souschef-2.1.2/PKG-INFO → mcp_souschef-2.5.3/README.md +194 -37
  3. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/pyproject.toml +46 -5
  4. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/assessment.py +531 -180
  5. mcp_souschef-2.5.3/souschef/ci/__init__.py +11 -0
  6. mcp_souschef-2.5.3/souschef/ci/github_actions.py +379 -0
  7. mcp_souschef-2.5.3/souschef/ci/gitlab_ci.py +299 -0
  8. mcp_souschef-2.5.3/souschef/ci/jenkins_pipeline.py +343 -0
  9. mcp_souschef-2.5.3/souschef/cli.py +1125 -0
  10. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/playbook.py +43 -5
  11. mcp_souschef-2.5.3/souschef/converters/resource.py +325 -0
  12. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/__init__.py +22 -0
  13. mcp_souschef-2.5.3/souschef/core/errors.py +275 -0
  14. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/validation.py +35 -2
  15. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/deployment.py +414 -100
  16. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/filesystem/operations.py +0 -7
  17. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/__init__.py +6 -1
  18. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/habitat.py +35 -6
  19. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/inspec.py +415 -52
  20. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/metadata.py +89 -23
  21. mcp_souschef-2.5.3/souschef/profiling.py +568 -0
  22. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/server.py +948 -255
  23. mcp_souschef-2.5.3/souschef/ui/__init__.py +8 -0
  24. mcp_souschef-2.5.3/souschef/ui/app.py +1837 -0
  25. mcp_souschef-2.5.3/souschef/ui/pages/cookbook_analysis.py +425 -0
  26. mcp_souschef-2.1.2/souschef/cli.py +0 -435
  27. mcp_souschef-2.1.2/souschef/converters/resource.py +0 -228
  28. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/LICENSE +0 -0
  29. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/__init__.py +0 -0
  30. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/__init__.py +0 -0
  31. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/converters/habitat.py +0 -0
  32. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/constants.py +0 -0
  33. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/path_utils.py +0 -0
  34. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/core/ruby_utils.py +0 -0
  35. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/filesystem/__init__.py +0 -0
  36. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/attributes.py +0 -0
  37. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/recipe.py +0 -0
  38. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/resource.py +0 -0
  39. {mcp_souschef-2.1.2 → mcp_souschef-2.5.3}/souschef/parsers/template.py +0 -0
@@ -1,11 +1,34 @@
1
- # Chef to Ansible migration - SousChef MCP
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
  [![PyPI version](https://img.shields.io/pypi/v/mcp-souschef.svg)](https://pypi.org/project/mcp-souschef/)
6
29
  [![Python Version](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://www.python.org/downloads/)
7
30
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![Test Coverage](https://img.shields.io/badge/coverage-92%25-brightgreen.svg)](htmlcov/index.html)
31
+ [![Test Coverage](https://img.shields.io/badge/coverage-91%25-brightgreen.svg)](htmlcov/index.html)
9
32
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
10
33
  [![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](http://mypy-lang.org/)
11
34
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef&metric=alert_status)](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 38 MCP tools organized across 9 major capability areas to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerized deployments, SousChef provides everything needed for a successful infrastructure automation migration.
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 38 specialized tools. The model calls these tools to help with your migration.
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. Conversion Validation Framework
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
- ## Enterprise Features
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 MCP extension, etc.)
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
- ### In Progress
442
- - Enhanced error handling and user experience improvements
443
- - Documentation website and interactive examples
444
- - Performance optimizations for large-scale enterprise migrations
445
- - Technical debt reduction (15 functions tracked in [GitHub Issues](https://github.com/kpeacocke/souschef/issues?q=is%3Aissue+is%3Aopen+label%3Atechnical-debt))
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
- - 📅 Integration with additional test frameworks (ServerSpec, Goss)
449
- - 📅 Visual migration planning and dependency mapping interface
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
- Metadata-Version: 2.4
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
  [![PyPI version](https://img.shields.io/pypi/v/mcp-souschef.svg)](https://pypi.org/project/mcp-souschef/)
24
6
  [![Python Version](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://www.python.org/downloads/)
25
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
26
- [![Test Coverage](https://img.shields.io/badge/coverage-92%25-brightgreen.svg)](htmlcov/index.html)
8
+ [![Test Coverage](https://img.shields.io/badge/coverage-91%25-brightgreen.svg)](htmlcov/index.html)
27
9
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
28
10
  [![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](http://mypy-lang.org/)
29
11
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef&metric=alert_status)](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 38 MCP tools organized across 9 major capability areas to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerized deployments, SousChef provides everything needed for a successful infrastructure automation migration.
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 38 specialized tools. The model calls these tools to help with your migration.
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. Conversion Validation Framework
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
- ## Enterprise Features
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 MCP extension, etc.)
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
- ### In Progress
460
- - Enhanced error handling and user experience improvements
461
- - Documentation website and interactive examples
462
- - Performance optimizations for large-scale enterprise migrations
463
- - Technical debt reduction (15 functions tracked in [GitHub Issues](https://github.com/kpeacocke/souschef/issues?q=is%3Aissue+is%3Aopen+label%3Atechnical-debt))
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
- - 📅 Integration with additional test frameworks (ServerSpec, Goss)
467
- - 📅 Visual migration planning and dependency mapping interface
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
-