{"id":45889938,"url":"https://github.com/orchestra-mcp/framework","last_synced_at":"2026-04-01T19:10:49.552Z","repository":{"id":341307733,"uuid":"1168149046","full_name":"orchestra-mcp/framework","owner":"orchestra-mcp","description":"An AI-agentic IDE framework built on a plugin host architecture. Every capability is a plugin — storage, tools, transport, AI — communicating over QUIC with mTLS and Protobuf messages.","archived":false,"fork":false,"pushed_at":"2026-03-20T05:01:03.000Z","size":39276,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-20T14:28:52.999Z","etag":null,"topics":["agentic","ai","ai-ide","go","ide","mcp","orchestra-mcp","plugin-system","protobuf","quic","rust"],"latest_commit_sha":null,"homepage":"https://orchestra-mcp.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orchestra-mcp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["fadymondy"]}},"created_at":"2026-02-27T04:07:20.000Z","updated_at":"2026-03-20T05:01:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/orchestra-mcp/framework","commit_stats":null,"previous_names":["orchestra-mcp/framework"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/orchestra-mcp/framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchestra-mcp%2Fframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchestra-mcp%2Fframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchestra-mcp%2Fframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchestra-mcp%2Fframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orchestra-mcp","download_url":"https://codeload.github.com/orchestra-mcp/framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orchestra-mcp%2Fframework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic","ai","ai-ide","go","ide","mcp","orchestra-mcp","plugin-system","protobuf","quic","rust"],"created_at":"2026-02-27T17:27:44.782Z","updated_at":"2026-04-01T19:10:49.547Z","avatar_url":"https://github.com/orchestra-mcp.png","language":"Shell","readme":"# Orchestra Framework\n\n![Orchestra Framework](https://raw.githubusercontent.com/orchestra-mcp/framework/master/arts/cover.jpg)\n\nAn AI-agentic IDE framework with 290+ MCP tools across 39 plugins. MCP protocol `2025-06-18` with tools, prompts, resources, and logging. Single-process in-process architecture — 4 core plugins bundled, 35 optional plugins installable separately.\n\n## Install\n\n```bash\n# npm (recommended)\nnpm install -g @orchestra-mcp/cli\n\n# macOS / Linux\ncurl -fsSL https://raw.githubusercontent.com/orchestra-mcp/framework/master/scripts/install.sh | sh\n\n# Windows (Git Bash)\ncurl -fsSL --ssl-revoke-best-effort https://raw.githubusercontent.com/orchestra-mcp/framework/master/scripts/install.sh | sh\n\n# From source\ngit clone https://github.com/orchestra-mcp/framework.git\ncd framework \u0026\u0026 make install\n```\n\n**Supported platforms**: macOS (amd64, arm64), Linux (amd64, arm64), Windows (amd64 via Git Bash)\n\n## Quick Start\n\n```bash\n# 1. Initialize Orchestra in your project (auto-detects your IDE)\ncd your-project\norchestra init\n\n# 2. That's it — your AI IDE now has 290+ tools + 5 prompts\n```\n\n`orchestra init` detects your IDE and writes the correct MCP config:\n\n| IDE | Config File |\n|-----|-------------|\n| Claude Code | `.mcp.json` |\n| Claude Desktop | `claude_desktop_config.json` (global) |\n| Cursor | `.cursor/mcp.json` |\n| VS Code / Copilot | `.vscode/mcp.json` |\n| Cline | `.vscode/mcp.json` |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n| Codex (OpenAI) | `.codex/config.toml` |\n| Gemini Code Assist | `.gemini/settings.json` |\n| Zed | `.zed/settings.json` |\n| Continue.dev | `.continue/mcpServers/orchestra.yaml` |\n\n```bash\n# Configure a specific IDE\norchestra init --ide=cursor\n\n# Configure Claude Desktop (global config)\norchestra init --ide=claude-desktop\n\n# Configure ALL supported IDEs at once\norchestra init --all\n```\n\n### MCPB Bundle (Claude Desktop One-Click Install)\n\n```bash\nmake mcpb\n# Produces: dist/orchestra.mcpb\n```\n\nThe `.mcpb` bundle packages cross-compiled binaries for all platforms. Users install it through Claude Desktop's extension installer — it extracts the correct binary, prompts for the workspace directory, and configures the MCP server automatically.\n\n## Architecture\n\n```\nAgent (Claude, GPT, Gemini, etc.)\n  │ MCP protocol 2025-06-18 (JSON-RPC over stdin/stdout)\n  │ Capabilities: tools, prompts, resources, logging\n  ▼\norchestra serve (single process)\n  ├── storage.markdown        (in-process, disk storage)\n  ├── tools.features          (in-process, 34 workflow tools)\n  ├── tools.marketplace       (in-process, 15 tools + 5 prompts)\n  ├── transport.stdio         (in-process, JSON-RPC bridge)\n  │\n  ├── WebSocket :9201         (for browser/web clients)\n  ├── TCP server :50101       (for desktop apps — Swift, Windows, Linux)\n  │\n  └── External plugins        (QUIC + mTLS, optional)\n      ├── bridge.claude       (5 tools — AI provider)\n      ├── bridge.openai       (5 tools — AI provider)\n      ├── bridge.gemini       (5 tools — AI provider)\n      ├── agent.orchestrator  (20 tools — multi-agent)\n      ├── devtools.*          (80+ tools — git, docker, ssh, terminal, etc.)\n      ├── bridge.discord      (5 tools — Slack bot)\n      ├── bridge.slack        (5 tools — Discord bot)\n      └── 29 more plugins...\n```\n\n**Single-process** — 4 core plugins run in-process via direct Go function calls. Optional plugins connect over QUIC with mTLS and Protobuf framing.\n\n### MCP Capabilities\n\n| Capability | Description |\n|------------|-------------|\n| **Tools** | 290+ tools with `listChanged` notifications (dynamic tool updates) |\n| **Prompts** | 5 prompts (setup-project, recommend-packs, audit-packs, search-marketplace, onboard-project) |\n| **Resources** | Project features, notes, and docs exposed via `orchestra://` URI scheme |\n| **Logging** | Server-side log messages with RFC 5424 severity levels and threshold filtering |\n\n## CLI Commands\n\n```bash\norchestra init                          # Initialize MCP configs for your IDE(s)\norchestra serve                         # Start the MCP server\norchestra version                       # Print version info\norchestra update                        # Self-update to latest release\norchestra plugin install \u003cname\u003e         # Install an optional plugin\norchestra plugin remove \u003cname\u003e          # Remove a plugin\norchestra plugin list                   # List installed plugins\norchestra plugin search \u003cquery\u003e         # Search available plugins\norchestra pack install \u003crepo\u003e[@ver]     # Install a content pack (skills/agents/hooks)\norchestra pack remove \u003cname\u003e            # Remove an installed pack\norchestra pack list                     # List installed packs\norchestra pack search \u003cquery\u003e           # Search available packs\norchestra pack recommend                # Recommend packs for your project\n```\n\n## Plugins (38 total)\n\n### Core Plugins (bundled, always available)\n\n| Plugin | Tools | Description |\n|--------|-------|-------------|\n| [`storage.markdown`](https://github.com/orchestra-mcp/plugin-storage-markdown) | — | File storage with YAML frontmatter + Markdown body |\n| [`tools.features`](https://github.com/orchestra-mcp/plugin-tools-features) | 34 | Feature-driven workflow (11-state lifecycle) |\n| [`tools.marketplace`](https://github.com/orchestra-mcp/plugin-tools-marketplace) | 15+5p | Pack management and marketplace |\n| [`transport.stdio`](https://github.com/orchestra-mcp/plugin-transport-stdio) | — | MCP JSON-RPC bridge (stdin/stdout) |\n\n### Optional Plugins (install separately)\n\n| Category | Plugins | Tools |\n|----------|---------|-------|\n| **AI Bridges** | [bridge.claude](https://github.com/orchestra-mcp/plugin-bridge-claude), [bridge.openai](https://github.com/orchestra-mcp/plugin-bridge-openai), [bridge.gemini](https://github.com/orchestra-mcp/plugin-bridge-gemini), [bridge.ollama](https://github.com/orchestra-mcp/plugin-bridge-ollama), [bridge.firecrawl](https://github.com/orchestra-mcp/plugin-bridge-firecrawl) | 25 |\n| **Chat Bridges** | [bridge.discord](https://github.com/orchestra-mcp/plugin-bridge-discord), [bridge.slack](https://github.com/orchestra-mcp/plugin-bridge-slack) | 10 |\n| **Agent** | [agent.orchestrator](https://github.com/orchestra-mcp/plugin-agent-orchestrator) | 20 |\n| **DevTools** | [devtools.git](https://github.com/orchestra-mcp/plugin-devtools-git), [devtools.docker](https://github.com/orchestra-mcp/plugin-devtools-docker), [devtools.terminal](https://github.com/orchestra-mcp/plugin-devtools-terminal), [devtools.ssh](https://github.com/orchestra-mcp/plugin-devtools-ssh), [devtools.file-explorer](https://github.com/orchestra-mcp/plugin-devtools-file-explorer), [devtools.database](https://github.com/orchestra-mcp/plugin-devtools-database), [devtools.debugger](https://github.com/orchestra-mcp/plugin-devtools-debugger), [devtools.test-runner](https://github.com/orchestra-mcp/plugin-devtools-test-runner), [devtools.log-viewer](https://github.com/orchestra-mcp/plugin-devtools-log-viewer), [devtools.services](https://github.com/orchestra-mcp/plugin-devtools-services), [devtools.devops](https://github.com/orchestra-mcp/plugin-devtools-devops), [devtools.components](https://github.com/orchestra-mcp/plugin-devtools-components) | 110+ |\n| **AI Awareness** | [ai.screenshot](https://github.com/orchestra-mcp/plugin-ai-screenshot), [ai.vision](https://github.com/orchestra-mcp/plugin-ai-vision), [ai.browser-context](https://github.com/orchestra-mcp/plugin-ai-browser-context), [ai.screen-reader](https://github.com/orchestra-mcp/plugin-ai-screen-reader) | 25 |\n| **Tools** | [tools.agentops](https://github.com/orchestra-mcp/plugin-tools-agentops), [tools.sessions](https://github.com/orchestra-mcp/plugin-tools-sessions), [tools.workspace](https://github.com/orchestra-mcp/plugin-tools-workspace), [tools.hooks](https://github.com/orchestra-mcp/plugin-tools-hooks), [tools.notes](https://github.com/orchestra-mcp/plugin-tools-notes), [tools.docs](https://github.com/orchestra-mcp/plugin-tools-docs), [tools.markdown](https://github.com/orchestra-mcp/plugin-tools-markdown), [tools.extension-generator](https://github.com/orchestra-mcp/plugin-tools-extension-generator) | 58 |\n| **Services** | [services.voice](https://github.com/orchestra-mcp/plugin-services-voice), [services.notifications](https://github.com/orchestra-mcp/plugin-services-notifications) | 16 |\n| **Integration** | [integration.figma](https://github.com/orchestra-mcp/plugin-integration-figma) | 6 |\n| **Transport** | [transport.quic-bridge](https://github.com/orchestra-mcp/plugin-transport-quic-bridge), [transport.webtransport](https://github.com/orchestra-mcp/plugin-transport-webtransport) | — |\n\n```bash\n# Install a plugin\norchestra plugin install bridge-claude\n\n# Search plugins\norchestra plugin search \"ai\"\n```\n\n## Content Packs\n\nPacks are installable bundles of skills (slash commands), agents (specialized sub-agents), and hooks (shell scripts). 25 official packs:\n\n| Pack | Stacks | Contents |\n|------|--------|----------|\n| [`pack-essentials`](https://github.com/orchestra-mcp/pack-essentials) | all | project-manager, qa-testing, docs, scrum-master, devops |\n| [`pack-go-backend`](https://github.com/orchestra-mcp/pack-go-backend) | go | go-backend skill, go-architect + qa-go agents |\n| [`pack-rust-engine`](https://github.com/orchestra-mcp/pack-rust-engine) | rust | rust-engine skill, rust-engineer + qa-rust agents |\n| [`pack-react-frontend`](https://github.com/orchestra-mcp/pack-react-frontend) | react, ts | typescript-react, ui-design, tailwind skills |\n| [`pack-database`](https://github.com/orchestra-mcp/pack-database) | all | database-sync skill, dba + postgres/sqlite/redis agents |\n| [`pack-ai`](https://github.com/orchestra-mcp/pack-ai) | all | ai-agentic skill, ai-engineer + lancedb agents |\n| [`pack-proto`](https://github.com/orchestra-mcp/pack-proto) | go, rust | proto-grpc skill, quic-protocol agent |\n| [`pack-desktop`](https://github.com/orchestra-mcp/pack-desktop) | go, swift | wails, macos, native-widgets skills |\n| [`pack-mobile`](https://github.com/orchestra-mcp/pack-mobile) | react | react-native skill, mobile-dev agent |\n| [`pack-chrome`](https://github.com/orchestra-mcp/pack-chrome) | typescript | chrome-extension skill |\n| [`pack-infra`](https://github.com/orchestra-mcp/pack-infra) | all | gcp-infrastructure skill, devops agent |\n| [`pack-extensions`](https://github.com/orchestra-mcp/pack-extensions) | all | native-extensions, raycast, vscode skills |\n| [`pack-analytics`](https://github.com/orchestra-mcp/pack-analytics) | all | clickhouse-engineer agent |\n| [`pack-native-swift`](https://github.com/orchestra-mcp/pack-native-swift) | swift | swift-plugin agent |\n| [`pack-native-kotlin`](https://github.com/orchestra-mcp/pack-native-kotlin) | kotlin | kotlin-plugin agent |\n| [`pack-native-csharp`](https://github.com/orchestra-mcp/pack-native-csharp) | csharp | csharp-plugin agent |\n| [`pack-native-gtk`](https://github.com/orchestra-mcp/pack-native-gtk) | c | gtk-plugin agent |\n| [`pack-powersync`](https://github.com/orchestra-mcp/pack-powersync) | react, rn, ts, flutter | powersync skill, powersync-engineer agent |\n| [`pack-laravel`](https://github.com/orchestra-mcp/pack-laravel) | php | laravel skill, laravel-engineer + qa-laravel agents |\n| [`pack-inertia`](https://github.com/orchestra-mcp/pack-inertia) | php, react, ts | inertia skill, inertia-engineer agent |\n| [`pack-tailwind`](https://github.com/orchestra-mcp/pack-tailwind) | react, ts, php | tailwindcss skill, tailwind-designer agent |\n| [`pack-gcp`](https://github.com/orchestra-mcp/pack-gcp) | docker, go, ts | gcp skill, gcp-architect agent |\n| [`pack-docker`](https://github.com/orchestra-mcp/pack-docker) | docker | docker skill, docker-engineer agent |\n| [`pack-go-adk`](https://github.com/orchestra-mcp/pack-go-adk) | go | go-adk skill, go-adk-engineer agent |\n| [`pack-flow`](https://github.com/orchestra-mcp/pack-flow) | all | 18 FLOW methodology skills + telemetry hook |\n\n```bash\norchestra pack install github.com/orchestra-mcp/pack-go-backend\norchestra pack recommend    # Auto-detect stacks and suggest packs\norchestra pack search \"react\"\n```\n\n## Feature Workflow (70+ Tools)\n\nThe tools.features plugin implements an 11-state feature lifecycle with full project management capabilities:\n\n```\nbacklog → todo → in-progress → ready-for-testing → in-testing →\n  ready-for-docs → in-docs → documented → in-review → done\n                                              │\n                      needs-edits ◄───────────┘\n```\n\n### Tool Categories\n\n| Category | Count | Tools |\n|----------|-------|-------|\n| **Project** | 4 | `create_project`, `list_projects`, `delete_project`, `get_project_status` |\n| **Feature** | 6 | `create_feature`, `get_feature`, `update_feature`, `list_features`, `delete_feature`, `search_features` |\n| **Workflow** | 6 | `advance_feature`, `reject_feature`, `get_next_feature`, `set_current_feature`, `get_workflow_status`, `get_gate_requirements` |\n| **Custom Workflows** | 5 | `create_workflow`, `get_workflow`, `update_workflow`, `delete_workflow`, `list_workflows` |\n| **Review** | 3 | `request_review`, `submit_review`, `get_pending_reviews` |\n| **Dependencies** | 4 | `add_dependency`, `remove_dependency`, `get_dependency_graph`, `get_blocked_features` |\n| **WIP Limits** | 3 | `set_wip_limits`, `get_wip_limits`, `check_wip_limit` |\n| **Reporting** | 3 | `get_progress`, `get_review_queue`, `get_blocked_features` |\n| **Metadata** | 8 | `add_labels`, `remove_labels`, `assign_feature`, `unassign_feature`, `set_estimate`, `save_note`, `list_notes` |\n| **Plans** | 8 | `create_plan`, `approve_plan`, `breakdown_plan`, `complete_plan`, `delete_plan`, `get_plan`, `list_plans`, `update_plan` |\n| **Persons** | 6 | `create_person`, `get_person`, `update_person`, `delete_person`, `list_persons`, `get_person_workload` |\n| **Delegations** | 5 | `delegate_feature`, `respond_delegation`, `get_delegation`, `list_delegations`, `get_pending_delegations` |\n| **Requests** | 6 | `create_request`, `get_request`, `list_requests`, `dismiss_request`, `convert_request`, `get_next_request` |\n| **Experiments** | 8 | `create_experiment`, `start_experiment`, `complete_experiment`, `abandon_experiment`, `update_experiment`, `get_experiment`, `list_experiments`, `spawn_feature_from_experiment` |\n| **Discovery** | 10 | `create_discovery_cycle`, `get_discovery_cycle`, `update_discovery_cycle`, `complete_discovery_cycle`, `delete_discovery_cycle`, `list_discovery_cycles`, `create_discovery_review`, `get_discovery_review`, `record_review_decisions`, `get_discovery_status` |\n\n## Server Deployment\n\n`setup-server.sh` provisions an Ubuntu 24.04 server with:\n\n- **Go** backend (Fiber v3 + GORM) via systemd\n- **Next.js** frontend (SSR) via systemd + pnpm\n- **PowerSync** (self-hosted, Docker) for offline-first mobile sync\n- **PostgreSQL 16** with WAL logical replication\n- **Caddy** reverse proxy with Cloudflare DNS-01 TLS\n- **UFW** firewall, **swap**, **SSH hardening**, **daily backups**\n\n```bash\n# First-time setup (run as root)\nbash scripts/deploy/setup-server.sh\n\n# Deploy updates (run as deploy user)\n/opt/orchestra/deploy.sh all        # Deploy everything\n/opt/orchestra/deploy.sh web        # Go backend only\n/opt/orchestra/deploy.sh next       # Next.js frontend only\n/opt/orchestra/deploy.sh powersync  # PowerSync only\n```\n\nThe script is idempotent — safe to re-run on existing servers (preserves credentials).\n\n## Project Structure\n\n```\nframework/\n├── libs/                              # All packages (each is a separate GitHub repo)\n│   ├── proto/                         #   Protobuf definitions (plugin.proto)\n│   ├── gen-go/                        #   Generated Go code from proto\n│   ├── sdk-go/                        #   Plugin SDK (QUIC, mTLS, framing, helpers)\n│   ├── orchestrator/                  #   Central hub (config, loader, router, server)\n│   ├── cli/                           #   CLI binary (init, serve, version, pack, plugin)\n│   ├── plugin-storage-markdown/       #   Core: Markdown storage\n│   ├── plugin-tools-features/         #   Core: 34 feature workflow tools\n│   ├── plugin-tools-marketplace/      #   Core: pack management + marketplace\n│   ├── plugin-transport-stdio/        #   Core: MCP JSON-RPC bridge\n│   ├── plugin-bridge-claude/          #   Optional: Claude AI provider\n│   ├── plugin-bridge-openai/          #   Optional: OpenAI provider\n│   ├── plugin-bridge-gemini/          #   Optional: Gemini provider\n│   ├── plugin-agent-orchestrator/     #   Optional: Multi-agent orchestration\n│   ├── plugin-devtools-*/             #   Optional: 12 devtools plugins\n│   ├── plugin-ai-*/                   #   Optional: 4 AI awareness plugins\n│   └── ... (38 plugins total)\n├── packs/                             # 24 installable content packs\n├── scripts/\n│   ├── install.sh                     # curl | sh installer (macOS/Linux/Windows)\n│   ├── npm-postinstall.js             # npm postinstall binary downloader\n│   ├── deploy/setup-server.sh         # Ubuntu 24.04 server provisioning\n│   ├── deploy/deploy.sh               # Deploy script (web/next/powersync)\n│   ├── mcpb/                          # MCPB bundle packaging\n│   │   ├── manifest.json              #   MCPB v0.3 manifest\n│   │   ├── build-mcpb.sh             #   Cross-compile + package script\n│   │   ├── test-mcpb.sh              #   Validation tests (26 checks)\n│   │   └── icon.png                   #   Bundle icon\n│   ├── new-plugin.sh                  # Plugin generator\n│   ├── sync-repos.sh                  # Push libs/ to individual GitHub repos\n│   ├── release.sh                     # Tag + create GitHub releases\n│   ├── ship.sh                        # Full ship pipeline (build, test, sync, release)\n│   └── test-e2e.sh                    # End-to-end integration test\n├── .github/workflows/\n│   ├── ci.yml                         # CI: build + test + vet on push/PR\n│   ├── release.yml                    # Release: 5-platform cross-compile on tag push\n│   └── publish.yml                    # Publish @orchestra-mcp/cli to npm after release\n├── package.json                       # npm package (@orchestra-mcp/cli)\n├── orchestra.json                     # Package manifest\n├── orchestra.lock                     # Pinned versions (48 packages)\n├── go.work                            # Go workspace\n└── Makefile                           # Build, test, install, release\n```\n\n## Makefile Targets\n\n```bash\nmake build              # Build all binaries to bin/\nmake test               # Run all unit tests\nmake test-e2e           # Build + run end-to-end integration test\nmake install            # Install binaries to /usr/local/bin\nmake release            # Cross-compile for darwin/linux × amd64/arm64 + windows/amd64\nmake mcpb               # Build .mcpb bundle for Claude Desktop one-click install\nmake clean              # Remove build artifacts and certs\nmake proto              # Lint + generate proto code\n```\n\n## Plugin SDK\n\nBuild a plugin in ~50 lines of Go:\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"github.com/orchestra-mcp/sdk-go/plugin\"\n    \"google.golang.org/protobuf/types/known/structpb\"\n)\n\nfunc main() {\n    p := plugin.New(\"my.plugin\").\n        Version(\"0.1.0\").\n        Description(\"My custom plugin\").\n        ProvidesTools(\"hello\").\n        BuildWithTools()\n\n    p.Server().RegisterTool(\"hello\", \"Say hello\", nil,\n        func(ctx context.Context, args *structpb.Struct) (string, error) {\n            return `{\"message\": \"Hello from my plugin!\"}`, nil\n        })\n\n    p.ParseFlags()\n\n    ctx, cancel := context.WithCancel(context.Background())\n    defer cancel()\n    p.Run(ctx)\n}\n```\n\n### Scaffold a New Plugin\n\n```bash\n./scripts/new-plugin.sh my-plugin tools       # Tools plugin\n./scripts/new-plugin.sh my-plugin storage     # Storage plugin\n./scripts/new-plugin.sh my-plugin transport   # Transport plugin\n```\n\n## Scripts\n\n```bash\n# Ship a release (build, test, sync, tag, release)\n./scripts/ship.sh v1.0.0\n./scripts/ship.sh v1.0.0 --skip-pr --message \"Release v1.0.0\"\n./scripts/ship.sh v1.0.0 --dry-run\n\n# Sync local libs/ to individual GitHub repos\n./scripts/sync-repos.sh                     # Sync all 48 packages\n./scripts/sync-repos.sh sdk-go cli          # Sync specific packages\n\n# Release all packages\n./scripts/release.sh v1.0.0                 # Tag + release all 48 repos\n./scripts/release.sh v1.0.0 --force         # Re-tag existing version\n```\n\n## Protocol\n\n### MCP (IDE ↔ Orchestra)\n\nMCP protocol version `2025-06-18` over stdio (JSON-RPC 2.0). Supports:\n- `tools/list`, `tools/call` — 290+ tools with `listChanged` notifications\n- `prompts/list`, `prompts/get` — 5 prompts\n- `resources/list`, `resources/read`, `resources/templates/list` — project resources\n- `logging/setLevel` — server-side log filtering\n\n### Inter-Plugin (Orchestra ↔ Plugins)\n\nLength-delimited Protobuf over QUIC with mTLS:\n\n```\n[4 bytes big-endian uint32 length][N bytes Protobuf PluginRequest/Response]\n```\n\n- **mTLS**: Auto-generated ed25519 CA + per-plugin certificates at `~/.orchestra/certs/`\n- **In-process**: Core plugins bypass QUIC entirely — direct Go function calls\n- **WebSocket**: Browser/web clients connect on port 9201 (JSON-RPC)\n- **TCP**: Desktop apps (Swift, Windows, Linux) connect via length-delimited Protobuf on port 50101\n- **Storage format**: YAML frontmatter (`---` delimiters) + Markdown body\n\n## Module Paths\n\nAll 48 packages are published as independent Go modules under [`github.com/orchestra-mcp/`](https://github.com/orchestra-mcp):\n\n| Core | Plugins (Core) | Plugins (Optional) |\n|------|----------------|-------------------|\n| [proto](https://github.com/orchestra-mcp/proto) | [plugin-storage-markdown](https://github.com/orchestra-mcp/plugin-storage-markdown) | [plugin-bridge-claude](https://github.com/orchestra-mcp/plugin-bridge-claude) |\n| [gen-go](https://github.com/orchestra-mcp/gen-go) | [plugin-tools-features](https://github.com/orchestra-mcp/plugin-tools-features) | [plugin-bridge-openai](https://github.com/orchestra-mcp/plugin-bridge-openai) |\n| [sdk-go](https://github.com/orchestra-mcp/sdk-go) | [plugin-tools-marketplace](https://github.com/orchestra-mcp/plugin-tools-marketplace) | [plugin-bridge-gemini](https://github.com/orchestra-mcp/plugin-bridge-gemini) |\n| [orchestrator](https://github.com/orchestra-mcp/orchestrator) | [plugin-transport-stdio](https://github.com/orchestra-mcp/plugin-transport-stdio) | [plugin-bridge-ollama](https://github.com/orchestra-mcp/plugin-bridge-ollama) |\n| [cli](https://github.com/orchestra-mcp/cli) | | [plugin-bridge-firecrawl](https://github.com/orchestra-mcp/plugin-bridge-firecrawl) |\n| | | [plugin-bridge-discord](https://github.com/orchestra-mcp/plugin-bridge-discord) |\n| | | [plugin-bridge-slack](https://github.com/orchestra-mcp/plugin-bridge-slack) |\n| | | [plugin-agent-orchestrator](https://github.com/orchestra-mcp/plugin-agent-orchestrator) |\n| | | [plugin-tools-agentops](https://github.com/orchestra-mcp/plugin-tools-agentops) |\n| | | [plugin-tools-sessions](https://github.com/orchestra-mcp/plugin-tools-sessions) |\n| | | [plugin-tools-workspace](https://github.com/orchestra-mcp/plugin-tools-workspace) |\n| | | [plugin-tools-hooks](https://github.com/orchestra-mcp/plugin-tools-hooks) |\n| | | [plugin-tools-notes](https://github.com/orchestra-mcp/plugin-tools-notes) |\n| | | [plugin-tools-docs](https://github.com/orchestra-mcp/plugin-tools-docs) |\n| | | [plugin-tools-markdown](https://github.com/orchestra-mcp/plugin-tools-markdown) |\n| | | [plugin-tools-extension-generator](https://github.com/orchestra-mcp/plugin-tools-extension-generator) |\n| | | [plugin-devtools-git](https://github.com/orchestra-mcp/plugin-devtools-git) |\n| | | [plugin-devtools-docker](https://github.com/orchestra-mcp/plugin-devtools-docker) |\n| | | [plugin-devtools-terminal](https://github.com/orchestra-mcp/plugin-devtools-terminal) |\n| | | [plugin-devtools-ssh](https://github.com/orchestra-mcp/plugin-devtools-ssh) |\n| | | [plugin-devtools-file-explorer](https://github.com/orchestra-mcp/plugin-devtools-file-explorer) |\n| | | [plugin-devtools-database](https://github.com/orchestra-mcp/plugin-devtools-database) |\n| | | [plugin-devtools-debugger](https://github.com/orchestra-mcp/plugin-devtools-debugger) |\n| | | [plugin-devtools-test-runner](https://github.com/orchestra-mcp/plugin-devtools-test-runner) |\n| | | [plugin-devtools-log-viewer](https://github.com/orchestra-mcp/plugin-devtools-log-viewer) |\n| | | [plugin-devtools-services](https://github.com/orchestra-mcp/plugin-devtools-services) |\n| | | [plugin-devtools-devops](https://github.com/orchestra-mcp/plugin-devtools-devops) |\n| | | [plugin-devtools-components](https://github.com/orchestra-mcp/plugin-devtools-components) |\n| | | [plugin-ai-screenshot](https://github.com/orchestra-mcp/plugin-ai-screenshot) |\n| | | [plugin-ai-vision](https://github.com/orchestra-mcp/plugin-ai-vision) |\n| | | [plugin-ai-browser-context](https://github.com/orchestra-mcp/plugin-ai-browser-context) |\n| | | [plugin-ai-screen-reader](https://github.com/orchestra-mcp/plugin-ai-screen-reader) |\n| | | [plugin-services-voice](https://github.com/orchestra-mcp/plugin-services-voice) |\n| | | [plugin-services-notifications](https://github.com/orchestra-mcp/plugin-services-notifications) |\n| | | [plugin-integration-figma](https://github.com/orchestra-mcp/plugin-integration-figma) |\n| | | [plugin-transport-quic-bridge](https://github.com/orchestra-mcp/plugin-transport-quic-bridge) |\n| | | [plugin-transport-webtransport](https://github.com/orchestra-mcp/plugin-transport-webtransport) |\n| | | [plugin-sync-cloud](https://github.com/orchestra-mcp/plugin-sync-cloud) |\n| | | [plugin-engine-rag](https://github.com/orchestra-mcp/plugin-engine-rag) |\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, coding standards, and PR process.\n\n## License\n\nMIT\n","funding_links":["https://github.com/sponsors/fadymondy"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forchestra-mcp%2Fframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forchestra-mcp%2Fframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forchestra-mcp%2Fframework/lists"}