Skip to main content
Glama

MCP Project Orchestrator

fan-out-orchestrator.yml4.31 kB
name: Fan-Out Release Orchestrator on: workflow_dispatch: inputs: source_repository: description: 'Source repository that triggered the release' required: true type: string source_version: description: 'Version of the source repository' required: true type: string release_type: description: 'Type of release (foundation, tooling, domain, orchestration)' required: true type: choice options: - foundation - tooling - domain - orchestration dependency_update: description: 'Whether this is a dependency update' required: false default: 'false' type: boolean triggered_by: description: 'What triggered this orchestration' required: false default: 'manual' type: string env: PYTHON_VERSION: "3.11" jobs: orchestrate-release: name: Orchestrate Cross-Repository Release runs-on: ubuntu-latest permissions: contents: write pull-requests: write actions: read steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} cache: 'pip' - name: Install dependencies run: | pip install -r requirements.txt pip install PyGithub httpx - name: Run fan-out orchestration env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | python -c " import asyncio from mcp_project_orchestrator.fan_out_orchestrator import ReleaseCoordinator async def orchestrate(): coordinator = ReleaseCoordinator('${{ env.GITHUB_TOKEN }}') if '${{ inputs.release_type }}' == 'foundation': result = await coordinator.coordinate_foundation_release('${{ inputs.source_version }}') elif '${{ inputs.release_type }}' == 'tooling': result = await coordinator.coordinate_tooling_release('${{ inputs.source_version }}') elif '${{ inputs.release_type }}' == 'domain': result = await coordinator.coordinate_domain_release('${{ inputs.source_version }}') else: print('Unknown release type: ${{ inputs.release_type }}') return print(f'Orchestration result: {result}') asyncio.run(orchestrate()) " - name: Generate orchestration report if: always() run: | echo "## 🚀 Fan-Out Release Orchestration Report" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "**Orchestration Run:** $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY echo "**Source Repository:** ${{ inputs.source_repository }}" >> $GITHUB_STEP_SUMMARY echo "**Source Version:** ${{ inputs.source_version }}" >> $GITHUB_STEP_SUMMARY echo "**Release Type:** ${{ inputs.release_type }}" >> $GITHUB_STEP_SUMMARY echo "**Triggered By:** ${{ inputs.triggered_by }}" >> $GITHUB_STEP_SUMMARY echo "**Dependency Update:** ${{ inputs.dependency_update }}" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### Orchestration Actions" >> $GITHUB_STEP_SUMMARY echo "- Analyzed dependency relationships" >> $GITHUB_STEP_SUMMARY echo "- Triggered dependent repository workflows" >> $GITHUB_STEP_SUMMARY echo "- Created dependency update PRs where needed" >> $GITHUB_STEP_SUMMARY echo "- Monitored release status across ecosystem" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### Next Steps" >> $GITHUB_STEP_SUMMARY echo "- Review triggered workflows in dependent repositories" >> $GITHUB_STEP_SUMMARY echo "- Monitor build and test results" >> $GITHUB_STEP_SUMMARY echo "- Address any dependency conflicts" >> $GITHUB_STEP_SUMMARY echo "- Verify end-to-end integration" >> $GITHUB_STEP_SUMMARY

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sparesparrow/mcp-project-orchestrator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server