mcp-orchestration


Namemcp-orchestration JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryMCP server for centralized configuration management with cryptographic signatures and content-addressable storage
upload_time2025-10-26 04:49:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseMIT
keywords configuration cryptography mcp model-context-protocol orchestration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mcp-orchestration

MCP server orchestration and management tools

## Overview

**mcp-orchestration** is a Model Context Protocol (MCP) server that provides centralized configuration management and orchestration for MCP client applications. It enables cryptographically signed, content-addressable storage of client configurations with automated diff detection and update recommendations.

This project follows the MCP specification and can be integrated with:
- Claude Desktop
- Cursor
- Other MCP-compatible clients

## Features

- **Cryptographic Signatures** - Ed25519 signatures for configuration integrity and authenticity
- **Content-Addressable Storage** - SHA-256 based artifact identification for immutable configs
- **Multi-Client Registry** - Support for multiple MCP clients (Claude Desktop, Cursor) with profile-based configs
- **Configuration Diff** - Intelligent comparison with field-level change detection
- **MCP Tools & Resources** - 4 tools (list_clients, list_profiles, get_config, diff_config) and 2 resources
- **CLI Initialization** - Quick-start command to generate signed sample configurations
- **Comprehensive Testing** - 67 passing tests with full integration coverage
## Installation

### From PyPI (Recommended)

```bash
pip install mcp-orchestration
```

### From Source

```bash
# Clone repository
git clone https://github.com/liminalcommons/mcp-orchestration.git
cd mcp-orchestration

# Install with development dependencies
pip install -e ".[dev]"

# Install pre-commit hooks (for contributors)
pre-commit install
```

### Initialize Configuration Storage

After installation, generate signed sample configurations:

```bash
mcp-orchestration-init
```

This creates:
- Ed25519 signing keys at `~/.mcp-orchestration/keys/`
- Sample configurations for supported clients
- Content-addressable artifact storage

## Configuration

### Environment Variables

Create a `.env` file:

```env
# Application configuration
MCP_ORCHESTRATION_LOG_LEVEL=INFO

# Add your configuration here
```

### Client Configuration

#### Claude Desktop (macOS)

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-orchestration": {
      "command": "python3",
      "args": ["-m", "mcp_orchestrator.mcp.server"],
      "env": {
        "PYTHONPATH": "/path/to/mcp-orchestration/src"
      }
    }
  }
}
```

For installed package (after PyPI release):
```json
{
  "mcpServers": {
    "mcp-orchestration": {
      "command": "mcp-orchestration"
    }
  }
}
```

#### Cursor IDE

Add to Cursor settings JSON:

```json
{
  "mcp": {
    "servers": {
      "mcp-orchestration": {
        "command": "python3",
        "args": ["-m", "mcp_orchestrator.mcp.server"]
      }
    }
  }
}
```
## Usage

Once configured in your MCP client (Claude Desktop, Cursor, etc.), the following tools are available:

### MCP Tools

**list_clients** - List all supported MCP client families:
```
Returns: client_id, display_name, platform, capabilities, profiles
```

**list_profiles** - List profiles for a specific client:
```
Input: client_id (e.g., "claude-desktop")
Returns: profile_id, display_name, artifact_id, signature
```

**get_config** - Retrieve a signed configuration artifact:
```
Input: client_id, profile_id (default: "default"), artifact_id (optional)
Returns: Full signed artifact with payload, signature, metadata
```

**diff_config** - Compare local config against stored version:
```
Input: client_id, profile_id, local_payload
Returns: Diff status (up-to-date/outdated/diverged), changes, recommendation
```

### CLI Commands

```bash
# Initialize configuration storage with sample configs
mcp-orchestration-init

# Initialize to custom location
mcp-orchestration-init --storage-path /custom/path

