aidevops 2.52.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.
Files changed (329) hide show
  1. package/.agent/AGENTS.md +614 -0
  2. package/.agent/accounts.md +65 -0
  3. package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
  4. package/.agent/aidevops/api-integrations.md +335 -0
  5. package/.agent/aidevops/architecture.md +510 -0
  6. package/.agent/aidevops/configs.md +274 -0
  7. package/.agent/aidevops/docs.md +244 -0
  8. package/.agent/aidevops/extension.md +311 -0
  9. package/.agent/aidevops/mcp-integrations.md +340 -0
  10. package/.agent/aidevops/mcp-troubleshooting.md +162 -0
  11. package/.agent/aidevops/memory-patterns.md +172 -0
  12. package/.agent/aidevops/providers.md +217 -0
  13. package/.agent/aidevops/recommendations.md +321 -0
  14. package/.agent/aidevops/requirements.md +301 -0
  15. package/.agent/aidevops/resources.md +214 -0
  16. package/.agent/aidevops/security-requirements.md +174 -0
  17. package/.agent/aidevops/security.md +350 -0
  18. package/.agent/aidevops/service-links.md +400 -0
  19. package/.agent/aidevops/services.md +357 -0
  20. package/.agent/aidevops/setup.md +153 -0
  21. package/.agent/aidevops/troubleshooting.md +389 -0
  22. package/.agent/aidevops.md +124 -0
  23. package/.agent/build-plus.md +244 -0
  24. package/.agent/content/guidelines.md +109 -0
  25. package/.agent/content.md +87 -0
  26. package/.agent/health.md +59 -0
  27. package/.agent/legal.md +59 -0
  28. package/.agent/loop-state/full-loop.local.md +16 -0
  29. package/.agent/loop-state/ralph-loop.local.md +10 -0
  30. package/.agent/marketing.md +440 -0
  31. package/.agent/memory/README.md +260 -0
  32. package/.agent/onboarding.md +796 -0
  33. package/.agent/plan-plus.md +245 -0
  34. package/.agent/research.md +100 -0
  35. package/.agent/sales.md +333 -0
  36. package/.agent/scripts/101domains-helper.sh +701 -0
  37. package/.agent/scripts/add-missing-returns.sh +140 -0
  38. package/.agent/scripts/agent-browser-helper.sh +311 -0
  39. package/.agent/scripts/agno-setup.sh +712 -0
  40. package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
  41. package/.agent/scripts/aidevops-update-check.sh +71 -0
  42. package/.agent/scripts/ampcode-cli.sh +522 -0
  43. package/.agent/scripts/auto-version-bump.sh +156 -0
  44. package/.agent/scripts/autogen-helper.sh +512 -0
  45. package/.agent/scripts/beads-sync-helper.sh +596 -0
  46. package/.agent/scripts/closte-helper.sh +5 -0
  47. package/.agent/scripts/cloudron-helper.sh +321 -0
  48. package/.agent/scripts/codacy-cli-chunked.sh +581 -0
  49. package/.agent/scripts/codacy-cli.sh +442 -0
  50. package/.agent/scripts/code-audit-helper.sh +5 -0
  51. package/.agent/scripts/coderabbit-cli.sh +417 -0
  52. package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
  53. package/.agent/scripts/commands/code-simplifier.md +86 -0
  54. package/.agent/scripts/commands/full-loop.md +246 -0
  55. package/.agent/scripts/commands/postflight-loop.md +103 -0
  56. package/.agent/scripts/commands/recall.md +182 -0
  57. package/.agent/scripts/commands/remember.md +132 -0
  58. package/.agent/scripts/commands/save-todo.md +175 -0
  59. package/.agent/scripts/commands/session-review.md +154 -0
  60. package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
  61. package/.agent/scripts/context-builder-helper.sh +522 -0
  62. package/.agent/scripts/coolify-cli-helper.sh +674 -0
  63. package/.agent/scripts/coolify-helper.sh +380 -0
  64. package/.agent/scripts/crawl4ai-examples.sh +401 -0
  65. package/.agent/scripts/crawl4ai-helper.sh +1078 -0
  66. package/.agent/scripts/crewai-helper.sh +681 -0
  67. package/.agent/scripts/dev-browser-helper.sh +513 -0
  68. package/.agent/scripts/dns-helper.sh +396 -0
  69. package/.agent/scripts/domain-research-helper.sh +917 -0
  70. package/.agent/scripts/dspy-helper.sh +285 -0
  71. package/.agent/scripts/dspyground-helper.sh +291 -0
  72. package/.agent/scripts/eeat-score-helper.sh +1242 -0
  73. package/.agent/scripts/efficient-return-fix.sh +92 -0
  74. package/.agent/scripts/extract-opencode-prompts.sh +128 -0
  75. package/.agent/scripts/find-missing-returns.sh +113 -0
  76. package/.agent/scripts/fix-auth-headers.sh +104 -0
  77. package/.agent/scripts/fix-common-strings.sh +254 -0
  78. package/.agent/scripts/fix-content-type.sh +100 -0
  79. package/.agent/scripts/fix-error-messages.sh +130 -0
  80. package/.agent/scripts/fix-misplaced-returns.sh +74 -0
  81. package/.agent/scripts/fix-remaining-literals.sh +152 -0
  82. package/.agent/scripts/fix-return-statements.sh +41 -0
  83. package/.agent/scripts/fix-s131-default-cases.sh +249 -0
  84. package/.agent/scripts/fix-sc2155-simple.sh +102 -0
  85. package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
  86. package/.agent/scripts/fix-string-literals.sh +273 -0
  87. package/.agent/scripts/full-loop-helper.sh +773 -0
  88. package/.agent/scripts/generate-opencode-agents.sh +497 -0
  89. package/.agent/scripts/generate-opencode-commands.sh +1629 -0
  90. package/.agent/scripts/generate-skills.sh +366 -0
  91. package/.agent/scripts/git-platforms-helper.sh +640 -0
  92. package/.agent/scripts/gitea-cli-helper.sh +743 -0
  93. package/.agent/scripts/github-cli-helper.sh +702 -0
  94. package/.agent/scripts/gitlab-cli-helper.sh +682 -0
  95. package/.agent/scripts/gsc-add-user-helper.sh +325 -0
  96. package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
  97. package/.agent/scripts/hetzner-helper.sh +485 -0
  98. package/.agent/scripts/hostinger-helper.sh +229 -0
  99. package/.agent/scripts/keyword-research-helper.sh +1815 -0
  100. package/.agent/scripts/langflow-helper.sh +544 -0
  101. package/.agent/scripts/linkedin-automation.py +241 -0
  102. package/.agent/scripts/linter-manager.sh +599 -0
  103. package/.agent/scripts/linters-local.sh +434 -0
  104. package/.agent/scripts/list-keys-helper.sh +488 -0
  105. package/.agent/scripts/local-browser-automation.py +339 -0
  106. package/.agent/scripts/localhost-helper.sh +744 -0
  107. package/.agent/scripts/loop-common.sh +806 -0
  108. package/.agent/scripts/mainwp-helper.sh +728 -0
  109. package/.agent/scripts/markdown-formatter.sh +338 -0
  110. package/.agent/scripts/markdown-lint-fix.sh +311 -0
  111. package/.agent/scripts/mass-fix-returns.sh +58 -0
  112. package/.agent/scripts/mcp-diagnose.sh +167 -0
  113. package/.agent/scripts/mcp-inspector-helper.sh +449 -0
  114. package/.agent/scripts/memory-helper.sh +650 -0
  115. package/.agent/scripts/monitor-code-review.sh +255 -0
  116. package/.agent/scripts/onboarding-helper.sh +706 -0
  117. package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
  118. package/.agent/scripts/opencode-test-helper.sh +213 -0
  119. package/.agent/scripts/pagespeed-helper.sh +464 -0
  120. package/.agent/scripts/pandoc-helper.sh +362 -0
  121. package/.agent/scripts/postflight-check.sh +555 -0
  122. package/.agent/scripts/pre-commit-hook.sh +259 -0
  123. package/.agent/scripts/pre-edit-check.sh +169 -0
  124. package/.agent/scripts/qlty-cli.sh +356 -0
  125. package/.agent/scripts/quality-cli-manager.sh +525 -0
  126. package/.agent/scripts/quality-feedback-helper.sh +462 -0
  127. package/.agent/scripts/quality-fix.sh +263 -0
  128. package/.agent/scripts/quality-loop-helper.sh +1108 -0
  129. package/.agent/scripts/ralph-loop-helper.sh +836 -0
  130. package/.agent/scripts/ralph-upstream-check.sh +341 -0
  131. package/.agent/scripts/secretlint-helper.sh +847 -0
  132. package/.agent/scripts/servers-helper.sh +241 -0
  133. package/.agent/scripts/ses-helper.sh +619 -0
  134. package/.agent/scripts/session-review-helper.sh +404 -0
  135. package/.agent/scripts/setup-linters-wizard.sh +379 -0
  136. package/.agent/scripts/setup-local-api-keys.sh +330 -0
  137. package/.agent/scripts/setup-mcp-integrations.sh +472 -0
  138. package/.agent/scripts/shared-constants.sh +246 -0
  139. package/.agent/scripts/site-crawler-helper.sh +1487 -0
  140. package/.agent/scripts/snyk-helper.sh +940 -0
  141. package/.agent/scripts/sonarcloud-autofix.sh +193 -0
  142. package/.agent/scripts/sonarcloud-cli.sh +191 -0
  143. package/.agent/scripts/sonarscanner-cli.sh +455 -0
  144. package/.agent/scripts/spaceship-helper.sh +747 -0
  145. package/.agent/scripts/stagehand-helper.sh +321 -0
  146. package/.agent/scripts/stagehand-python-helper.sh +321 -0
  147. package/.agent/scripts/stagehand-python-setup.sh +441 -0
  148. package/.agent/scripts/stagehand-setup.sh +439 -0
  149. package/.agent/scripts/system-cleanup.sh +340 -0
  150. package/.agent/scripts/terminal-title-helper.sh +388 -0
  151. package/.agent/scripts/terminal-title-setup.sh +549 -0
  152. package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
  153. package/.agent/scripts/test-stagehand-integration.sh +309 -0
  154. package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
  155. package/.agent/scripts/todo-ready.sh +263 -0
  156. package/.agent/scripts/tool-version-check.sh +362 -0
  157. package/.agent/scripts/toon-helper.sh +469 -0
  158. package/.agent/scripts/twilio-helper.sh +917 -0
  159. package/.agent/scripts/updown-helper.sh +279 -0
  160. package/.agent/scripts/validate-mcp-integrations.sh +250 -0
  161. package/.agent/scripts/validate-version-consistency.sh +131 -0
  162. package/.agent/scripts/vaultwarden-helper.sh +597 -0
  163. package/.agent/scripts/vercel-cli-helper.sh +816 -0
  164. package/.agent/scripts/verify-mirrors.sh +169 -0
  165. package/.agent/scripts/version-manager.sh +831 -0
  166. package/.agent/scripts/webhosting-helper.sh +471 -0
  167. package/.agent/scripts/webhosting-verify.sh +238 -0
  168. package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
  169. package/.agent/scripts/worktree-helper.sh +595 -0
  170. package/.agent/scripts/worktree-sessions.sh +577 -0
  171. package/.agent/seo/dataforseo.md +215 -0
  172. package/.agent/seo/domain-research.md +532 -0
  173. package/.agent/seo/eeat-score.md +659 -0
  174. package/.agent/seo/google-search-console.md +366 -0
  175. package/.agent/seo/gsc-sitemaps.md +282 -0
  176. package/.agent/seo/keyword-research.md +521 -0
  177. package/.agent/seo/serper.md +278 -0
  178. package/.agent/seo/site-crawler.md +387 -0
  179. package/.agent/seo.md +236 -0
  180. package/.agent/services/accounting/quickfile.md +159 -0
  181. package/.agent/services/communications/telfon.md +470 -0
  182. package/.agent/services/communications/twilio.md +569 -0
  183. package/.agent/services/crm/fluentcrm.md +449 -0
  184. package/.agent/services/email/ses.md +399 -0
  185. package/.agent/services/hosting/101domains.md +378 -0
  186. package/.agent/services/hosting/closte.md +177 -0
  187. package/.agent/services/hosting/cloudflare.md +251 -0
  188. package/.agent/services/hosting/cloudron.md +478 -0
  189. package/.agent/services/hosting/dns-providers.md +335 -0
  190. package/.agent/services/hosting/domain-purchasing.md +344 -0
  191. package/.agent/services/hosting/hetzner.md +327 -0
  192. package/.agent/services/hosting/hostinger.md +287 -0
  193. package/.agent/services/hosting/localhost.md +419 -0
  194. package/.agent/services/hosting/spaceship.md +353 -0
  195. package/.agent/services/hosting/webhosting.md +330 -0
  196. package/.agent/social-media.md +69 -0
  197. package/.agent/templates/plans-template.md +114 -0
  198. package/.agent/templates/prd-template.md +129 -0
  199. package/.agent/templates/tasks-template.md +108 -0
  200. package/.agent/templates/todo-template.md +89 -0
  201. package/.agent/tools/ai-assistants/agno.md +471 -0
  202. package/.agent/tools/ai-assistants/capsolver.md +326 -0
  203. package/.agent/tools/ai-assistants/configuration.md +221 -0
  204. package/.agent/tools/ai-assistants/overview.md +209 -0
  205. package/.agent/tools/ai-assistants/status.md +171 -0
  206. package/.agent/tools/ai-assistants/windsurf.md +193 -0
  207. package/.agent/tools/ai-orchestration/autogen.md +406 -0
  208. package/.agent/tools/ai-orchestration/crewai.md +445 -0
  209. package/.agent/tools/ai-orchestration/langflow.md +405 -0
  210. package/.agent/tools/ai-orchestration/openprose.md +487 -0
  211. package/.agent/tools/ai-orchestration/overview.md +362 -0
  212. package/.agent/tools/ai-orchestration/packaging.md +647 -0
  213. package/.agent/tools/browser/agent-browser.md +464 -0
  214. package/.agent/tools/browser/browser-automation.md +400 -0
  215. package/.agent/tools/browser/chrome-devtools.md +282 -0
  216. package/.agent/tools/browser/crawl4ai-integration.md +422 -0
  217. package/.agent/tools/browser/crawl4ai-resources.md +277 -0
  218. package/.agent/tools/browser/crawl4ai-usage.md +416 -0
  219. package/.agent/tools/browser/crawl4ai.md +585 -0
  220. package/.agent/tools/browser/dev-browser.md +341 -0
  221. package/.agent/tools/browser/pagespeed.md +260 -0
  222. package/.agent/tools/browser/playwright.md +266 -0
  223. package/.agent/tools/browser/playwriter.md +310 -0
  224. package/.agent/tools/browser/stagehand-examples.md +456 -0
  225. package/.agent/tools/browser/stagehand-python.md +483 -0
  226. package/.agent/tools/browser/stagehand.md +421 -0
  227. package/.agent/tools/build-agent/agent-review.md +224 -0
  228. package/.agent/tools/build-agent/build-agent.md +784 -0
  229. package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
  230. package/.agent/tools/build-mcp/api-wrapper.md +445 -0
  231. package/.agent/tools/build-mcp/build-mcp.md +240 -0
  232. package/.agent/tools/build-mcp/deployment.md +401 -0
  233. package/.agent/tools/build-mcp/server-patterns.md +632 -0
  234. package/.agent/tools/build-mcp/transports.md +366 -0
  235. package/.agent/tools/code-review/auditing.md +383 -0
  236. package/.agent/tools/code-review/automation.md +219 -0
  237. package/.agent/tools/code-review/best-practices.md +203 -0
  238. package/.agent/tools/code-review/codacy.md +151 -0
  239. package/.agent/tools/code-review/code-simplifier.md +174 -0
  240. package/.agent/tools/code-review/code-standards.md +309 -0
  241. package/.agent/tools/code-review/coderabbit.md +101 -0
  242. package/.agent/tools/code-review/management.md +155 -0
  243. package/.agent/tools/code-review/qlty.md +248 -0
  244. package/.agent/tools/code-review/secretlint.md +565 -0
  245. package/.agent/tools/code-review/setup.md +250 -0
  246. package/.agent/tools/code-review/snyk.md +563 -0
  247. package/.agent/tools/code-review/tools.md +230 -0
  248. package/.agent/tools/content/summarize.md +353 -0
  249. package/.agent/tools/context/augment-context-engine.md +468 -0
  250. package/.agent/tools/context/context-builder-agent.md +76 -0
  251. package/.agent/tools/context/context-builder.md +375 -0
  252. package/.agent/tools/context/context7.md +371 -0
  253. package/.agent/tools/context/dspy.md +302 -0
  254. package/.agent/tools/context/dspyground.md +374 -0
  255. package/.agent/tools/context/llm-tldr.md +219 -0
  256. package/.agent/tools/context/osgrep.md +488 -0
  257. package/.agent/tools/context/prompt-optimization.md +338 -0
  258. package/.agent/tools/context/toon.md +292 -0
  259. package/.agent/tools/conversion/pandoc.md +304 -0
  260. package/.agent/tools/credentials/api-key-management.md +154 -0
  261. package/.agent/tools/credentials/api-key-setup.md +224 -0
  262. package/.agent/tools/credentials/environment-variables.md +180 -0
  263. package/.agent/tools/credentials/vaultwarden.md +382 -0
  264. package/.agent/tools/data-extraction/outscraper.md +974 -0
  265. package/.agent/tools/deployment/coolify-cli.md +388 -0
  266. package/.agent/tools/deployment/coolify-setup.md +353 -0
  267. package/.agent/tools/deployment/coolify.md +345 -0
  268. package/.agent/tools/deployment/vercel.md +390 -0
  269. package/.agent/tools/git/authentication.md +132 -0
  270. package/.agent/tools/git/gitea-cli.md +193 -0
  271. package/.agent/tools/git/github-actions.md +207 -0
  272. package/.agent/tools/git/github-cli.md +223 -0
  273. package/.agent/tools/git/gitlab-cli.md +190 -0
  274. package/.agent/tools/git/opencode-github-security.md +350 -0
  275. package/.agent/tools/git/opencode-github.md +328 -0
  276. package/.agent/tools/git/opencode-gitlab.md +252 -0
  277. package/.agent/tools/git/security.md +196 -0
  278. package/.agent/tools/git.md +207 -0
  279. package/.agent/tools/opencode/oh-my-opencode.md +375 -0
  280. package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
  281. package/.agent/tools/opencode/opencode.md +651 -0
  282. package/.agent/tools/social-media/bird.md +437 -0
  283. package/.agent/tools/task-management/beads.md +336 -0
  284. package/.agent/tools/terminal/terminal-title.md +251 -0
  285. package/.agent/tools/ui/shadcn.md +196 -0
  286. package/.agent/tools/ui/ui-skills.md +115 -0
  287. package/.agent/tools/wordpress/localwp.md +311 -0
  288. package/.agent/tools/wordpress/mainwp.md +391 -0
  289. package/.agent/tools/wordpress/scf.md +527 -0
  290. package/.agent/tools/wordpress/wp-admin.md +729 -0
  291. package/.agent/tools/wordpress/wp-dev.md +940 -0
  292. package/.agent/tools/wordpress/wp-preferred.md +398 -0
  293. package/.agent/tools/wordpress.md +95 -0
  294. package/.agent/workflows/branch/bugfix.md +63 -0
  295. package/.agent/workflows/branch/chore.md +95 -0
  296. package/.agent/workflows/branch/experiment.md +115 -0
  297. package/.agent/workflows/branch/feature.md +59 -0
  298. package/.agent/workflows/branch/hotfix.md +98 -0
  299. package/.agent/workflows/branch/refactor.md +92 -0
  300. package/.agent/workflows/branch/release.md +96 -0
  301. package/.agent/workflows/branch.md +347 -0
  302. package/.agent/workflows/bug-fixing.md +267 -0
  303. package/.agent/workflows/changelog.md +129 -0
  304. package/.agent/workflows/code-audit-remote.md +279 -0
  305. package/.agent/workflows/conversation-starter.md +69 -0
  306. package/.agent/workflows/error-feedback.md +578 -0
  307. package/.agent/workflows/feature-development.md +355 -0
  308. package/.agent/workflows/git-workflow.md +702 -0
  309. package/.agent/workflows/multi-repo-workspace.md +268 -0
  310. package/.agent/workflows/plans.md +709 -0
  311. package/.agent/workflows/postflight.md +604 -0
  312. package/.agent/workflows/pr.md +571 -0
  313. package/.agent/workflows/preflight.md +278 -0
  314. package/.agent/workflows/ralph-loop.md +773 -0
  315. package/.agent/workflows/release.md +498 -0
  316. package/.agent/workflows/session-manager.md +254 -0
  317. package/.agent/workflows/session-review.md +311 -0
  318. package/.agent/workflows/sql-migrations.md +631 -0
  319. package/.agent/workflows/version-bump.md +283 -0
  320. package/.agent/workflows/wiki-update.md +333 -0
  321. package/.agent/workflows/worktree.md +477 -0
  322. package/LICENSE +21 -0
  323. package/README.md +1446 -0
  324. package/VERSION +1 -0
  325. package/aidevops.sh +1746 -0
  326. package/bin/aidevops +21 -0
  327. package/package.json +75 -0
  328. package/scripts/npm-postinstall.js +60 -0
  329. package/setup.sh +2366 -0
