aidevops 2.79.0 → 2.79.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -71,7 +71,7 @@ The result: AI agents that work *with* your development process, not around it.
71
71
  [![Services Supported](https://img.shields.io/badge/Services%20Supported-30+-brightgreen.svg)](#comprehensive-service-coverage)
72
72
  [![AGENTS.md](https://img.shields.io/badge/AGENTS.md-Compliant-blue.svg)](https://agents.md/)
73
73
  [![AI Optimized](https://img.shields.io/badge/AI%20Optimized-Yes-brightgreen.svg)](https://github.com/marcusquinn/aidevops/blob/main/AGENTS.md)
74
- [![MCP Servers](https://img.shields.io/badge/MCP%20Servers-20+-orange.svg)](#mcp-integrations)
74
+ [![MCP Servers](https://img.shields.io/badge/MCP%20Servers-18-orange.svg)](#mcp-integrations)
75
75
  [![API Integrations](https://img.shields.io/badge/API%20Integrations-30+-blue.svg)](#comprehensive-service-coverage)
76
76
 
77
77
  <!-- AI-CONTEXT-START -->
@@ -153,7 +153,7 @@ git clone https://github.com/marcusquinn/aidevops.git ~/Git/aidevops
153
153
  - Configure your AI assistants automatically
154
154
  - Guide you through recommended tools (Tabby, Zed, Git CLIs)
155
155
 
156
- **New users: Start OpenCode and type `/onboarding`** to configure your services interactively. The onboarding wizard will:
156
+ **New users: Start [OpenCode](https://opencode.ai/) and type `/onboarding`** to configure your services interactively. OpenCode is the recommended tool for aidevops - all features, agents, and workflows are designed and tested for it first. The onboarding wizard will:
157
157
  - Explain what **[aidevops](https://aidevops.sh)** can do
158
158
  - Ask about your work to give personalized recommendations
159
159
  - Show which services are configured vs need setup
@@ -374,13 +374,13 @@ The secure workflow is included at `.github/workflows/opencode-agent.yml`.
374
374
 
375
375
  See `.agent/tools/git/opencode-github-security.md` for the full security documentation.
376
376
 
377
- **Supported AI Assistants:** (OpenCode & Zed are our daily drivers and preferred tools, so will have the most continual testing. All 18 assistants below have MCP configuration support.)
377
+ **Supported AI Assistants:** OpenCode is the recommended and primary-tested tool. All 18 assistants below have MCP configuration support, but only OpenCode receives continual testing and first-class integration. Other tools are supported as a courtesy for users evaluating aidevops capabilities.
378
378
 
379
- **Preferred:**
379
+ **Recommended:**
380
380
 
381
- - **[Tabby](https://tabby.sh/)** - Modern terminal with colour-coded Profiles. Use different profile colours per project/repo to visually distinguish which codebase you're working in. **Auto-syncs tab title with git repo/branch.**
382
- - **[OpenCode](https://opencode.ai/)** - Primary choice. Powerful agentic TUI/CLI with native MCP support, Tab-based agent switching, and excellent DX.
383
- - **[Zed](https://zed.dev/)** - High-performance editor with AI (Preferred, with the OpenCode Agent Extension)
381
+ - **[OpenCode](https://opencode.ai/)** - The recommended AI coding agent. Powerful agentic TUI/CLI with native MCP support, Tab-based agent switching, LSP integration, plugin ecosystem, and excellent DX. All aidevops features are designed and tested for OpenCode first.
382
+ - **[Tabby](https://tabby.sh/)** - Recommended terminal. Colour-coded Profiles per project/repo, **auto-syncs tab title with git repo/branch.**
383
+ - **[Zed](https://zed.dev/)** - Recommended editor. High-performance with AI integration (use with the OpenCode Agent Extension).
384
384
 
385
385
  ### Terminal Tab Title Sync
386
386
 
@@ -394,6 +394,8 @@ Your terminal tab/window title automatically shows `repo/branch` context when wo
394
394
 
395
395
  See `.agent/tools/terminal/terminal-title.md` for customization options.
396
396
 
397
+ **Also Supported (community-tested):**
398
+
397
399
  **IDE-Based:**
398
400
 
399
401
  - **[Cursor](https://cursor.sh/)** - AI-first IDE with MCP support
@@ -663,34 +665,47 @@ The setup script offers to install these tools automatically.
663
665
 
664
666
  ## **MCP Integrations**
665
667
 
666
- **Model Context Protocol servers for real-time AI assistant integration.** The framework helps configure these MCPs for **18 AI assistants** including OpenCode (preferred), Cursor, Claude Code/Desktop, Windsurf, Continue.dev, Cody, Zed, GitHub Copilot, Kilo Code, Kiro, AntiGravity, Gemini CLI, Droid, Warp AI, Aider, and Qwen.
667
-
668
- ### **All Supported MCPs**
669
-
670
- | MCP | Purpose | API Key Required |
671
- |-----|---------|------------------|
668
+ **Model Context Protocol servers for real-time AI assistant integration.** The framework configures these MCPs primarily for **[OpenCode](https://opencode.ai/)** (recommended). Configuration support is also available for 17 other AI assistants including Cursor, Claude Code/Desktop, Windsurf, Continue.dev, Cody, Zed, GitHub Copilot, Kilo Code, Kiro, AntiGravity, Gemini CLI, Droid, Warp AI, Aider, and Qwen.
669
+
670
+ ### **All Supported MCPs (18 active)**
671
+
672
+ MCP packages are installed globally via `bun install -g` for instant startup (no `npx` registry lookups). Run `setup.sh` or `aidevops update-tools` to update to latest versions.
673
+
674
+ | MCP | Purpose | Tier | API Key Required |
675
+ |-----|---------|------|------------------|
676
+ | [Augment Context Engine](https://docs.augmentcode.com/context-services/mcp/overview) | Semantic codebase retrieval | Global | Yes (Augment account) |
677
+ | [Claude Code MCP](https://github.com/steipete/claude-code-mcp) | Claude as sub-agent | Global | No |
678
+ | [osgrep](https://github.com/Ryandonofrio3/osgrep) | Local semantic search | Global | No |
679
+ | [Amazon Order History](https://github.com/marcusquinn/amazon-order-history-csv-download-mcp) | Order data extraction | Per-agent | No |
680
+ | [Chrome DevTools](https://chromedevtools.github.io/devtools-protocol/) | Browser debugging & automation | Per-agent | No |
681
+ | [Context7](https://context7.com/) | Library documentation lookup | Per-agent | No |
682
+ | [Docker MCP](https://docs.docker.com/ai/mcp-catalog/) | Container management | Per-agent | No |
683
+ | [Google Analytics](https://developers.google.com/analytics) | Analytics data | Per-agent | Yes (Google API) |
684
+ | [Google Search Console](https://developers.google.com/webmaster-tools) | Search performance data | Per-agent | Yes (Google API) |
685
+ | [Grep by Vercel](https://grep.app/) | GitHub code search | Per-agent | No |
686
+ | [LocalWP](https://localwp.com/) | WordPress database access | Per-agent | No (local) |
687
+ | [macOS Automator](https://github.com/steipete/macos-automator-mcp) | macOS automation | Per-agent | No |
688
+ | [Outscraper](https://outscraper.com/) | Google Maps & business data | Per-agent | Yes |
689
+ | [Playwriter](https://github.com/nicholasgriffintn/playwriter) | Browser with extensions | Per-agent | No |
690
+ | [QuickFile](https://github.com/marcusquinn/quickfile-mcp) | Accounting API | Per-agent | Yes |
691
+ | [Repomix](https://github.com/yamadashy/repomix) | Codebase packing for AI context | Per-agent | No |
692
+ | [Sentry](https://sentry.io/) | Error tracking | Per-agent | Yes |
693
+ | [Socket](https://socket.dev/) | Dependency security | Per-agent | No |
694
+
695
+ **Tier explanation:**
696
+ - **Global** - Tools always available (loaded into every session)
697
+ - **Per-agent** - Tools disabled globally, enabled per-agent via config (zero context overhead when unused)
698
+
699
+ ### **SEO Integrations (curl subagents - no MCP overhead)**
700
+
701
+ These use direct API calls via curl, avoiding MCP server startup entirely:
702
+
703
+ | Integration | Purpose | API Key Required |
704
+ |-------------|---------|------------------|
672
705
  | [Ahrefs](https://ahrefs.com/api) | SEO analysis & backlinks | Yes |
673
- | [Augment Context Engine](https://docs.augmentcode.com/context-services/mcp/overview) | Semantic codebase retrieval | Yes (Augment account) |
674
706
  | [DataForSEO](https://dataforseo.com/) | SERP, keywords, backlinks, on-page | Yes |
675
- | [Chrome DevTools](https://chromedevtools.github.io/devtools-protocol/) | Browser debugging & automation | No |
676
- | [Cloudflare Browser](https://developers.cloudflare.com/browser-rendering/) | Server-side rendering | Yes (Cloudflare) |
677
- | [Context7](https://context7.com/) | Library documentation lookup | No |
678
- | [Crawl4AI](https://github.com/unclecode/crawl4ai) | Web crawling & scraping | No |
679
- | [Google Search Console](https://developers.google.com/webmaster-tools) | Search performance data | Yes (Google API) |
680
- | [Grep by Vercel](https://grep.app/) | GitHub code search | No |
681
- | [LocalWP](https://localwp.com/) | WordPress database access | No (local) |
682
- | [Next.js DevTools](https://nextjs.org/docs) | React/Next.js assistance | No |
683
- | [Outscraper](https://outscraper.com/) | Google Maps & business data extraction | Yes |
684
- | [PageSpeed Insights](https://developers.google.com/speed/docs/insights/v5/get-started) | Performance auditing | Yes (Google API) |
685
- | [Perplexity](https://docs.perplexity.ai/) | AI-powered research | Yes |
686
- | [Playwright](https://playwright.dev/) | Cross-browser testing (auto-installed by setup.sh) | No |
687
- | [Repomix](https://github.com/yamadashy/repomix) | Codebase packing for AI context | No |
688
707
  | [Serper](https://serper.dev/) | Google Search API (web, images, news) | Yes |
689
- | [shadcn/ui](https://ui.shadcn.com/) | UI component library browsing & installation | No |
690
- | [Snyk](https://snyk.io/) | Security vulnerability scanning | Yes |
691
- | [Stagehand (JS)](https://github.com/browserbase/stagehand) | AI browser automation | Optional (Browserbase) |
692
- | [Stagehand (Python)](https://github.com/anthropics/stagehand-python) | AI browser automation | Optional (Browserbase) |
693
- | [llm-tldr](https://github.com/parcadei/llm-tldr) | Semantic code analysis (95% token savings) | No |
708
+ | [Hostinger](https://developers.hostinger.com/) | Hosting management | Yes |
694
709
 
695
710
  ### **By Category**
696
711
 
@@ -715,12 +730,11 @@ The setup script offers to install these tools automatically.
715
730
 
716
731
  **SEO & Research:**
717
732
 
718
- - [Ahrefs](https://ahrefs.com/api) - SEO analysis, backlink research, keyword data
719
- - [DataForSEO](https://dataforseo.com/) - Comprehensive SEO data APIs (SERP, keywords, backlinks, on-page)
720
- - [Serper](https://serper.dev/) - Google Search API (web, images, news, places, shopping)
721
- - [Google Search Console](https://developers.google.com/webmaster-tools) - Search performance insights
722
- - [Perplexity](https://docs.perplexity.ai/) - AI-powered web search and research
723
- - [Grep by Vercel](https://grep.app/) - Search code snippets across GitHub repositories
733
+ - [Google Search Console](https://developers.google.com/webmaster-tools) - Search performance insights (MCP)
734
+ - [Grep by Vercel](https://grep.app/) - Search code snippets across GitHub repositories (MCP)
735
+ - [Ahrefs](https://ahrefs.com/api) - SEO analysis, backlink research, keyword data (curl subagent)
736
+ - [DataForSEO](https://dataforseo.com/) - Comprehensive SEO data APIs (curl subagent)
737
+ - [Serper](https://serper.dev/) - Google Search API (curl subagent)
724
738
  - **Keyword Research** - Strategic keyword research with SERP weakness detection (via DataForSEO + Serper + Ahrefs)
725
739
  - **Site Crawler** - Screaming Frog-like SEO auditing: broken links, redirects, meta issues, structured data
726
740
  - **Domain Research** - DNS intelligence via THC (4.51B records) and Reconeer APIs: rDNS, subdomains, CNAMEs
@@ -739,9 +753,10 @@ The setup script offers to install these tools automatically.
739
753
  - [LocalWP](https://localwp.com/) - Direct WordPress database access
740
754
  - [Next.js DevTools](https://nextjs.org/docs) - React/Next.js development assistance
741
755
 
742
- **UI Components:**
756
+ **Accounts & Finance:**
743
757
 
744
- - [shadcn/ui](https://ui.shadcn.com/) - Browse, search, and install shadcn/ui components directly via MCP
758
+ - [QuickFile](https://github.com/marcusquinn/quickfile-mcp) - Accounting API integration (MCP)
759
+ - [Amazon Order History](https://github.com/marcusquinn/amazon-order-history-csv-download-mcp) - Order data extraction (MCP)
745
760
 
746
761
  ### **Quick Setup**
747
762
 
@@ -756,6 +771,34 @@ bash .agent/scripts/setup-mcp-integrations.sh stagehand-both # Both versions
756
771
  bash .agent/scripts/setup-mcp-integrations.sh chrome-devtools
757
772
  ```
758
773
 
774
+ ### OpenCode LSP Configuration
775
+
776
+ OpenCode includes [built-in LSP servers](https://opencode.ai/docs/lsp/) for 35+ languages. For aidevops projects that use Markdown and TOON extensively, add these optional LSP servers to your `opencode.json` for real-time diagnostics during editing:
777
+
778
+ ```json
779
+ {
780
+ "lsp": {
781
+ "markdownlint": {
782
+ "command": ["markdownlint-language-server", "--stdio"],
783
+ "extensions": [".md"]
784
+ },
785
+ "toon-lsp": {
786
+ "command": ["toon-lsp"],
787
+ "extensions": [".toon"]
788
+ }
789
+ }
790
+ }
791
+ ```
792
+
793
+ **Install the servers:**
794
+
795
+ ```bash
796
+ npm install -g markdownlint-language-server # Markdown diagnostics
797
+ cargo install toon-lsp # TOON syntax validation
798
+ ```
799
+
800
+ These catch formatting and syntax issues during editing, reducing preflight/postflight fix cycles.
801
+
759
802
  ## **Browser Automation**
760
803
 
761
804
  6 browser tools benchmarked and integrated for AI-assisted web automation, dev testing, and data extraction. Agents automatically select the optimal tool based on task requirements.
@@ -860,12 +903,14 @@ Repomix runs as an MCP server for direct AI assistant integration:
860
903
  {
861
904
  "repomix": {
862
905
  "type": "local",
863
- "command": ["npx", "-y", "repomix@latest", "--mcp"],
906
+ "command": ["repomix", "--mcp"],
864
907
  "enabled": true
865
908
  }
866
909
  }
867
910
  ```
868
911
 
912
+ > Install globally first: `bun install -g repomix` (done automatically by `setup.sh`)
913
+
869
914
  See `.agent/tools/context/context-builder.md` for complete documentation.
870
915
 
871
916
  ## **Augment Context Engine - Semantic Codebase Search**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.79.0
1
+ 2.79.2
package/aidevops.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI DevOps Framework CLI
4
4
  # Usage: aidevops <command> [options]
5
5
  #
6
- # Version: 2.79.0
6
+ # Version: 2.79.2
7
7
 
8
8
  set -euo pipefail
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.79.0",
3
+ "version": "2.79.2",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/setup.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI Assistant Server Access Framework Setup Script
4
4
  # Helps developers set up the framework for their infrastructure
5
5
  #
6
- # Version: 2.79.0
6
+ # Version: 2.79.2
7
7
  #
8
8
  # Quick Install (one-liner):
9
9
  # bash <(curl -fsSL https://aidevops.dev/install)
@@ -228,10 +228,57 @@ cleanup_deprecated_mcps() {
228
228
  jq 'del(.agent.SEO.tools["dataforseo_*"]) | del(.agent.SEO.tools["serper_*"]) | del(.agent.SEO.tools["ahrefs_*"])' "$tmp_config" > "${tmp_config}.new" && mv "${tmp_config}.new" "$tmp_config"
229
229
  fi
230
230
 
231
+ # Migrate npx/pipx commands to bare binary names (faster startup)
232
+ # Maps: package-name -> binary-name
233
+ local -A mcp_migrations=(
234
+ ["chrome-devtools-mcp"]="chrome-devtools-mcp"
235
+ ["mcp-server-gsc"]="mcp-server-gsc"
236
+ ["repomix"]="repomix"
237
+ ["playwriter"]="playwriter"
238
+ ["@steipete/macos-automator-mcp"]="macos-automator-mcp"
239
+ ["@steipete/claude-code-mcp"]="claude-code-mcp"
240
+ ["analytics-mcp"]="analytics-mcp"
241
+ )
242
+
243
+ for pkg in "${!mcp_migrations[@]}"; do
244
+ local bin_name="${mcp_migrations[$pkg]}"
245
+ # Check if any MCP entry uses npx/bunx with this package
246
+ if jq -e ".mcp | to_entries[] | select(.value.command != null) | select(.value.command | join(\" \") | test(\"npx.*${pkg}|bunx.*${pkg}|pipx.*run.*${pkg}\"))" "$tmp_config" > /dev/null 2>&1; then
247
+ if command -v "$bin_name" &> /dev/null; then
248
+ # Find the MCP key and update its command to bare binary
249
+ local mcp_key
250
+ mcp_key=$(jq -r ".mcp | to_entries[] | select(.value.command != null) | select(.value.command | join(\" \") | test(\"npx.*${pkg}|bunx.*${pkg}|pipx.*run.*${pkg}\")) | .key" "$tmp_config" 2>/dev/null | head -1)
251
+ if [[ -n "$mcp_key" ]]; then
252
+ # Preserve --mcp flag for repomix
253
+ if [[ "$bin_name" == "repomix" ]]; then
254
+ jq ".mcp[\"$mcp_key\"].command = [\"$bin_name\", \"--mcp\"]" "$tmp_config" > "${tmp_config}.new" && mv "${tmp_config}.new" "$tmp_config"
255
+ else
256
+ jq ".mcp[\"$mcp_key\"].command = [\"$bin_name\"]" "$tmp_config" > "${tmp_config}.new" && mv "${tmp_config}.new" "$tmp_config"
257
+ fi
258
+ ((cleaned++))
259
+ fi
260
+ fi
261
+ fi
262
+ done
263
+
264
+ # Migrate outscraper from bash -c wrapper to bare binary
265
+ if jq -e '.mcp.outscraper.command | join(" ") | test("bash.*outscraper")' "$tmp_config" > /dev/null 2>&1; then
266
+ if command -v outscraper-mcp-server &> /dev/null; then
267
+ # Source the API key and set it in environment
268
+ local outscraper_key=""
269
+ if [[ -f "$HOME/.config/aidevops/mcp-env.sh" ]]; then
270
+ # shellcheck source=/dev/null
271
+ outscraper_key=$(source "$HOME/.config/aidevops/mcp-env.sh" && echo "${OUTSCRAPER_API_KEY:-}")
272
+ fi
273
+ jq --arg key "$outscraper_key" '.mcp.outscraper.command = ["outscraper-mcp-server"] | .mcp.outscraper.environment = {"OUTSCRAPER_API_KEY": $key}' "$tmp_config" > "${tmp_config}.new" && mv "${tmp_config}.new" "$tmp_config"
274
+ ((cleaned++))
275
+ fi
276
+ fi
277
+
231
278
  if [[ $cleaned -gt 0 ]]; then
232
279
  create_backup_with_rotation "$opencode_config" "opencode"
233
280
  mv "$tmp_config" "$opencode_config"
234
- print_info "Removed $cleaned deprecated MCP(s) from opencode.json (replaced by curl subagents)"
281
+ print_info "Updated $cleaned MCP entry/entries in opencode.json (removed npx overhead, using global binaries)"
235
282
  else
236
283
  rm -f "$tmp_config"
237
284
  fi
@@ -2085,6 +2132,79 @@ setup_nodejs_env() {
2085
2132
  fi
2086
2133
  }
2087
2134
 
2135
+ # Install MCP servers globally for fast startup (no npx/pipx overhead)
2136
+ install_mcp_packages() {
2137
+ print_info "Installing MCP server packages globally (eliminates npx startup delay)..."
2138
+
2139
+ # Node.js MCP packages (prefer bun, fallback to npm)
2140
+ local node_mcps=(
2141
+ "chrome-devtools-mcp"
2142
+ "mcp-server-gsc"
2143
+ "repomix"
2144
+ "playwriter"
2145
+ "@steipete/macos-automator-mcp"
2146
+ "@steipete/claude-code-mcp"
2147
+ )
2148
+
2149
+ local installer=""
2150
+ local install_cmd=""
2151
+
2152
+ if command -v bun &> /dev/null; then
2153
+ installer="bun"
2154
+ install_cmd="bun install -g"
2155
+ elif command -v npm &> /dev/null; then
2156
+ installer="npm"
2157
+ install_cmd="npm install -g"
2158
+ else
2159
+ print_warning "Neither bun nor npm found - cannot install MCP packages"
2160
+ print_info "Install bun (recommended): curl -fsSL https://bun.sh/install | bash"
2161
+ return 0
2162
+ fi
2163
+
2164
+ print_info "Using $installer to install/update Node.js MCP packages..."
2165
+
2166
+ # Always install latest (bun install -g is fast and idempotent)
2167
+ local updated=0
2168
+ local failed=0
2169
+ for pkg in "${node_mcps[@]}"; do
2170
+ if $install_cmd "${pkg}@latest" > /dev/null 2>&1; then
2171
+ ((updated++))
2172
+ else
2173
+ ((failed++))
2174
+ print_warning "Failed to install/update $pkg"
2175
+ fi
2176
+ done
2177
+
2178
+ if [[ $updated -gt 0 ]]; then
2179
+ print_success "$updated Node.js MCP packages installed/updated to latest via $installer"
2180
+ fi
2181
+ if [[ $failed -gt 0 ]]; then
2182
+ print_warning "$failed packages failed (check network or package names)"
2183
+ fi
2184
+
2185
+ # Python MCP packages (install or upgrade)
2186
+ if command -v pipx &> /dev/null; then
2187
+ print_info "Installing/updating analytics-mcp via pipx..."
2188
+ if command -v analytics-mcp &> /dev/null; then
2189
+ pipx upgrade analytics-mcp > /dev/null 2>&1 || true
2190
+ else
2191
+ pipx install analytics-mcp > /dev/null 2>&1 || print_warning "Failed to install analytics-mcp"
2192
+ fi
2193
+ fi
2194
+
2195
+ if command -v uv &> /dev/null; then
2196
+ print_info "Installing/updating outscraper-mcp-server via uv..."
2197
+ if command -v outscraper-mcp-server &> /dev/null; then
2198
+ uv tool upgrade outscraper-mcp-server > /dev/null 2>&1 || true
2199
+ else
2200
+ uv tool install outscraper-mcp-server > /dev/null 2>&1 || print_warning "Failed to install outscraper-mcp-server"
2201
+ fi
2202
+ fi
2203
+
2204
+ print_info "MCP servers will start instantly (no registry lookups on each launch)"
2205
+ return 0
2206
+ }
2207
+
2088
2208
  # Setup LocalWP MCP server for AI database access
2089
2209
  setup_localwp_mcp() {
2090
2210
  print_info "Setting up LocalWP MCP server..."
@@ -2843,7 +2963,7 @@ setup_google_analytics_mcp() {
2843
2963
  if jq --arg creds "$creds_path" --arg proj "$project_id" --argjson enabled "$enable_mcp" \
2844
2964
  '.mcp["google-analytics-mcp"] = {
2845
2965
  "type": "local",
2846
- "command": ["pipx", "run", "analytics-mcp"],
2966
+ "command": ["analytics-mcp"],
2847
2967
  "environment": {
2848
2968
  "GOOGLE_APPLICATION_CREDENTIALS": $creds,
2849
2969
  "GOOGLE_PROJECT_ID": $proj
@@ -3026,6 +3146,7 @@ main() {
3026
3146
  confirm_step "Update OpenCode configuration" && update_opencode_config
3027
3147
  confirm_step "Setup Python environment (DSPy, crawl4ai)" && setup_python_env
3028
3148
  confirm_step "Setup Node.js environment" && setup_nodejs_env
3149
+ confirm_step "Install MCP packages globally (fast startup)" && install_mcp_packages
3029
3150
  confirm_step "Setup LocalWP MCP server" && setup_localwp_mcp
3030
3151
  confirm_step "Setup Augment Context Engine MCP" && setup_augment_context_engine
3031
3152
  confirm_step "Setup osgrep (local semantic search)" && setup_osgrep