aidevops 2.79.0 → 2.79.1
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/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/setup.sh +134 -3
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.79.
|
|
1
|
+
2.79.1
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
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.
|
|
6
|
+
# Version: 2.79.1
|
|
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 "
|
|
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,89 @@ 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 for Node.js MCP packages..."
|
|
2165
|
+
|
|
2166
|
+
local installed=0
|
|
2167
|
+
local skipped=0
|
|
2168
|
+
for pkg in "${node_mcps[@]}"; do
|
|
2169
|
+
# Extract binary name from package name (strip @scope/ prefix)
|
|
2170
|
+
local bin_name
|
|
2171
|
+
bin_name="${pkg##*/}"
|
|
2172
|
+
if command -v "$bin_name" &> /dev/null; then
|
|
2173
|
+
((skipped++))
|
|
2174
|
+
continue
|
|
2175
|
+
fi
|
|
2176
|
+
if $install_cmd "$pkg" > /dev/null 2>&1; then
|
|
2177
|
+
((installed++))
|
|
2178
|
+
else
|
|
2179
|
+
print_warning "Failed to install $pkg"
|
|
2180
|
+
fi
|
|
2181
|
+
done
|
|
2182
|
+
|
|
2183
|
+
if [[ $installed -gt 0 ]]; then
|
|
2184
|
+
print_success "Installed $installed Node.js MCP packages via $installer"
|
|
2185
|
+
fi
|
|
2186
|
+
if [[ $skipped -gt 0 ]]; then
|
|
2187
|
+
print_info "$skipped Node.js MCP packages already installed"
|
|
2188
|
+
fi
|
|
2189
|
+
|
|
2190
|
+
# Python MCP packages
|
|
2191
|
+
if command -v pipx &> /dev/null; then
|
|
2192
|
+
if ! command -v analytics-mcp &> /dev/null; then
|
|
2193
|
+
print_info "Installing analytics-mcp via pipx..."
|
|
2194
|
+
if pipx install analytics-mcp > /dev/null 2>&1; then
|
|
2195
|
+
print_success "analytics-mcp installed"
|
|
2196
|
+
else
|
|
2197
|
+
print_warning "Failed to install analytics-mcp"
|
|
2198
|
+
fi
|
|
2199
|
+
fi
|
|
2200
|
+
fi
|
|
2201
|
+
|
|
2202
|
+
if command -v uv &> /dev/null; then
|
|
2203
|
+
if ! command -v outscraper-mcp-server &> /dev/null; then
|
|
2204
|
+
print_info "Installing outscraper-mcp-server via uv..."
|
|
2205
|
+
if uv tool install outscraper-mcp-server > /dev/null 2>&1; then
|
|
2206
|
+
print_success "outscraper-mcp-server installed"
|
|
2207
|
+
else
|
|
2208
|
+
print_warning "Failed to install outscraper-mcp-server"
|
|
2209
|
+
fi
|
|
2210
|
+
fi
|
|
2211
|
+
fi
|
|
2212
|
+
|
|
2213
|
+
print_info "MCP servers will start instantly (no registry lookups on each launch)"
|
|
2214
|
+
print_info "Run 'aidevops update-tools' to check for updates"
|
|
2215
|
+
return 0
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2088
2218
|
# Setup LocalWP MCP server for AI database access
|
|
2089
2219
|
setup_localwp_mcp() {
|
|
2090
2220
|
print_info "Setting up LocalWP MCP server..."
|
|
@@ -2843,7 +2973,7 @@ setup_google_analytics_mcp() {
|
|
|
2843
2973
|
if jq --arg creds "$creds_path" --arg proj "$project_id" --argjson enabled "$enable_mcp" \
|
|
2844
2974
|
'.mcp["google-analytics-mcp"] = {
|
|
2845
2975
|
"type": "local",
|
|
2846
|
-
"command": ["
|
|
2976
|
+
"command": ["analytics-mcp"],
|
|
2847
2977
|
"environment": {
|
|
2848
2978
|
"GOOGLE_APPLICATION_CREDENTIALS": $creds,
|
|
2849
2979
|
"GOOGLE_PROJECT_ID": $proj
|
|
@@ -3026,6 +3156,7 @@ main() {
|
|
|
3026
3156
|
confirm_step "Update OpenCode configuration" && update_opencode_config
|
|
3027
3157
|
confirm_step "Setup Python environment (DSPy, crawl4ai)" && setup_python_env
|
|
3028
3158
|
confirm_step "Setup Node.js environment" && setup_nodejs_env
|
|
3159
|
+
confirm_step "Install MCP packages globally (fast startup)" && install_mcp_packages
|
|
3029
3160
|
confirm_step "Setup LocalWP MCP server" && setup_localwp_mcp
|
|
3030
3161
|
confirm_step "Setup Augment Context Engine MCP" && setup_augment_context_engine
|
|
3031
3162
|
confirm_step "Setup osgrep (local semantic search)" && setup_osgrep
|