Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a505e28
feat(kiro): add Kiro IDE support to model layer
Dec 13, 2025
f03e16b
feat(kiro): implement KiroHostStrategy for configuration management
Dec 13, 2025
cb89045
feat(kiro): add Kiro-specific arguments to mcp configure command
Dec 13, 2025
da30374
test(kiro): implement test data infrastructure for Kiro MCP integration
Dec 13, 2025
04b3733
test(kiro): implement comprehensive test suite for Kiro MCP integration
Dec 13, 2025
f8287f1
feat(kiro): add configuration file backup support
Dec 14, 2025
09776d2
test(kiro): add comprehensive backup integration tests
Dec 14, 2025
00edf42
docs(kiro): add Kiro to supported MCP hosts across all documentation
Dec 14, 2025
068a856
fix: config path handling
Dec 15, 2025
e4e42ce
docs(dev): enhance MCP host configuration extension guidance
Dec 15, 2025
402eded
chore(release): 0.7.1-dev.1
semantic-release-bot Dec 15, 2025
2bb1d3c
docs(reports): dev specs for Codex MCP config support via Hatch!
Dec 15, 2025
e1e575d
feat(codex): add tomli-w dependency for TOML support
LittleCoinCoin Dec 15, 2025
ed86ddf
feat(codex): add MCPServerConfigCodex model and infrastructure
LittleCoinCoin Dec 15, 2025
cac2301
feat(codex): implement CodexHostStrategy with TOML support
LittleCoinCoin Dec 15, 2025
ba8178c
test(codex): add comprehensive Codex host strategy test suite
LittleCoinCoin Dec 15, 2025
97d386b
docs(reports): add implementation completion report
LittleCoinCoin Dec 15, 2025
e8f6e4e
feat(codex): add CLI arguments for Codex
LittleCoinCoin Dec 15, 2025
308f577
fix(codex): map http_headers to universal headers field
LittleCoinCoin Dec 15, 2025
9cae56c
test(codex): add comprehensive CLI argument tests
LittleCoinCoin Dec 15, 2025
7a97ee8
docs(codex): add CLI reference and usage examples
LittleCoinCoin Dec 15, 2025
257fe80
docs(reports): codex CLI enhancement analysis and implementation
LittleCoinCoin Dec 15, 2025
79d4b7d
fix(backup): preserve original filename in backup creation
Dec 15, 2025
627a556
feat(mcp-models): map shared tool filtering flags to Codex
Dec 15, 2025
8ebf59f
docs(cli): add host labels to configure command help
Dec 15, 2025
3a040f2
test(codex): fix Omni model field name in conversion test
Dec 15, 2025
47e0902
chore: update gitignore
Dec 15, 2025
b5d59c3
chore: augment code ignore __reports__/
Dec 15, 2025
a7cf3da
chore: remove dev reports
Dec 15, 2025
588def6
docs(codex): update to mention support for Codex
Dec 15, 2025
391c2da
chore: remove dev debug scripts
Dec 15, 2025
5eb4154
chore(release): 0.7.1-dev.2
semantic-release-bot Dec 15, 2025
055f019
fix(cli): prevent unwanted defaults
Dec 17, 2025
a64a058
chore(release): 0.7.1-dev.3
semantic-release-bot Dec 18, 2025
b7093a0
ci: update release discord notification
Dec 22, 2025
0f618ff
ci: update pre-release discord notification
Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .augmentignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__reports__/
5 changes: 5 additions & 0 deletions .github/workflows/prerelease-discord-notification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ jobs:
⚠️ **This is a pre-release** - expect potential bugs and breaking changes
🔬 Perfect for testing new features and providing feedback
📋 Click [here](${{ github.event.release.html_url }}) to view what's new and download

💻 Install with pip:
```bash
pip install hatch-xclam=${{ github.event.release.tag_name }}
```

