File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # =============================================================================
2+ # PURPOSE: Validate platform-specific setup and server startup
3+ # =============================================================================
4+
5+ name : Cross-Platform Validation
6+
7+ on :
8+ push :
9+ branches : [main]
10+ pull_request :
11+ branches : [main]
12+ schedule :
13+ - cron : " 0 3 * * 0"
14+
15+ env :
16+ CI : " true"
17+ MCP_SERVER_REQUEST_TIMEOUT : 120
18+ MCP_REQUEST_MAX_TOTAL_TIMEOUT : 300
19+
20+ jobs :
21+ ubuntu :
22+ strategy :
23+ fail-fast : true
24+ matrix :
25+ os : [ubuntu-22.04, ubuntu-24.04]
26+ runs-on : ${{ matrix.os }}
27+ timeout-minutes : 30
28+
29+ steps :
30+ - name : Checkout
31+ uses : actions/checkout@v4
32+
33+ - name : Run Ubuntu setup script
34+ run : bash scripts/setup-ubuntu.sh
35+
36+ - name : Verify MCP server starts
37+ run : |
38+ uv run openroad-mcp --help
39+ echo "✅ MCP server CLI verified on ${{ matrix.os }}"
40+
41+ - name : Run tests (tools and integration)
42+ run : uv run pytest tests/tools tests/integration -v
43+
44+ macos :
45+ runs-on : macos-latest
46+ timeout-minutes : 30
47+
48+ steps :
49+ - name : Checkout
50+ uses : actions/checkout@v4
51+
52+ - name : Run macOS setup script
53+ run : bash scripts/setup-macos.sh
54+
55+ - name : Verify MCP server starts (post-setup)
56+ run : |
57+ uv run openroad-mcp --help
58+ echo "✅ MCP server CLI verified post-setup"
59+
60+ - name : Run tests (tools only, skip PTY integration tests)
61+ run : uv run pytest tests/tools -v
Original file line number Diff line number Diff line change @@ -38,6 +38,8 @@ A Model Context Protocol (MCP) server that provides tools for interacting with O
3838
3939** New to OpenROAD MCP?** Check out our [ Quick Start guide] ( QUICKSTART.md ) .
4040
41+ For platform-specific setup instructions, see the [ Cross-Platform Guide] ( docs/CROSS_PLATFORM.md ) .
42+
4143### Standard Configuration
4244
4345The basic configuration for all MCP clients:
Original file line number Diff line number Diff line change 1+ # Cross-Platform Guide — OpenROAD MCP
2+
3+ OpenROAD-MCP supports ** Ubuntu** and ** macOS** . This guide covers setup and known issues for each.
4+
5+ ---
6+
7+ ## Ubuntu (22.04 / 24.04)
8+
9+ ### Automated Setup
10+
11+ ``` bash
12+ ./scripts/setup-ubuntu.sh
13+ ```
14+
15+ ### Manual Steps
16+
17+ ``` bash
18+ # Install system dependencies
19+ sudo apt-get update
20+ sudo apt-get install -y python3 python3-dev build-essential curl
21+
22+ # Install uv
23+ curl -LsSf https://astral.sh/uv/install.sh | sh
24+ export PATH=" $HOME /.local/bin:$PATH "
25+
26+ # Install OpenROAD (for integration tests)
27+ # See: https://openroad.readthedocs.io/en/latest/main/GettingStarted.html
28+
29+ # Sync project
30+ uv sync --all-extras --inexact
31+ make test
32+ ```
33+
34+ ---
35+
36+ ## macOS
37+
38+ ### Automated Setup
39+
40+ ``` bash
41+ ./scripts/setup-macos.sh
42+ ```
43+
44+ ### Known Issues
45+
46+ | Issue | Workaround |
47+ | -------| -----------|
48+ | OpenROAD not available via Homebrew | Use Docker: ` docker compose up openroad-mcp ` |
49+ | PTY tests flaky on macOS CI | Run ` make test ` (core only); PTY tests are optional |
50+ | ` libomp ` not found | ` brew install libomp ` |
51+
52+ ---
53+
54+ For testing commands and MCP client compatibility, see the main [ README.md] ( ../README.md ) .
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ # =============================================================================
3+ # setup-macos.sh — Install OpenROAD-MCP dependencies on macOS
4+ # =============================================================================
5+ set -euo pipefail
6+
7+ echo " 🔧 Setting up OpenROAD-MCP on macOS..."
8+
9+ if [[ -z " ${CI:- } " ]]; then
10+ read -r -p " This script will install uv and project dependencies. Continue? [y/N] " response
11+ if [[ ! " $response " =~ ^[Yy]$ ]]; then
12+ echo " Aborted."
13+ exit 0
14+ fi
15+ fi
16+
17+ if ! command -v uv & > /dev/null; then
18+ echo " 📦 Installing uv..."
19+ curl -LsSf https://astral.sh/uv/install.sh | sh
20+ export PATH=" $HOME /.local/bin:$PATH "
21+ fi
22+
23+ echo " 📦 Installing project dependencies..."
24+ uv sync --all-extras --inexact
25+
26+ echo " "
27+ echo " ✅ macOS setup complete!"
28+ echo " "
29+ echo " Next steps:"
30+ echo " 1. Install OpenROAD (optional, for full flows):"
31+ echo " See: https://openroad.readthedocs.io/en/latest/main/GettingStarted.html"
32+ echo " 2. Or use Docker: docker compose up openroad-mcp"
33+ echo " 3. Run tests: make test"
34+ echo " 4. Start MCP server: uv run openroad-mcp"
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ # =============================================================================
3+ # setup-ubuntu.sh — Install OpenROAD-MCP dependencies on Ubuntu (22.04/24.04)
4+ # =============================================================================
5+ set -euo pipefail
6+
7+ echo " 🔧 Setting up OpenROAD-MCP on Ubuntu..."
8+
9+ if [[ -z " ${CI:- } " ]]; then
10+ read -r -p " This script will install system packages and project dependencies. Continue? [y/N] " response
11+ if [[ ! " $response " =~ ^[Yy]$ ]]; then
12+ echo " Aborted."
13+ exit 0
14+ fi
15+ fi
16+
17+ sudo apt-get update
18+ sudo apt-get install -y \
19+ python3 python3-dev \
20+ build-essential curl
21+
22+ if ! command -v uv & > /dev/null; then
23+ echo " 📦 Installing uv..."
24+ curl -LsSf https://astral.sh/uv/install.sh | sh
25+ export PATH=" $HOME /.local/bin:$PATH "
26+ fi
27+
28+ echo " 📦 Installing project dependencies..."
29+ uv sync --all-extras --inexact
30+
31+ echo " "
32+ echo " ✅ Ubuntu setup complete!"
33+ echo " "
34+ echo " Next steps:"
35+ echo " 1. Install OpenROAD: https://openroad.readthedocs.io/en/latest/main/GettingStarted.html"
36+ echo " 2. Run tests: make test"
37+ echo " 3. Start MCP server: uv run openroad-mcp"
You can’t perform that action at this time.
0 commit comments