# Regenerate existing configurations
mcp-orchestration-init --regenerate
```
## Development

### Quick Reference

**Discover all available commands:**
```bash
just --list
```

**Common tasks:**
```bash
just test            # Run test suite
just lint            # Check code style
just pre-merge       # Run all checks (required before PR)
just build           # Build distribution packages
just help            # Show common workflows
```

The [justfile](justfile) is self-documenting - run `just` or `just --list` to see all commands.

### Common Workflows

**Running tests:**
```bash
just test           # Full test suite
just smoke          # Quick smoke tests (~10 sec)
just test-coverage  # With coverage report
```

**Code quality:**
```bash
just lint           # Check style
just lint-fix       # Auto-fix issues
just format         # Format code
just typecheck      # Type checking
just check          # All quality checks
```

**Before creating PR:**
```bash
just pre-merge      # Run lint + test + coverage (required)
```

**Building & releasing:**
```bash
just build                  # Build distribution packages
just prepare-release patch  # Bump version, update CHANGELOG
just publish-test           # Publish to TestPyPI
just publish-prod           # Publish to PyPI
```

**Application:**
```bash
just run            # Start the application
mcp-orchestration  # Or run directly
```

### Without `just` (Fallback)

If `just` installation fails, use commands directly:

| Task | Command |
|------|---------|
| Run tests | `pytest` |
| Build | `./scripts/build-dist.sh` |
| Lint | `ruff check src/mcp_orchestration tests` |
| Format | `black src/mcp_orchestration tests` |
| Pre-merge | `./scripts/pre-merge.sh` |
| Type check | `mypy src/mcp_orchestration` |

See [justfile](justfile) for complete command mappings.
## Documentation

This project follows the [Diátaxis framework](https://diataxis.fr/) with three documentation directories:

### For End Users (user-docs/)
Learn how to **use** mcp-orchestration:
- **[Getting Started Tutorial](user-docs/tutorials/01-getting-started.md)** - Learn the basics
- **[How-To Guides](user-docs/how-to/)** - Solve specific problems
- **[API Reference](user-docs/reference/)** - Look up specifications
- **[Explanations](user-docs/explanation/)** - Understand concepts

### For Project Planning (project-docs/)
Project roadmap and architecture decisions:
- **[ROADMAP.md](project-docs/ROADMAP.md)** - Long-term vision and milestones
- **[Release Notes](project-docs/releases/)** - Version history and changes
- **[Architecture Decisions](project-docs/decisions/)** - ADRs and design choices

### For Contributors (dev-docs/)
Learn how to **build** mcp-orchestration:
- **[CONTRIBUTING.md](dev-docs/CONTRIBUTING.md)** - Contribution guidelines
- **[DEVELOPMENT.md](dev-docs/DEVELOPMENT.md)** - Developer setup and architecture
- **[TROUBLESHOOTING.md](dev-docs/TROUBLESHOOTING.md)** - Common development issues
- **[Vision Documents](dev-docs/vision/)** - Strategic design guidance
### For AI Coding Agents
- **[AGENTS.md](AGENTS.md)** - Machine-readable instructions (OpenAI/Google standard)
**Documentation Standard:**
- **[DOCUMENTATION_STANDARD.md](DOCUMENTATION_STANDARD.md)** - Writing guidelines and templates

## Project Principles

This project follows best practices for:

- **Code Quality** - Linting (ruff), formatting (black), type checking (mypy)
- **Testing** - Comprehensive test suite with 85%+ coverage
- **Documentation** - Clear, up-to-date documentation following Diátaxis framework
- **Agentic Coding** - Machine-readable instructions, stateful memory for AI agents
## License

MIT License - see [LICENSE](LICENSE)
## Related Projects

- [chora-base](https://github.com/liminalcommons/chora-base) - Python project template
- [chora-composer](https://github.com/liminalcommons/chora-composer) - Configuration-driven artifact generation
- [chora-platform](https://github.com/liminalcommons/chora-platform) - Shared platform tooling

---

🤖 Generated with [chora-base](https://github.com/liminalcommons/chora-base) template

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-orchestration",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "configuration, cryptography, mcp, model-context-protocol, orchestration",
    "author": null,
    "author_email": "Victor Piper <victor@liminalcommons.org>",
    "download_url": "https://files.pythonhosted.org/packages/94/0f/1fee9ccf9d5f040de27416c0a42e910fb71509a60b50643a10aafcf384fa/mcp_orchestration-0.1.5.tar.gz",
    "platform": null,
    "description": "# mcp-orchestration\n\nMCP server orchestration and management tools\n\n## Overview\n\n**mcp-orchestration** is a Model Context Protocol (MCP) server that provides centralized configuration management and orchestration for MCP client applications. It enables cryptographically signed, content-addressable storage of client configurations with automated diff detection and update recommendations.\n\nThis project follows the MCP specification and can be integrated with:\n- Claude Desktop\n- Cursor\n- Other MCP-compatible clients\n\n## Features\n\n- **Cryptographic Signatures** - Ed25519 signatures for configuration integrity and authenticity\n- **Content-Addressable Storage** - SHA-256 based artifact identification for immutable configs\n- **Multi-Client Registry** - Support for multiple MCP clients (Claude Desktop, Cursor) with profile-based configs\n- **Configuration Diff** - Intelligent comparison with field-level change detection\n- **MCP Tools & Resources** - 4 tools (list_clients, list_profiles, get_config, diff_config) and 2 resources\n- **CLI Initialization** - Quick-start command to generate signed sample configurations\n- **Comprehensive Testing** - 67 passing tests with full integration coverage\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install mcp-orchestration\n```\n\n### From Source\n\n```bash\n# Clone repository\ngit clone https://github.com/liminalcommons/mcp-orchestration.git\ncd mcp-orchestration\n\n# Install with development dependencies\npip install -e \".[dev]\"\n\n# Install pre-commit hooks (for contributors)\npre-commit install\n```\n\n### Initialize Configuration Storage\n\nAfter installation, generate signed sample configurations:\n\n```bash\nmcp-orchestration-init\n```\n\nThis creates:\n- Ed25519 signing keys at `~/.mcp-orchestration/keys/`\n- Sample configurations for supported clients\n- Content-addressable artifact storage\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file:\n\n```env\n# Application configuration\nMCP_ORCHESTRATION_LOG_LEVEL=INFO\n\n# Add your configuration here\n```\n\n### Client Configuration\n\n#### Claude Desktop (macOS)\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-orchestration\": {\n      \"command\": \"python3\",\n      \"args\": [\"-m\", \"mcp_orchestrator.mcp.server\"],\n      \"env\": {\n        \"PYTHONPATH\": \"/path/to/mcp-orchestration/src\"\n      }\n    }\n  }\n}\n```\n\nFor installed package (after PyPI release):\n```json\n{\n  \"mcpServers\": {\n    \"mcp-orchestration\": {\n      \"command\": \"mcp-orchestration\"\n    }\n  }\n}\n```\n\n#### Cursor IDE\n\nAdd to Cursor settings JSON:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"mcp-orchestration\": {\n        \"command\": \"python3\",\n        \"args\": [\"-m\", \"mcp_orchestrator.mcp.server\"]\n      }\n    }\n  }\n}\n```\n## Usage\n\nOnce configured in your MCP client (Claude Desktop, Cursor, etc.), the following tools are available:\n\n### MCP Tools\n\n**list_clients** - List all supported MCP client families:\n```\nReturns: client_id, display_name, platform, capabilities, profiles\n```\n\n**list_profiles** - List profiles for a specific client:\n```\nInput: client_id (e.g., \"claude-desktop\")\nReturns: profile_id, display_name, artifact_id, signature\n```\n\n**get_config** - Retrieve a signed configuration artifact:\n```\nInput: client_id, profile_id (default: \"default\"), artifact_id (optional)\nReturns: Full signed artifact with payload, signature, metadata\n```\n\n**diff_config** - Compare local config against stored version:\n```\nInput: client_id, profile_id, local_payload\nReturns: Diff status (up-to-date/outdated/diverged), changes, recommendation\n```\n\n### CLI Commands\n\n```bash\n# Initialize configuration storage with sample configs\nmcp-orchestration-init\n\n# Initialize to custom location\nmcp-orchestration-init --storage-path /custom/path\n\n# Regenerate existing configurations\nmcp-orchestration-init --regenerate\n```\n## Development\n\n### Quick Reference\n\n**Discover all available commands:**\n```bash\njust --list\n```\n\n**Common tasks:**\n```bash\njust test            # Run test suite\njust lint            # Check code style\njust pre-merge       # Run all checks (required before PR)\njust build           # Build distribution packages\njust help            # Show common workflows\n```\n\nThe [justfile](justfile) is self-documenting - run `just` or `just --list` to see all commands.\n\n### Common Workflows\n\n**Running tests:**\n```bash\njust test           # Full test suite\njust smoke          # Quick smoke tests (~10 sec)\njust test-coverage  # With coverage report\n```\n\n**Code quality:**\n```bash\njust lint           # Check style\njust lint-fix       # Auto-fix issues\njust format         # Format code\njust typecheck      # Type checking\njust check          # All quality checks\n```\n\n**Before creating PR:**\n```bash\njust pre-merge      # Run lint + test + coverage (required)\n```\n\n**Building & releasing:**\n```bash\njust build                  # Build distribution packages\njust prepare-release patch  # Bump version, update CHANGELOG\njust publish-test           # Publish to TestPyPI\njust publish-prod           # Publish to PyPI\n```\n\n**Application:**\n```bash\njust run            # Start the application\nmcp-orchestration  # Or run directly\n```\n\n### Without `just` (Fallback)\n\nIf `just` installation fails, use commands directly:\n\n| Task | Command |\n|------|---------|\n| Run tests | `pytest` |\n| Build | `./scripts/build-dist.sh` |\n| Lint | `ruff check src/mcp_orchestration tests` |\n| Format | `black src/mcp_orchestration tests` |\n| Pre-merge | `./scripts/pre-merge.sh` |\n| Type check | `mypy src/mcp_orchestration` |\n\nSee [justfile](justfile) for complete command mappings.\n## Documentation\n\nThis project follows the [Di\u00e1taxis framework](https://diataxis.fr/) with three documentation directories:\n\n### For End Users (user-docs/)\nLearn how to **use** mcp-orchestration:\n- **[Getting Started Tutorial](user-docs/tutorials/01-getting-started.md)** - Learn the basics\n- **[How-To Guides](user-docs/how-to/)** - Solve specific problems\n- **[API Reference](user-docs/reference/)** - Look up specifications\n- **[Explanations](user-docs/explanation/)** - Understand concepts\n\n### For Project Planning (project-docs/)\nProject roadmap and architecture decisions:\n- **[ROADMAP.md](project-docs/ROADMAP.md)** - Long-term vision and milestones\n- **[Release Notes](project-docs/releases/)** - Version history and changes\n- **[Architecture Decisions](project-docs/decisions/)** - ADRs and design choices\n\n### For Contributors (dev-docs/)\nLearn how to **build** mcp-orchestration:\n- **[CONTRIBUTING.md](dev-docs/CONTRIBUTING.md)** - Contribution guidelines\n- **[DEVELOPMENT.md](dev-docs/DEVELOPMENT.md)** - Developer setup and architecture\n- **[TROUBLESHOOTING.md](dev-docs/TROUBLESHOOTING.md)** - Common development issues\n- **[Vision Documents](dev-docs/vision/)** - Strategic design guidance\n### For AI Coding Agents\n- **[AGENTS.md](AGENTS.md)** - Machine-readable instructions (OpenAI/Google standard)\n**Documentation Standard:**\n- **[DOCUMENTATION_STANDARD.md](DOCUMENTATION_STANDARD.md)** - Writing guidelines and templates\n\n## Project Principles\n\nThis project follows best practices for:\n\n- **Code Quality** - Linting (ruff), formatting (black), type checking (mypy)\n- **Testing** - Comprehensive test suite with 85%+ coverage\n- **Documentation** - Clear, up-to-date documentation following Di\u00e1taxis framework\n- **Agentic Coding** - Machine-readable instructions, stateful memory for AI agents\n## License\n\nMIT License - see [LICENSE](LICENSE)\n## Related Projects\n\n- [chora-base](https://github.com/liminalcommons/chora-base) - Python project template\n- [chora-composer](https://github.com/liminalcommons/chora-composer) - Configuration-driven artifact generation\n- [chora-platform](https://github.com/liminalcommons/chora-platform) - Shared platform tooling\n\n---\n\n\ud83e\udd16 Generated with [chora-base](https://github.com/liminalcommons/chora-base) template\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MCP server for centralized configuration management with cryptographic signatures and content-addressable storage",
    "version": "0.1.5",
    "project_urls": {
        "Documentation": "https://github.com/liminalcommons/mcp-orchestration#readme",
        "Homepage": "https://github.com/liminalcommons/mcp-orchestration",
        "Issues": "https://github.com/liminalcommons/mcp-orchestration/issues",
        "Repository": "https://github.com/liminalcommons/mcp-orchestration"
    },
    "split_keywords": [
        "configuration",
        " cryptography",
        " mcp",
        " model-context-protocol",
        " orchestration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ef7cf16f5170301922e78e5f95cfee1772c38cf2feae314b17a68614807d2ffc",
                "md5": "565172acbaa387930bd1bfcca248d2d4",
                "sha256": "93a82baadd476aee1d8895edc2aa05df578b070133645f617ae3b9f7e77d4480"
            },
            "downloads": -1,
            "filename": "mcp_orchestration-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "565172acbaa387930bd1bfcca248d2d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 100341,
            "upload_time": "2025-10-26T04:49:01",
            "upload_time_iso_8601": "2025-10-26T04:49:01.856089Z",
            "url": "https://files.pythonhosted.org/packages/ef/7c/f16f5170301922e78e5f95cfee1772c38cf2feae314b17a68614807d2ffc/mcp_orchestration-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "940f1fee9ccf9d5f040de27416c0a42e910fb71509a60b50643a10aafcf384fa",
                "md5": "51f6844d160c621d66a33346e03662ca",
                "sha256": "750b283a702f2a05baf4be4738cf5b86d022fd6a8b3f67c42627a3930b1e54c2"
            },
            "downloads": -1,
            "filename": "mcp_orchestration-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "51f6844d160c621d66a33346e03662ca",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 561433,
            "upload_time": "2025-10-26T04:49:03",
            "upload_time_iso_8601": "2025-10-26T04:49:03.202813Z",
            "url": "https://files.pythonhosted.org/packages/94/0f/1fee9ccf9d5f040de27416c0a42e910fb71509a60b50643a10aafcf384fa/mcp_orchestration-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-26 04:49:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "liminalcommons",
    "github_project": "mcp-orchestration#readme",
    "github_not_found": true,
    "lcname": "mcp-orchestration"
}
        
Elapsed time: 1.73172s