Help us make *Hatch!* better by testing and reporting [issues](https://github.com/CrackingShells/Hatch/issues)! 🐛➡️✨
color: 0xff9500 # Orange color for pre-release
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/release-discord-notification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,14 @@ jobs:

🚀 Get the latest features and improvements
📚 Click [here](${{ github.event.release.html_url }}) to view the changelog and download

💻 Install with pip:
```bash
pip install hatch-xclam
```

Happy MCP coding with *Hatch!* 🐣
color: 0x00ff88
username: "Cracking Shells Release Bot"
image: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/hatch_icon_dark_bg_transparent.png"
avatar_url: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/cs_core_dark_bg.png"
image: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/hatch_icon_light_bg_transparent.png"
avatar_url: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/cs_icon_light_bg.png"
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ envs/
Laghari/
__temp__/

# IDEs
## Kiro
.kiro/

## VS Code
.vscode/


# vvvvvvv Default Python Ignore vvvvvvvv
# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
## <small>0.7.1-dev.3 (2025-12-18)</small>

* fix(cli): prevent unwanted defaults ([8a9441b](https://github.com/CrackingShells/Hatch/commit/8a9441b))

## <small>0.7.1-dev.2 (2025-12-15)</small>

* Merge branch 'feat/codex-support' into dev ([b82bf0f](https://github.com/CrackingShells/Hatch/commit/b82bf0f))
* chore: augment code ignore __reports__/ ([bed11cd](https://github.com/CrackingShells/Hatch/commit/bed11cd))
* chore: remove dev debug scripts ([f1880ce](https://github.com/CrackingShells/Hatch/commit/f1880ce))
* chore: remove dev reports ([8c3f455](https://github.com/CrackingShells/Hatch/commit/8c3f455))
* chore: update gitignore ([cd1934a](https://github.com/CrackingShells/Hatch/commit/cd1934a))
* docs(cli): add host labels to configure command help ([842e771](https://github.com/CrackingShells/Hatch/commit/842e771))
* docs(codex): add CLI reference and usage examples ([a68e932](https://github.com/CrackingShells/Hatch/commit/a68e932))
* docs(codex): update to mention support for Codex ([7fa2bdb](https://github.com/CrackingShells/Hatch/commit/7fa2bdb))
* docs(reports): add implementation completion report ([7b67225](https://github.com/CrackingShells/Hatch/commit/7b67225))
* docs(reports): codex CLI enhancement analysis and implementation ([c5327d2](https://github.com/CrackingShells/Hatch/commit/c5327d2))
* docs(reports): dev specs for Codex MCP config support via Hatch! ([330c683](https://github.com/CrackingShells/Hatch/commit/330c683))
* test(codex): add comprehensive CLI argument tests ([0e15301](https://github.com/CrackingShells/Hatch/commit/0e15301))
* test(codex): fix Omni model field name in conversion test ([21efc10](https://github.com/CrackingShells/Hatch/commit/21efc10))
* feat(codex): add CLI arguments for Codex ([88e81fe](https://github.com/CrackingShells/Hatch/commit/88e81fe))
* feat(codex): add MCPServerConfigCodex model and infrastructure ([061ae53](https://github.com/CrackingShells/Hatch/commit/061ae53))
* feat(codex): add tomli-w dependency for TOML support ([00b960f](https://github.com/CrackingShells/Hatch/commit/00b960f))
* feat(codex): implement CodexHostStrategy with TOML support ([4e55b34](https://github.com/CrackingShells/Hatch/commit/4e55b34))
* feat(mcp-models): map shared tool filtering flags to Codex ([b2e6103](https://github.com/CrackingShells/Hatch/commit/b2e6103))
* fix(backup): preserve original filename in backup creation ([c2dde46](https://github.com/CrackingShells/Hatch/commit/c2dde46))
* fix(codex): map http_headers to universal headers field ([7c5e2cb](https://github.com/CrackingShells/Hatch/commit/7c5e2cb))
* tests(codex): add comprehensive Codex host strategy test suite ([2858ba5](https://github.com/CrackingShells/Hatch/commit/2858ba5))

## <small>0.7.1-dev.1 (2025-12-15)</small>

* Merge branch 'feat/kiro-support' into dev ([d9c11ca](https://github.com/CrackingShells/Hatch/commit/d9c11ca))
* docs: add Kiro to supported MCP hosts across all documentation ([1b1dd1a](https://github.com/CrackingShells/Hatch/commit/1b1dd1a))
* docs(dev): enhance MCP host configuration extension guidance ([3bdae9c](https://github.com/CrackingShells/Hatch/commit/3bdae9c))
* fix: config path handling ([63efad7](https://github.com/CrackingShells/Hatch/commit/63efad7))
* test(kiro): add comprehensive backup integration tests ([65b4a29](https://github.com/CrackingShells/Hatch/commit/65b4a29))
* test(kiro): implement comprehensive test suite for Kiro MCP integration ([a55b48a](https://github.com/CrackingShells/Hatch/commit/a55b48a))
* test(kiro): implement test data infrastructure for Kiro MCP integration ([744219f](https://github.com/CrackingShells/Hatch/commit/744219f))
* feat(cli): add Kiro-specific arguments to mcp configure command ([23c1e9d](https://github.com/CrackingShells/Hatch/commit/23c1e9d))
* feat(kiro): add configuration file backup support ([49007dd](https://github.com/CrackingShells/Hatch/commit/49007dd))
* feat(mcp-host-config): add Kiro IDE support to model layer ([f8ede12](https://github.com/CrackingShells/Hatch/commit/f8ede12))
* feat(mcp-host-config): implement KiroHostStrategy for configuration management ([ab69e2a](https://github.com/CrackingShells/Hatch/commit/ab69e2a))

## 0.7.0 (2025-12-11)

* Merge pull request #42 from CrackingShells/dev ([be3a9a3](https://github.com/CrackingShells/Hatch/commit/be3a9a3)), closes [#42](https://github.com/CrackingShells/Hatch/issues/42)
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

## Introduction

Hatch is the package manager for managing Model Context Protocol (MCP) servers with environment isolation, multi-type dependency resolution, and multi-host deployment. Deploy MCP servers to Claude Desktop, VS Code, Cursor, and other platforms with automatic dependency management.
Hatch is the package manager for managing Model Context Protocol (MCP) servers with environment isolation, multi-type dependency resolution, and multi-host deployment. Deploy MCP servers to Claude Desktop, VS Code, Cursor, Kiro, Codex, and other platforms with automatic dependency management.

The canonical documentation is at `docs/index.md` and published at <https://hatch.readthedocs.io/en/latest/>.

## Key Features

- **Environment Isolation** — Create separate, isolated workspaces for different projects without conflicts
- **Multi-Type Dependency Resolution** — Automatically resolve and install system packages, Python packages, Docker containers, and Hatch packages
- **Multi-Host Deployment** — Deploy MCP servers to Claude Desktop, Claude Code, VS Code, Cursor, LM Studio, and Google Gemini CLI
- **Multi-Host Deployment** — Configure MCP servers on multiple host platforms
- **Package Validation** — Ensure packages meet schema requirements before distribution
- **Development-Focused** — Optimized for rapid development and testing of MCP server ecosystems

Expand All @@ -24,6 +24,8 @@ Hatch supports deployment to the following MCP host platforms:
- **Claude Code** — Claude integration for VS Code with MCP capabilities
- **VS Code** — Visual Studio Code with the MCP extension for tool integration
- **Cursor** — AI-first code editor with built-in MCP server support
- **Kiro** — Kiro IDE with MCP support
- **Codex** — OpenAI Codex with MCP server configuration support
- **LM Studio** — Local LLM inference platform with MCP server integration
- **Google Gemini CLI** — Command-line interface for Google's Gemini model with MCP support

Expand Down
77 changes: 60 additions & 17 deletions docs/articles/devs/architecture/mcp_host_configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ This article is about:

## Overview

The MCP host configuration system provides centralized management of Model Context Protocol server configurations across multiple host platforms (Claude Desktop, VS Code, Cursor, etc.). It uses a decorator-based architecture with inheritance patterns for clean code organization and easy extension.
The MCP host configuration system provides centralized management of Model Context Protocol server configurations across multiple host platforms (Claude Desktop, VS Code, Cursor, Kiro, etc.). It uses a decorator-based architecture with inheritance patterns for clean code organization and easy extension.

> **Adding a new host?** See the [Implementation Guide](../implementation_guides/mcp_host_configuration_extension.md) for step-by-step instructions.

## Core Architecture

Expand Down Expand Up @@ -45,8 +47,9 @@ Host strategies are organized into families for code reuse:
- **Implementations**: Cursor, LM Studio

#### Independent Strategies
- **VSCode**: Nested configuration structure (`mcp.servers`)
- **VSCode**: User-wide configuration (`~/.config/Code/User/mcp.json`), uses `servers` key
- **Gemini**: Official configuration path (`~/.gemini/settings.json`)
- **Kiro**: User-level configuration (`~/.kiro/settings/mcp.json`), full backup manager integration

### Consolidated Data Model

Expand Down Expand Up @@ -111,15 +114,51 @@ class MCPHostStrategy(ABC):

## Integration Points

### Backup System Integration
Every host strategy must integrate with these systems. Missing any integration point will result in incomplete functionality.

### Backup System Integration (Required)

All configuration operations integrate with the backup system:
All configuration write operations **must** integrate with the backup system via `MCPHostConfigBackupManager` and `AtomicFileOperations`:

```python
from .backup import MCPHostConfigBackupManager, AtomicFileOperations

def write_configuration(self, config: HostConfiguration, no_backup: bool = False) -> bool:
# ... prepare data ...
backup_manager = MCPHostConfigBackupManager()
atomic_ops = AtomicFileOperations()
atomic_ops.atomic_write_with_backup(
file_path=config_path,
data=existing_data,
backup_manager=backup_manager,
hostname="your-host", # Must match MCPHostType value
skip_backup=no_backup
)
```

**Key requirements:**
- **Atomic operations**: Configuration changes are backed up before modification
- **Rollback capability**: Failed operations can be reverted
- **Multi-host support**: Separate backups per host platform
- **Rollback capability**: Failed operations can be reverted automatically
- **Hostname identification**: Each host uses its `MCPHostType` value for backup tracking
- **Timestamped retention**: Backup files include timestamps for tracking

### Model Registry Integration (Required for host-specific fields)

If your host has unique configuration fields (like Kiro's `disabled`, `autoApprove`, `disabledTools`):

1. Create host-specific model class in `models.py`
2. Register in `HOST_MODEL_REGISTRY`
3. Extend `MCPServerConfigOmni` with new fields
4. Implement `from_omni()` conversion method

### CLI Integration (Required for host-specific arguments)

If your host has unique CLI arguments:

1. Extend `handle_mcp_configure()` function signature in `cli_hatch.py`
2. Add argument parser entries for new flags
3. Update omni model population logic

### Environment Manager Integration

The system integrates with environment management through corrected data structures:
Expand All @@ -132,27 +171,31 @@ The system integrates with environment management through corrected data structu

### Adding New Host Platforms

To add support for a new host platform:
To add support for a new host platform, complete these integration points:

1. **Define host type** in `MCPHostType` enum
2. **Create strategy class** inheriting from appropriate family base or `MCPHostStrategy`
3. **Implement required methods** for configuration path, validation, read/write operations
4. **Add decorator registration** with `@register_host_strategy(MCPHostType.NEW_HOST)`
5. **Add tests** following existing test patterns
| Integration Point | Required? | Files to Modify |
|-------------------|-----------|-----------------|
| Host type enum | Always | `models.py` |
| Strategy class | Always | `strategies.py` |
| Backup integration | Always | `strategies.py` (in `write_configuration`) |
| Host-specific model | If unique fields | `models.py`, `HOST_MODEL_REGISTRY` |
| CLI arguments | If unique fields | `cli_hatch.py` |
| Test infrastructure | Always | `tests/` |

Example:
**Minimal implementation** (standard host, no unique fields):

```python
@register_host_strategy(MCPHostType.NEW_HOST)
class NewHostStrategy(MCPHostStrategy):
class NewHostStrategy(ClaudeHostStrategy): # Inherit backup integration
def get_config_path(self) -> Optional[Path]:
return Path.home() / ".new_host" / "config.json"

def validate_server_config(self, server_config: MCPServerConfig) -> bool:
# Host-specific validation logic
return True
def is_host_available(self) -> bool:
return self.get_config_path().parent.exists()
```

**Full implementation** (host with unique fields): See [Implementation Guide](../implementation_guides/mcp_host_configuration_extension.md).

### Extending Validation Rules

Host strategies can implement custom validation:
Expand Down
Loading
Loading