@softspark/ai-toolkit 1.2.0 → 1.3.0

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 (142) hide show
  1. package/AGENTS.md +5 -29
  2. package/CHANGELOG.md +39 -0
  3. package/README.md +170 -27
  4. package/app/.claude-plugin/plugin.json +2 -2
  5. package/app/ARCHITECTURE.md +35 -19
  6. package/app/agents/ai-engineer.md +47 -5
  7. package/app/agents/fact-checker.md +1 -1
  8. package/app/agents/llm-ops-engineer.md +2 -2
  9. package/app/agents/{mcp-server-architect.md → mcp-specialist.md} +124 -18
  10. package/app/agents/mcp-testing-engineer.md +2 -2
  11. package/app/agents/nlp-engineer.md +1 -1
  12. package/app/agents/orchestrator.md +3 -4
  13. package/app/agents/project-planner.md +1 -1
  14. package/app/agents/technical-researcher.md +71 -21
  15. package/app/hooks/commit-quality.sh +53 -0
  16. package/app/hooks/governance-capture.sh +77 -0
  17. package/app/hooks/guard-config.sh +46 -0
  18. package/app/hooks/mcp-health.sh +53 -0
  19. package/app/hooks/pre-compact-save.sh +34 -0
  20. package/app/hooks/session-context.sh +60 -0
  21. package/app/hooks.json +60 -0
  22. package/app/mcp-templates/README.md +105 -0
  23. package/app/mcp-templates/brave-search.json +13 -0
  24. package/app/mcp-templates/cloudflare.json +14 -0
  25. package/app/mcp-templates/context7.json +10 -0
  26. package/app/mcp-templates/custom-template.json +13 -0
  27. package/app/mcp-templates/datadog.json +15 -0
  28. package/app/mcp-templates/docker.json +10 -0
  29. package/app/mcp-templates/fetch.json +10 -0
  30. package/app/mcp-templates/filesystem.json +10 -0
  31. package/app/mcp-templates/git.json +10 -0
  32. package/app/mcp-templates/github.json +13 -0
  33. package/app/mcp-templates/google-drive.json +15 -0
  34. package/app/mcp-templates/google-maps.json +13 -0
  35. package/app/mcp-templates/grafana.json +14 -0
  36. package/app/mcp-templates/linear.json +13 -0
  37. package/app/mcp-templates/memory.json +10 -0
  38. package/app/mcp-templates/notion.json +13 -0
  39. package/app/mcp-templates/postgres.json +10 -0
  40. package/app/mcp-templates/puppeteer.json +10 -0
  41. package/app/mcp-templates/redis.json +13 -0
  42. package/app/mcp-templates/sentry.json +14 -0
  43. package/app/mcp-templates/sequential-thinking.json +10 -0
  44. package/app/mcp-templates/slack.json +14 -0
  45. package/app/mcp-templates/sqlite.json +10 -0
  46. package/app/mcp-templates/supabase.json +14 -0
  47. package/app/mcp-templates/vercel.json +13 -0
  48. package/app/plugins/research-pack/README.md +1 -1
  49. package/app/plugins/research-pack/plugin.json +1 -1
  50. package/app/rules/claude-toolkit-rules.md +1 -1
  51. package/app/rules/common/coding-style.md +52 -0
  52. package/app/rules/common/git-workflow.md +45 -0
  53. package/app/rules/common/performance.md +49 -0
  54. package/app/rules/common/security.md +59 -0
  55. package/app/rules/common/testing.md +53 -0
  56. package/app/rules/cpp/coding-style.md +55 -0
  57. package/app/rules/cpp/frameworks.md +55 -0
  58. package/app/rules/cpp/patterns.md +57 -0
  59. package/app/rules/cpp/security.md +61 -0
  60. package/app/rules/cpp/testing.md +58 -0
  61. package/app/rules/csharp/coding-style.md +54 -0
  62. package/app/rules/csharp/frameworks.md +60 -0
  63. package/app/rules/csharp/patterns.md +61 -0
  64. package/app/rules/csharp/security.md +60 -0
  65. package/app/rules/csharp/testing.md +58 -0
  66. package/app/rules/dart/coding-style.md +61 -0
  67. package/app/rules/dart/frameworks.md +59 -0
  68. package/app/rules/dart/patterns.md +62 -0
  69. package/app/rules/dart/security.md +60 -0
  70. package/app/rules/dart/testing.md +60 -0
  71. package/app/rules/golang/coding-style.md +50 -0
  72. package/app/rules/golang/frameworks.md +56 -0
  73. package/app/rules/golang/patterns.md +52 -0
  74. package/app/rules/golang/security.md +61 -0
  75. package/app/rules/golang/testing.md +54 -0
  76. package/app/rules/java/coding-style.md +56 -0
  77. package/app/rules/java/frameworks.md +54 -0
  78. package/app/rules/java/patterns.md +59 -0
  79. package/app/rules/java/security.md +60 -0
  80. package/app/rules/java/testing.md +55 -0
  81. package/app/rules/kotlin/coding-style.md +56 -0
  82. package/app/rules/kotlin/frameworks.md +54 -0
  83. package/app/rules/kotlin/patterns.md +54 -0
  84. package/app/rules/kotlin/security.md +62 -0
  85. package/app/rules/kotlin/testing.md +56 -0
  86. package/app/rules/php/coding-style.md +53 -0
  87. package/app/rules/php/frameworks.md +57 -0
  88. package/app/rules/php/patterns.md +63 -0
  89. package/app/rules/php/security.md +61 -0
  90. package/app/rules/php/testing.md +60 -0
  91. package/app/rules/python/coding-style.md +52 -0
  92. package/app/rules/python/frameworks.md +53 -0
  93. package/app/rules/python/patterns.md +53 -0
  94. package/app/rules/python/security.md +58 -0
  95. package/app/rules/python/testing.md +52 -0
  96. package/app/rules/ruby/coding-style.md +56 -0
  97. package/app/rules/ruby/frameworks.md +56 -0
  98. package/app/rules/ruby/patterns.md +61 -0
  99. package/app/rules/ruby/security.md +61 -0
  100. package/app/rules/ruby/testing.md +63 -0
  101. package/app/rules/rust/coding-style.md +52 -0
  102. package/app/rules/rust/frameworks.md +59 -0
  103. package/app/rules/rust/patterns.md +58 -0
  104. package/app/rules/rust/security.md +64 -0
  105. package/app/rules/rust/testing.md +54 -0
  106. package/app/rules/swift/coding-style.md +55 -0
  107. package/app/rules/swift/frameworks.md +63 -0
  108. package/app/rules/swift/patterns.md +63 -0
  109. package/app/rules/swift/security.md +63 -0
  110. package/app/rules/swift/testing.md +60 -0
  111. package/app/rules/typescript/coding-style.md +51 -0
  112. package/app/rules/typescript/frameworks.md +51 -0
  113. package/app/rules/typescript/patterns.md +51 -0
  114. package/app/rules/typescript/security.md +55 -0
  115. package/app/rules/typescript/testing.md +52 -0
  116. package/app/skills/app-builder/SKILL.md +1 -1
  117. package/app/skills/brand-voice/SKILL.md +92 -0
  118. package/app/skills/council/SKILL.md +133 -0
  119. package/app/skills/introspect/SKILL.md +125 -0
  120. package/bin/ai-toolkit.js +103 -2
  121. package/kb/reference/agents-catalog.md +10 -13
  122. package/kb/reference/architecture-overview.md +29 -6
  123. package/kb/reference/commands-catalog.md +4 -4
  124. package/kb/reference/competitive-features-implementation.md +677 -0
  125. package/kb/reference/extension-api.md +175 -0
  126. package/kb/reference/hooks-catalog.md +90 -14
  127. package/kb/reference/language-rules.md +167 -0
  128. package/kb/reference/manifest-install.md +165 -0
  129. package/kb/reference/mcp-templates.md +110 -0
  130. package/kb/reference/skills-catalog.md +9 -6
  131. package/llms-full.txt +1511 -59
  132. package/llms.txt +8 -3
  133. package/package.json +2 -2
  134. package/scripts/inject_hook_cli.py +330 -0
  135. package/scripts/install.py +241 -7
  136. package/scripts/install_steps/ai_tools.py +63 -1
  137. package/scripts/install_steps/detect_language.py +50 -0
  138. package/scripts/install_steps/install_state.py +117 -0
  139. package/scripts/mcp_manager.py +206 -0
  140. package/app/agents/mcp-expert.md +0 -228
  141. package/app/agents/rag-engineer.md +0 -201
  142. package/app/agents/research-synthesizer.md +0 -138
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+ # mcp-health.sh — Check MCP server health at session start.
3
+ #
4
+ # Fires on: SessionStart
5
+ # Non-blocking: always exits 0 (warnings only).
6
+
7
+ # Common install hints for known MCP servers
8
+ get_install_hint() {
9
+ case "$1" in
10
+ npx) echo "npm install -g npx" ;;
11
+ uvx) echo "pip install uv" ;;
12
+ node) echo "https://nodejs.org/" ;;
13
+ python3|python) echo "https://python.org/" ;;
14
+ docker) echo "https://docs.docker.com/get-docker/" ;;
15
+ *) echo "check the MCP server documentation" ;;
16
+ esac
17
+ }
18
+
19
+ # Check both global and local MCP config files
20
+ CONFIG_FILES=()
21
+ [ -f "$HOME/.claude/settings.json" ] && CONFIG_FILES+=("$HOME/.claude/settings.json")
22
+ [ -f ".mcp.json" ] && CONFIG_FILES+=(".mcp.json")
23
+
24
+ if [ ${#CONFIG_FILES[@]} -eq 0 ]; then
25
+ exit 0
26
+ fi
27
+
28
+ # Verify jq is available
29
+ if ! command -v jq >/dev/null 2>&1; then
30
+ exit 0
31
+ fi
32
+
33
+ for CONFIG in "${CONFIG_FILES[@]}"; do
34
+ # Extract server names and their commands from mcpServers config
35
+ SERVERS=$(jq -r '
36
+ (.mcpServers // .mcp_servers // {})
37
+ | to_entries[]
38
+ | select(.value.command != null)
39
+ | "\(.key)\t\(.value.command)"
40
+ ' "$CONFIG" 2>/dev/null)
41
+
42
+ [ -z "$SERVERS" ] && continue
43
+
44
+ while IFS=$'\t' read -r SERVER_NAME CMD; do
45
+ [ -z "$CMD" ] && continue
46
+ if ! command -v "$CMD" >/dev/null 2>&1; then
47
+ HINT=$(get_install_hint "$CMD")
48
+ echo "MCP health: ${SERVER_NAME} command not found (${CMD}). Install with: ${HINT}"
49
+ fi
50
+ done <<< "$SERVERS"
51
+ done
52
+
53
+ exit 0
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ # pre-compact-save.sh — Save conversation context summary before compaction.
3
+ #
4
+ # Fires on: PreCompact
5
+ # Saves session metadata to timestamped file for audit trail.
6
+ # Skipped when TOOLKIT_HOOK_PROFILE=minimal.
7
+
8
+ # shellcheck source=_profile-check.sh
9
+ source "$(dirname "$0")/_profile-check.sh"
10
+
11
+ SAVE_DIR="$HOME/.ai-toolkit/compactions"
12
+ mkdir -p "$SAVE_DIR"
13
+
14
+ TIMESTAMP=$(date -u +"%Y-%m-%d_%H-%M-%S")
15
+ SESSION="${CLAUDE_SESSION_ID:-$$}"
16
+ SAVE_FILE="$SAVE_DIR/${TIMESTAMP}_${SESSION}.txt"
17
+
18
+ # Gather context
19
+ SESSION="${CLAUDE_SESSION_ID:-unknown}"
20
+ WORKDIR="$(pwd)"
21
+ BRANCH=""
22
+ if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
23
+ BRANCH=$(git branch --show-current 2>/dev/null || echo "detached")
24
+ fi
25
+
26
+ cat > "$SAVE_FILE" << EOF
27
+ # Pre-Compaction Context
28
+ Timestamp: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
29
+ Session: ${SESSION}
30
+ Working Directory: ${WORKDIR}
31
+ Git Branch: ${BRANCH:-N/A}
32
+ EOF
33
+
34
+ exit 0
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env bash
2
+ # session-context.sh — Capture session context at start for later reference.
3
+ #
4
+ # Fires on: SessionStart
5
+ # Saves environment snapshot to JSON for cross-hook and cross-session use.
6
+ # Skipped when TOOLKIT_HOOK_PROFILE=minimal.
7
+
8
+ # shellcheck source=_profile-check.sh
9
+ source "$(dirname "$0")/_profile-check.sh"
10
+
11
+ SESSION="${CLAUDE_SESSION_ID:-$$}"
12
+ SESSIONS_DIR="$HOME/.ai-toolkit/sessions"
13
+ mkdir -p "$SESSIONS_DIR"
14
+
15
+ CONTEXT_FILE="$SESSIONS_DIR/${SESSION}.json"
16
+
17
+ # Gather context
18
+ WORKDIR="$(pwd)"
19
+ GIT_BRANCH=""
20
+ GIT_STATUS=""
21
+ if command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
22
+ GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "detached")
23
+ GIT_STATUS=$(git status --short 2>/dev/null | head -20)
24
+ fi
25
+
26
+ NODE_VERSION=""
27
+ if command -v node >/dev/null 2>&1; then
28
+ NODE_VERSION=$(node --version 2>/dev/null)
29
+ fi
30
+
31
+ PYTHON_VERSION=""
32
+ if command -v python3 >/dev/null 2>&1; then
33
+ PYTHON_VERSION=$(python3 --version 2>/dev/null | awk '{print $2}')
34
+ fi
35
+
36
+ CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
37
+
38
+ # Write JSON using python3 for proper escaping
39
+ python3 - "$CONTEXT_FILE" "$WORKDIR" "$GIT_BRANCH" "$GIT_STATUS" "$CURRENT_DATE" "$NODE_VERSION" "$PYTHON_VERSION" <<'PY'
40
+ import json
41
+ import sys
42
+ import os
43
+
44
+ context_file = sys.argv[1]
45
+ data = {
46
+ "pwd": sys.argv[2],
47
+ "git_branch": sys.argv[3],
48
+ "git_status": sys.argv[4],
49
+ "date": sys.argv[5],
50
+ "node_version": sys.argv[6],
51
+ "python_version": sys.argv[7],
52
+ }
53
+
54
+ tmp = context_file + ".tmp"
55
+ with open(tmp, "w") as f:
56
+ json.dump(data, f, indent=2)
57
+ os.replace(tmp, context_file)
58
+ PY
59
+
60
+ exit 0
package/app/hooks.json CHANGED
@@ -10,6 +10,26 @@
10
10
  "command": "\"$HOME/.ai-toolkit/hooks/session-start.sh\""
11
11
  }
12
12
  ]
13
+ },
14
+ {
15
+ "_source": "ai-toolkit",
16
+ "matcher": "startup|compact",
17
+ "hooks": [
18
+ {
19
+ "type": "command",
20
+ "command": "\"$HOME/.ai-toolkit/hooks/mcp-health.sh\""
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "_source": "ai-toolkit",
26
+ "matcher": "startup|compact",
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "\"$HOME/.ai-toolkit/hooks/session-context.sh\""
31
+ }
32
+ ]
13
33
  }