@@ -0,0 +1,167 @@
1
+ #!/bin/bash
2
+ # MCP Connection Failure Diagnostics
3
+ # Usage: mcp-diagnose.sh <mcp-name>
4
+ #
5
+ # Diagnoses common MCP connection issues:
6
+ # - Command availability
7
+ # - Version mismatches
8
+ # - Configuration errors
9
+ # - Known breaking changes
10
+
11
+ set -euo pipefail
12
+
13
+ # Colors
14
+ readonly GREEN='\033[0;32m'
15
+ readonly YELLOW='\033[1;33m'
16
+ readonly RED='\033[0;31m'
17
+ readonly BLUE='\033[0;34m'
18
+ readonly NC='\033[0m'
19
+
20
+ MCP_NAME="${1:-}"
21
+
22
+ if [[ -z "$MCP_NAME" ]]; then
23
+ echo "Usage: mcp-diagnose.sh <mcp-name>"
24
+ echo ""
25
+ echo "Examples:"
26
+ echo " mcp-diagnose.sh osgrep"
27
+ echo " mcp-diagnose.sh augment-context-engine"
28
+ exit 1
29
+ fi
30
+
31
+ echo -e "${BLUE}=== MCP Diagnosis: $MCP_NAME ===${NC}"
32
+ echo ""
33
+
34
+ # 1. Check if command exists
35
+ echo "1. Checking command availability..."
36
+ # Map MCP names to their CLI commands
37
+ case "$MCP_NAME" in
38
+ augment-context-engine|augment)
39
+ CLI_CMD="auggie"
40
+ NPM_PKG="@augmentcode/auggie"
41
+ ;;
42
+ osgrep)
43
+ CLI_CMD="osgrep"
44
+ NPM_PKG="osgrep"
45
+ ;;
46
+ context7)
47
+ CLI_CMD="context7"
48
+ NPM_PKG="@context7/mcp"
49
+ ;;
50
+ *)
51
+ CLI_CMD="$MCP_NAME"
52
+ NPM_PKG="$MCP_NAME"
53
+ ;;
54
+ esac
55
+
56
+ if command -v "$CLI_CMD" &>/dev/null; then
57
+ echo -e " ${GREEN}✓ Command found: $(which "$CLI_CMD")${NC}"
58
+ INSTALLED_VERSION=$("$CLI_CMD" --version 2>/dev/null | head -1 || echo 'unknown')
59
+ echo " Version: $INSTALLED_VERSION"
60
+ else
61
+ echo -e " ${RED}✗ Command not found: $CLI_CMD${NC}"
62
+ echo " Try: npm install -g $NPM_PKG"
63
+ exit 1
64
+ fi
65
+
66
+ # 2. Check latest version
67
+ echo ""
68
+ echo "2. Checking for updates..."
69
+ LATEST_VERSION=$(npm view "$NPM_PKG" version 2>/dev/null || echo "unknown")
70
+ echo " Installed: $INSTALLED_VERSION"
71
+ echo " Latest: $LATEST_VERSION"
72
+
73
+ if [[ "$INSTALLED_VERSION" != *"$LATEST_VERSION"* ]] && [[ "$LATEST_VERSION" != "unknown" ]]; then
74
+ echo -e " ${YELLOW}⚠️ UPDATE AVAILABLE - run: npm update -g $NPM_PKG${NC}"
75
+ fi
76
+
77
+ # 3. Check OpenCode config
78
+ echo ""
79
+ echo "3. Checking OpenCode configuration..."
80
+ CONFIG_FILE="$HOME/.config/opencode/opencode.json"
81
+ if [[ -f "$CONFIG_FILE" ]]; then
82
+ if grep -q "\"$MCP_NAME\"" "$CONFIG_FILE"; then
83
+ echo -e " ${GREEN}✓ MCP configured in opencode.json${NC}"
84
+ # Extract and show the command using Python
85
+ python3 -c "
86
+ import json
87
+ with open('$CONFIG_FILE') as f:
88
+ cfg = json.load(f)
89
+ mcp = cfg.get('mcp', {}).get('$MCP_NAME', {})
90
+ cmd = mcp.get('command', 'not set')
91
+ enabled = mcp.get('enabled', 'not set')
92
+ print(f' Command: {cmd}')
93
+ print(f' Enabled: {enabled}')
94
+ " 2>/dev/null || echo " (Could not parse config)"
95
+ else
96
+ echo -e " ${RED}✗ MCP not found in config${NC}"
97
+ fi
98
+ else
99
+ echo -e " ${RED}✗ Config file not found: $CONFIG_FILE${NC}"
100
+ fi
101
+
102
+ # 4. Check for known breaking changes
103
+ echo ""
104
+ echo "4. Known issues for $MCP_NAME..."
105
+ case "$MCP_NAME" in
106
+ osgrep)
107
+ echo " - v0.4.x: Used 'osgrep serve' (HTTP server, NOT MCP-compatible)"
108
+ echo " - v0.5.x: Use 'osgrep mcp' or run 'osgrep install-opencode'"
109
+ echo ""
110
+ echo " If using v0.5+, the correct command is: [\"osgrep\", \"mcp\"]"
111
+ ;;
112
+ augment-context-engine|augment)
113
+ echo " - Requires 'auggie login' before MCP works"
114
+ echo " - Session stored in ~/.augment/"
115
+ echo " - Correct command: [\"auggie\", \"--mcp\"]"
116
+ ;;
117
+ context7)
118
+ echo " - Remote MCP, no local command needed"
119
+ echo " - Use: \"type\": \"remote\", \"url\": \"https://mcp.context7.com/mcp\""
120
+ ;;
121
+ *)
122
+ echo " No known issues documented for this MCP"
123
+ ;;
124
+ esac
125
+
126
+ # 5. Test MCP command directly
127
+ echo ""
128
+ echo "5. Testing MCP command (5 second timeout)..."
129
+
130
+ # Use gtimeout on macOS if available, otherwise skip timeout
131
+ TIMEOUT_CMD=""
132
+ if command -v gtimeout &>/dev/null; then
133
+ TIMEOUT_CMD="gtimeout 5"
134
+ elif command -v timeout &>/dev/null; then
135
+ TIMEOUT_CMD="timeout 5"
136
+ fi
137
+
138
+ case "$MCP_NAME" in
139
+ osgrep)
140
+ echo " Running: osgrep mcp"
141
+ if [[ -n "$TIMEOUT_CMD" ]]; then
142
+ $TIMEOUT_CMD osgrep mcp 2>&1 | head -3 || echo " (timeout - normal for MCP servers)"
143
+ else
144
+ echo " (skipping - install coreutils for timeout: brew install coreutils)"
145
+ fi
146
+ ;;
147
+ augment-context-engine|augment)
148
+ echo " Running: auggie --mcp"
149
+ if [[ -n "$TIMEOUT_CMD" ]]; then
150
+ $TIMEOUT_CMD auggie --mcp 2>&1 | head -3 || echo " (timeout - normal for MCP servers)"
151
+ else
152
+ echo " (skipping - install coreutils for timeout: brew install coreutils)"
153
+ fi
154
+ ;;
155
+ *)
156
+ echo " Skipping direct test (unknown command pattern)"
157
+ ;;
158
+ esac
159
+
160
+ # 6. Suggested fixes
161
+ echo ""
162
+ echo -e "${BLUE}=== Suggested Fixes ===${NC}"
163
+ echo "1. Update tool: npm update -g $NPM_PKG"
164
+ echo "2. Check official docs for command changes"
165
+ echo "3. Run: $CLI_CMD --help"
166
+ echo "4. Check ~/.aidevops/agents/tools/ for updated documentation"
167
+ echo "5. Run: opencode mcp list (to verify status after fixes)"
@@ -0,0 +1,449 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # MCP Inspector Helper Script
4
+ # Test and debug MCP servers using @modelcontextprotocol/inspector
5
+ #
6
+ # Usage: ./mcp-inspector-helper.sh [command] [options]
7
+ #
8
+ # Commands:
9
+ # ui [server] Launch web UI for interactive testing
10
+ # list-tools [server] List available tools from a server
11
+ # call-tool [server] Call a specific tool
12
+ # list-resources List available resources
13
+ # health Check health of all configured servers
14
+ # config Show current MCP configuration
15
+ # help Show this help message
16
+
17
+ set -euo pipefail
18
+
19
+ # Colors
20
+ readonly GREEN='\033[0;32m'
21
+ readonly BLUE='\033[0;34m'
22
+ readonly YELLOW='\033[1;33m'
23
+ readonly RED='\033[0;31m'
24
+ readonly CYAN='\033[0;36m'
25
+ readonly NC='\033[0m'
26
+
27
+ # Script directory
28
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit
29
+ readonly SCRIPT_DIR
30
+ readonly CONFIG_FILE="${SCRIPT_DIR}/../../.opencode/server/mcp-test-config.json"
31
+
32
+ print_info() {
33
+ local msg="$1"
34
+ echo -e "${BLUE}ℹ️ ${msg}${NC}"
35
+ return 0
36
+ }
37
+
38
+ print_success() {
39
+ local msg="$1"
40
+ echo -e "${GREEN}✅ ${msg}${NC}"
41
+ return 0
42
+ }
43
+
44
+ print_warning() {
45
+ local msg="$1"
46
+ echo -e "${YELLOW}⚠️ ${msg}${NC}"
47
+ return 0
48
+ }
49
+
50
+ print_error() {
51
+ local msg="$1"
52
+ echo -e "${RED}❌ ${msg}${NC}"
53
+ return 0
54
+ }
55
+
56
+ print_header() {
57
+ echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
58
+ return 0
59
+ }
60
+
61
+ # Check if MCP Inspector is available
62
+ check_inspector() {
63
+ if ! command -v npx &> /dev/null; then
64
+ print_error "npx not found. Please install Node.js first."
65
+ return 1
66
+ fi
67
+ return 0
68
+ }
69
+
70
+ # Launch MCP Inspector Web UI
71
+ launch_ui() {
72
+ local server="${1:-}"
73
+
74
+ print_header
75
+ echo -e "${CYAN}🔍 MCP Inspector - Web UI${NC}"
76
+ print_header
77
+
78
+ if [[ -n "$server" ]]; then
79
+ print_info "Launching inspector for server: $server"
80
+ npx @modelcontextprotocol/inspector --config "$CONFIG_FILE" --server "$server"
81
+ else
82
+ print_info "Launching inspector with config file..."
83
+ print_info "Config: $CONFIG_FILE"
84
+ echo ""
85
+ print_info "Available servers:"
86
+ jq -r '.mcpServers | keys[]' "$CONFIG_FILE" 2>/dev/null || echo " (config file not found)"
87
+ echo ""
88
+ npx @modelcontextprotocol/inspector --config "$CONFIG_FILE"
89
+ fi
90
+ return 0
91
+ }
92
+
93
+ # List tools from a server
94
+ list_tools() {
95
+ local server="${1:-}"
96
+
97
+ print_header
98
+ echo -e "${CYAN}🔧 MCP Inspector - List Tools${NC}"
99
+ print_header
100
+
101
+ if [[ -z "$server" ]]; then
102
+ print_info "Listing tools from all configured servers..."
103
+ echo ""
104
+
105
+ local srv
106
+ while IFS= read -r srv; do
107
+ echo -e "${BLUE}Server: ${srv}${NC}"
108
+ npx @modelcontextprotocol/inspector --cli --config "$CONFIG_FILE" --server "$srv" --method tools/list 2>/dev/null || print_warning "Failed to connect to $srv"
109
+ echo ""
110
+ done < <(jq -r '.mcpServers | keys[]' "$CONFIG_FILE" 2>/dev/null)
111
+ else
112
+ print_info "Listing tools from server: $server"
113
+ npx @modelcontextprotocol/inspector --cli --config "$CONFIG_FILE" --server "$server" --method tools/list
114
+ fi
115
+ return 0
116
+ }
117
+
118
+ # Call a tool
119
+ call_tool() {
120
+ local server="${1:-}"
121
+ local tool_name="${2:-}"
122
+ shift 2 || true
123
+ local -a tool_args=("$@")
124
+
125
+ if [[ -z "$server" || -z "$tool_name" ]]; then
126
+ print_error "Usage: call-tool <server> <tool-name> [--tool-arg key=value ...]"
127
+ return 1
128
+ fi
129
+
130
+ print_header
131
+ echo -e "${CYAN}🎯 MCP Inspector - Call Tool${NC}"
132
+ print_header
133
+ print_info "Server: $server"
134
+ print_info "Tool: $tool_name"
135
+
136
+ # Build args array safely
137
+ local -a cmd_args=("--cli" "--config" "$CONFIG_FILE" "--server" "$server" "--method" "tools/call" "--tool-name" "$tool_name")
138
+
139
+ local arg
140
+ for arg in "${tool_args[@]}"; do
141
+ cmd_args+=("--tool-arg" "$arg")
142
+ done
143
+
144
+ npx @modelcontextprotocol/inspector "${cmd_args[@]}"
145
+ return 0
146
+ }
147
+
148
+ # List resources
149
+ list_resources() {
150
+ local server="${1:-}"
151
+
152
+ print_header
153
+ echo -e "${CYAN}📚 MCP Inspector - List Resources${NC}"
154
+ print_header
155
+
156
+ if [[ -z "$server" ]]; then
157
+ print_info "Listing resources from all configured servers..."
158
+ echo ""
159
+
160
+ local srv
161
+ while IFS= read -r srv; do
162
+ echo -e "${BLUE}Server: ${srv}${NC}"
163
+ npx @modelcontextprotocol/inspector --cli --config "$CONFIG_FILE" --server "$srv" --method resources/list 2>/dev/null || print_warning "No resources or failed to connect"
164
+ echo ""
165
+ done < <(jq -r '.mcpServers | keys[]' "$CONFIG_FILE" 2>/dev/null)
166
+ else
167
+ print_info "Listing resources from server: $server"
168
+ npx @modelcontextprotocol/inspector --cli --config "$CONFIG_FILE" --server "$server" --method resources/list
169
+ fi
170
+ return 0
171
+ }
172
+
173
+ # Health check all servers
174
+ health_check() {
175
+ print_header
176
+ echo -e "${CYAN}🏥 MCP Server Health Check${NC}"
177
+ print_header
178
+
179
+ local total=0
180
+ local healthy=0
181
+ local failed=0
182
+
183
+ # Check local Elysia servers first
184
+ echo -e "\n${BLUE}Local Elysia Servers:${NC}"
185
+
186
+ local port
187
+ for port in 3100 3101; do
188
+ total=$((total + 1))
189
+ local name="localhost:$port"
190
+ local response
191
+ if response=$(curl -s "http://localhost:$port/health" 2>/dev/null); then
192
+ local status
193
+ status=$(echo "$response" | jq -r '.status // "ok"' 2>/dev/null || echo "healthy")
194
+ print_success "$name - $status"
195
+ healthy=$((healthy + 1))
196
+ else
197
+ print_error "$name - not running"
198
+ failed=$((failed + 1))
199
+ fi
200
+ done
201
+
202
+ # Check MCP servers from config
203
+ echo -e "\n${BLUE}MCP Servers (from config):${NC}"
204
+
205
+ local srv
206
+ while IFS= read -r srv; do
207
+ total=$((total + 1))
208
+ local server_type
209
+ server_type=$(jq -r ".mcpServers[\"$srv\"].type" "$CONFIG_FILE")
210
+
211
+ if [[ "$server_type" == "streamable-http" || "$server_type" == "sse" ]]; then
212
+ local url
213
+ url=$(jq -r ".mcpServers[\"$srv\"].url" "$CONFIG_FILE")
214
+ if curl -s "$url/health" > /dev/null 2>&1; then
215
+ print_success "$srv ($server_type) - healthy"
216
+ healthy=$((healthy + 1))
217
+ else
218
+ print_warning "$srv ($server_type) - not reachable"
219
+ failed=$((failed + 1))
220
+ fi
221
+ else
222
+ # For stdio servers, just note they need manual testing
223
+ print_warning "$srv ($server_type) - stdio (use 'ui' to test)"
224
+ fi
225
+ done < <(jq -r '.mcpServers | keys[]' "$CONFIG_FILE" 2>/dev/null)
226
+
227
+ echo ""
228
+ print_header
229
+ echo -e "Summary: ${GREEN}$healthy healthy${NC} / ${RED}$failed failed${NC} / $total total"
230
+ return 0
231
+ }
232
+
233
+ # Show configuration
234
+ show_config() {
235
+ print_header
236
+ echo -e "${CYAN}⚙️ MCP Configuration${NC}"
237
+ print_header
238
+
239
+ if [[ -f "$CONFIG_FILE" ]]; then
240
+ print_info "Config file: $CONFIG_FILE"
241
+ echo ""
242
+ jq '.' "$CONFIG_FILE"
243
+ else
244
+ print_error "Config file not found: $CONFIG_FILE"
245
+ return 1
246
+ fi
247
+ return 0
248
+ }
249
+
250
+ # Test API Gateway endpoints
251
+ test_api_gateway() {
252
+ print_header
253
+ echo -e "${CYAN}🧪 API Gateway Test Suite${NC}"
254
+ print_header
255
+
256
+ local base_url="http://localhost:3100"
257
+ local passed=0
258
+ local failed=0
259
+
260
+ # Test health endpoint
261
+ echo -e "\n${BLUE}Testing endpoints:${NC}"
262
+
263
+ local response
264
+
265
+ # Health check
266
+ if response=$(curl -s "$base_url/health" 2>/dev/null); then
267
+ print_success "GET /health"
268
+ echo " Response: $response"
269
+ passed=$((passed + 1))
270
+ else
271
+ print_error "GET /health - failed"
272
+ failed=$((failed + 1))
273
+ fi
274
+
275
+ # Quality summary
276
+ if response=$(curl -s "$base_url/api/quality/summary" 2>/dev/null); then
277
+ print_success "GET /api/quality/summary"
278
+ local issues
279
+ local gate
280
+ issues=$(echo "$response" | jq -r '.summary.totalIssues // "N/A"' 2>/dev/null || echo "N/A")
281
+ gate=$(echo "$response" | jq -r '.summary.qualityGate // "N/A"' 2>/dev/null || echo "N/A")
282
+ echo " Issues: $issues"
283
+ echo " Quality Gate: $gate"
284
+ passed=$((passed + 1))
285
+ else
286
+ print_error "GET /api/quality/summary - failed"
287
+ failed=$((failed + 1))
288
+ fi
289
+
290
+ # SonarCloud status
291
+ if curl -s "$base_url/api/sonarcloud/status" > /dev/null 2>&1; then
292
+ print_success "GET /api/sonarcloud/status"
293
+ passed=$((passed + 1))
294
+ else
295
+ print_error "GET /api/sonarcloud/status - failed"
296
+ failed=$((failed + 1))
297
+ fi
298
+
299
+ # Cache stats
300
+ if response=$(curl -s "$base_url/api/cache/stats" 2>/dev/null); then
301
+ print_success "GET /api/cache/stats"
302
+ local size
303
+ size=$(echo "$response" | jq -r '.size // 0' 2>/dev/null || echo "0")
304
+ echo " Cache size: $size"
305
+ passed=$((passed + 1))
306
+ else
307
+ print_error "GET /api/cache/stats - failed"
308
+ failed=$((failed + 1))
309
+ fi
310
+
311
+ # Crawl4AI health
312
+ if response=$(curl -s "$base_url/api/crawl4ai/health" 2>/dev/null); then
313
+ local status
314
+ status=$(echo "$response" | jq -r '.status // "unknown"' 2>/dev/null || echo "unknown")
315
+ if [[ "$status" == "healthy" ]]; then
316
+ print_success "GET /api/crawl4ai/health - $status"
317
+ else
318
+ print_warning "GET /api/crawl4ai/health - $status (Crawl4AI may not be running)"
319
+ fi
320
+ passed=$((passed + 1))
321
+ else
322
+ print_error "GET /api/crawl4ai/health - failed"
323
+ failed=$((failed + 1))
324
+ fi
325
+
326
+ echo ""
327
+ print_header
328
+ echo -e "Results: ${GREEN}$passed passed${NC} / ${RED}$failed failed${NC}"
329
+ return 0
330
+ }
331
+
332
+ # Show help
333
+ show_help() {
334
+ cat << 'HELP'
335
+ MCP Inspector Helper Script
336
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━
337
+
338
+ Usage: ./mcp-inspector-helper.sh [command] [options]
339
+
340
+ Commands:
341
+ ui [server] Launch web UI for interactive testing
342
+ Opens browser at http://localhost:6274
343
+
344
+ list-tools [server] List available tools from server(s)
345
+ If no server specified, lists from all
346
+
347
+ call-tool <server> <tool> [args...]
348
+ Call a specific tool with arguments
349
+ Example: call-tool context7 resolve-library-id libraryName=react
350
+
351
+ list-resources [server] List available resources from server(s)
352
+
353
+ health Check health of all configured servers
354
+
355
+ test-gateway Run API Gateway test suite
356
+
357
+ config Show current MCP configuration
358
+
359
+ help Show this help message
360
+
361
+ Examples:
362
+ # Launch web UI for all servers
363
+ ./mcp-inspector-helper.sh ui
364
+
365
+ # Launch web UI for specific server
366
+ ./mcp-inspector-helper.sh ui context7
367
+
368
+ # List tools from Context7 server
369
+ ./mcp-inspector-helper.sh list-tools context7
370
+
371
+ # Call a tool
372
+ ./mcp-inspector-helper.sh call-tool context7 resolve-library-id libraryName=bun
373
+
374
+ # Health check all servers
375
+ ./mcp-inspector-helper.sh health
376
+
377
+ # Test API Gateway
378
+ ./mcp-inspector-helper.sh test-gateway
379
+
380
+ Configuration:
381
+ Config file: .opencode/server/mcp-test-config.json
382
+
383
+ Servers defined:
384
+ - api-gateway (HTTP) - AI DevOps API Gateway
385
+ - mcp-dashboard (HTTP) - MCP Dashboard with WebSocket
386
+ - crawl4ai (stdio) - Web crawling
387
+ - context7 (stdio) - Library documentation
388
+ - repomix (stdio) - Repository packaging
389
+ - filesystem (stdio) - File system access
390
+ - memory (stdio) - Persistent memory
391
+ - github (stdio) - GitHub API
392
+
393
+ Starting Local Servers:
394
+ # Start API Gateway (port 3100)
395
+ bun run .opencode/server/api-gateway.ts
396
+
397
+ # Start MCP Dashboard (port 3101)
398
+ bun run .opencode/server/mcp-dashboard.ts
399
+
400
+ # Or use npm scripts
401
+ bun run dev # API Gateway
402
+ bun run dashboard # MCP Dashboard
403
+
404
+ HELP
405
+ return 0
406
+ }
407
+
408
+ # Main
409
+ main() {
410
+ check_inspector || exit 1
411
+
412
+ local command="${1:-help}"
413
+ shift || true
414
+
415
+ case "$command" in
416
+ ui|web)
417
+ launch_ui "$@"
418
+ ;;
419
+ list-tools|tools)
420
+ list_tools "$@"
421
+ ;;
422
+ call-tool|call)
423
+ call_tool "$@"
424
+ ;;
425
+ list-resources|resources)
426
+ list_resources "$@"
427
+ ;;
428
+ health|status)
429
+ health_check
430
+ ;;
431
+ test-gateway|test)
432
+ test_api_gateway
433
+ ;;
434
+ config|show-config)
435
+ show_config
436
+ ;;
437
+ help|--help|-h)
438
+ show_help
439
+ ;;
440
+ *)
441
+ print_error "Unknown command: $command"
442
+ echo "Run './mcp-inspector-helper.sh help' for usage"
443
+ return 1
444
+ ;;
445
+ esac
446
+ return 0
447
+ }
448
+
449
+ main "$@"