14
34
  ],
15
35
  "Notification": [
@@ -44,6 +64,26 @@
44
64
  "command": "\"$HOME/.ai-toolkit/hooks/guard-path.sh\""
45
65
  }
46
66
  ]
67
+ },
68
+ {
69
+ "_source": "ai-toolkit",
70
+ "matcher": "Edit|Write|MultiEdit",
71
+ "hooks": [
72
+ {
73
+ "type": "command",
74
+ "command": "\"$HOME/.ai-toolkit/hooks/guard-config.sh\""
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "_source": "ai-toolkit",
80
+ "matcher": "Bash",
81
+ "hooks": [
82
+ {
83
+ "type": "command",
84
+ "command": "\"$HOME/.ai-toolkit/hooks/commit-quality.sh\""
85
+ }
86
+ ]
47
87
  }
48
88
  ],
49
89
  "UserPromptSubmit": [
@@ -78,6 +118,16 @@
78
118
  "command": "\"$HOME/.ai-toolkit/hooks/post-tool-use.sh\""
79
119
  }
80
120
  ]
121
+ },
122
+ {
123
+ "_source": "ai-toolkit",
124
+ "matcher": "Bash|Edit|Write|MultiEdit",
125
+ "hooks": [
126
+ {
127
+ "type": "command",
128
+ "command": "\"$HOME/.ai-toolkit/hooks/governance-capture.sh\""
129
+ }
130
+ ]
81
131
  }
82
132
  ],
83
133
  "Stop": [
@@ -160,6 +210,16 @@
160
210
  "command": "\"$HOME/.ai-toolkit/hooks/pre-compact.sh\""
161
211
  }
162
212
  ]
213
+ },
214
+ {
215
+ "_source": "ai-toolkit",
216
+ "matcher": "",
217
+ "hooks": [
218
+ {
219
+ "type": "command",
220
+ "command": "\"$HOME/.ai-toolkit/hooks/pre-compact-save.sh\""
221
+ }
222
+ ]
163
223
  }
164
224
  ],
165
225
  "SessionEnd": [
@@ -0,0 +1,105 @@
1
+ # MCP Server Templates
2
+
3
+ Ready-to-use MCP (Model Context Protocol) server configurations for Claude Code and other AI assistants.
4
+
5
+ ## What are these?
6
+
7
+ Each JSON file contains a preconfigured MCP server definition that can be merged into your `.mcp.json` (project-level) or `~/.claude/settings.json` (global). Templates use `${ENV_VAR}` placeholders for secrets -- set the corresponding environment variables before use.
8
+
9
+ ## Quick start
10
+
11
+ ### Via CLI (recommended)
12
+
13
+ ```bash
14
+ # List all available templates
15
+ ai-toolkit mcp list
16
+
17
+ # Show details for a template
18
+ ai-toolkit mcp show github
19
+
20
+ # Add one or more servers to your project
21
+ ai-toolkit mcp add github fetch context7
22
+
23
+ # Add to a specific directory
24
+ ai-toolkit mcp add postgres --target /path/to/project
25
+
26
+ # Remove a server
27
+ ai-toolkit mcp remove github
28
+ ```
29
+
30
+ ### Manual copy
31
+
32
+ 1. Open the template file (e.g., `github.json`)
33
+ 2. Copy the `mcpServers` block
34
+ 3. Merge it into your `.mcp.json` or `~/.claude/settings.json`
35
+
36
+ Example -- adding GitHub to `.mcp.json`:
37
+
38
+ ```json
39
+ {
40
+ "mcpServers": {
41
+ "github": {
42
+ "command": "npx",
43
+ "args": ["-y", "@modelcontextprotocol/server-github"],
44
+ "env": {
45
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## Available templates
53
+
54
+ | Template | Description |
55
+ |----------|-------------|
56
+ | `github` | GitHub API for issues, PRs, and repos |
57
+ | `filesystem` | Local file access |
58
+ | `memory` | Persistent memory via knowledge graph |
59
+ | `sequential-thinking` | Step-by-step reasoning |
60
+ | `postgres` | PostgreSQL database access |
61
+ | `sqlite` | SQLite database access |
62
+ | `brave-search` | Web search via Brave API |
63
+ | `puppeteer` | Browser automation |
64
+ | `slack` | Slack workspace integration |
65
+ | `google-drive` | Google Drive file management |
66
+ | `google-maps` | Google Maps geocoding and directions |
67
+ | `sentry` | Sentry error tracking |
68
+ | `git` | Git repository operations |
69
+ | `fetch` | HTTP fetch for web pages and APIs |
70
+ | `context7` | Up-to-date library documentation |
71
+ | `supabase` | Supabase project management |
72
+ | `linear` | Linear issue tracker |
73
+ | `notion` | Notion workspace integration |
74
+ | `redis` | Redis cache and data management |
75
+ | `docker` | Docker container management |
76
+ | `cloudflare` | Cloudflare Workers, KV, D1, R2 |
77
+ | `vercel` | Vercel deployments and settings |
78
+ | `datadog` | Datadog monitoring and metrics |
79
+ | `grafana` | Grafana dashboards and alerting |
80
+ | `custom-template` | Empty template for custom servers |
81
+
82
+ ## Contributing a new template
83
+
84
+ 1. Create `app/mcp-templates/<name>.json` following this structure:
85
+
86
+ ```json
87
+ {
88
+ "name": "<name>",
89
+ "description": "Short description of what this server does",
90
+ "mcpServers": {
91
+ "<name>": {
92
+ "command": "npx",
93
+ "args": ["-y", "<npm-package-name>"],
94
+ "env": {
95
+ "API_KEY": "${ENV_VAR_NAME}"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ 2. Use `${ENV_VAR}` syntax for any secrets or tokens
103
+ 3. Keep the `name` field matching the filename (without `.json`)
104
+ 4. Update this README table
105
+ 5. Run `python3 scripts/validate.py` to verify
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "brave-search",
3
+ "description": "Web and local search powered by Brave Search API",
4
+ "mcpServers": {
5
+ "brave-search": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-brave-search"],
8
+ "env": {
9
+ "BRAVE_API_KEY": "${BRAVE_API_KEY}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "cloudflare",
3
+ "description": "Cloudflare Workers, KV, D1, R2, and DNS management",
4
+ "mcpServers": {
5
+ "cloudflare": {
6
+ "command": "npx",
7
+ "args": ["-y", "@cloudflare/mcp-server-cloudflare"],
8
+ "env": {
9
+ "CLOUDFLARE_API_TOKEN": "${CLOUDFLARE_API_TOKEN}",
10
+ "CLOUDFLARE_ACCOUNT_ID": "${CLOUDFLARE_ACCOUNT_ID}"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "context7",
3
+ "description": "Up-to-date library documentation lookup via Context7",
4
+ "mcpServers": {
5
+ "context7": {
6
+ "command": "npx",
7
+ "args": ["-y", "@upstash/context7-mcp"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "custom-template",
3
+ "description": "Empty template — copy and customize for your own MCP server",
4
+ "mcpServers": {
5
+ "my-server": {
6
+ "command": "npx",
7
+ "args": ["-y", "your-mcp-server-package"],
8
+ "env": {
9
+ "API_KEY": "${YOUR_API_KEY}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "datadog",
3
+ "description": "Datadog monitoring for metrics, logs, traces, and dashboard queries",
4
+ "mcpServers": {
5
+ "datadog": {
6
+ "command": "npx",
7
+ "args": ["-y", "datadog-mcp-server"],
8
+ "env": {
9
+ "DD_API_KEY": "${DD_API_KEY}",
10
+ "DD_APP_KEY": "${DD_APP_KEY}",
11
+ "DD_SITE": "${DD_SITE:-datadoghq.com}"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "docker",
3
+ "description": "Docker container and image management, logs, and compose operations",
4
+ "mcpServers": {
5
+ "docker": {
6
+ "command": "npx",
7
+ "args": ["-y", "docker-mcp-server"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "fetch",
3
+ "description": "HTTP fetch for retrieving web pages and API responses as markdown or raw content",
4
+ "mcpServers": {
5
+ "fetch": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-fetch"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "filesystem",
3
+ "description": "Local filesystem access for reading, writing, and searching files",
4
+ "mcpServers": {
5
+ "filesystem": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "${FILESYSTEM_ROOT:-./}"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "git",
3
+ "description": "Git operations for repository inspection, diffs, logs, and branches",
4
+ "mcpServers": {
5
+ "git": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-git"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "github",
3
+ "description": "GitHub API integration for issues, PRs, repos, and code search",
4
+ "mcpServers": {
5
+ "github": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-github"],
8
+ "env": {
9
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "google-drive",
3
+ "description": "Google Drive integration for file search, reading, and management",
4
+ "mcpServers": {
5
+ "google-drive": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-google-drive"],
8
+ "env": {
9
+ "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}",
10
+ "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}",
11
+ "GOOGLE_REDIRECT_URI": "${GOOGLE_REDIRECT_URI}"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "google-maps",
3
+ "description": "Google Maps API for geocoding, directions, and place search",
4
+ "mcpServers": {
5
+ "google-maps": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-google-maps"],
8
+ "env": {
9
+ "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "grafana",
3
+ "description": "Grafana dashboard queries, alerting, and data source management",
4
+ "mcpServers": {
5
+ "grafana": {
6
+ "command": "npx",
7
+ "args": ["-y", "grafana-mcp-server"],
8
+ "env": {
9
+ "GRAFANA_URL": "${GRAFANA_URL}",
10
+ "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "linear",
3
+ "description": "Linear issue tracker for issues, projects, and team workflows",
4
+ "mcpServers": {
5
+ "linear": {
6
+ "command": "npx",
7
+ "args": ["-y", "linear-mcp-server"],
8
+ "env": {
9
+ "LINEAR_API_KEY": "${LINEAR_API_KEY}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "memory",
3
+ "description": "Persistent memory store using a local knowledge graph",
4
+ "mcpServers": {
5
+ "memory": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-memory"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "notion",
3
+ "description": "Notion workspace integration for pages, databases, and content management",
4
+ "mcpServers": {
5
+ "notion": {
6
+ "command": "npx",
7
+ "args": ["-y", "notion-mcp-server"],
8
+ "env": {
9
+ "NOTION_API_KEY": "${NOTION_API_KEY}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "postgres",
3
+ "description": "PostgreSQL database access for queries, schema inspection, and analysis",
4
+ "mcpServers": {
5
+ "postgres": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-postgres", "${POSTGRES_CONNECTION_STRING}"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "puppeteer",
3
+ "description": "Browser automation for screenshots, navigation, and web scraping",
4
+ "mcpServers": {
5
+ "puppeteer": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "redis",
3
+ "description": "Redis key-value store for cache inspection, data management, and monitoring",
4
+ "mcpServers": {
5
+ "redis": {
6
+ "command": "npx",
7
+ "args": ["-y", "redis-mcp-server"],
8
+ "env": {
9
+ "REDIS_URL": "${REDIS_URL:-redis://localhost:6379}"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "sentry",
3
+ "description": "Sentry error tracking for issue search, event details, and alerting",
4
+ "mcpServers": {
5
+ "sentry": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-sentry"],
8
+ "env": {
9
+ "SENTRY_AUTH_TOKEN": "${SENTRY_AUTH_TOKEN}",
10
+ "SENTRY_ORG": "${SENTRY_ORG}"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "sequential-thinking",
3
+ "description": "Step-by-step reasoning and problem decomposition server",
4
+ "mcpServers": {
5
+ "sequential-thinking": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "slack",
3
+ "description": "Slack workspace integration for channels, messages, and users",
4
+ "mcpServers": {
5
+ "slack": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-slack"],
8
+ "env": {
9
+ "SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
10
+ "SLACK_TEAM_ID": "${SLACK_TEAM_ID}"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "sqlite",
3
+ "description": "SQLite database access for queries and schema management",
4
+ "mcpServers": {
5
+ "sqlite": {
6
+ "command": "npx",
7
+ "args": ["-y", "@modelcontextprotocol/server-sqlite", "${SQLITE_DB_PATH}"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "supabase",
3
+ "description": "Supabase project management, database queries, and edge functions",
4
+ "mcpServers": {
5
+ "supabase": {
6
+ "command": "npx",
7
+ "args": ["-y", "supabase-mcp-server"],
8
+ "env": {
9
+ "SUPABASE_URL": "${SUPABASE_URL}",
10
+ "SUPABASE_SERVICE_ROLE_KEY": "${SUPABASE_SERVICE_ROLE_KEY}"
11
+ }
12
+ }
13
+ }
14
+ }