@softspark/ai-toolkit 1.2.1 → 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.
- package/AGENTS.md +5 -29
- package/CHANGELOG.md +21 -0
- package/README.md +114 -17
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/ARCHITECTURE.md +35 -19
- package/app/agents/ai-engineer.md +47 -5
- package/app/agents/fact-checker.md +1 -1
- package/app/agents/llm-ops-engineer.md +2 -2
- package/app/agents/{mcp-server-architect.md → mcp-specialist.md} +124 -18
- package/app/agents/mcp-testing-engineer.md +2 -2
- package/app/agents/nlp-engineer.md +1 -1
- package/app/agents/orchestrator.md +3 -4
- package/app/agents/project-planner.md +1 -1
- package/app/agents/technical-researcher.md +71 -21
- package/app/hooks/commit-quality.sh +53 -0
- package/app/hooks/governance-capture.sh +77 -0
- package/app/hooks/guard-config.sh +46 -0
- package/app/hooks/mcp-health.sh +53 -0
- package/app/hooks/pre-compact-save.sh +34 -0
- package/app/hooks/session-context.sh +60 -0
- package/app/hooks.json +60 -0
- package/app/mcp-templates/README.md +105 -0
- package/app/mcp-templates/brave-search.json +13 -0
- package/app/mcp-templates/cloudflare.json +14 -0
- package/app/mcp-templates/context7.json +10 -0
- package/app/mcp-templates/custom-template.json +13 -0
- package/app/mcp-templates/datadog.json +15 -0
- package/app/mcp-templates/docker.json +10 -0
- package/app/mcp-templates/fetch.json +10 -0
- package/app/mcp-templates/filesystem.json +10 -0
- package/app/mcp-templates/git.json +10 -0
- package/app/mcp-templates/github.json +13 -0
- package/app/mcp-templates/google-drive.json +15 -0
- package/app/mcp-templates/google-maps.json +13 -0
- package/app/mcp-templates/grafana.json +14 -0
- package/app/mcp-templates/linear.json +13 -0
- package/app/mcp-templates/memory.json +10 -0
- package/app/mcp-templates/notion.json +13 -0
- package/app/mcp-templates/postgres.json +10 -0
- package/app/mcp-templates/puppeteer.json +10 -0
- package/app/mcp-templates/redis.json +13 -0
- package/app/mcp-templates/sentry.json +14 -0
- package/app/mcp-templates/sequential-thinking.json +10 -0
- package/app/mcp-templates/slack.json +14 -0
- package/app/mcp-templates/sqlite.json +10 -0
- package/app/mcp-templates/supabase.json +14 -0
- package/app/mcp-templates/vercel.json +13 -0
- package/app/plugins/research-pack/README.md +1 -1
- package/app/plugins/research-pack/plugin.json +1 -1
- package/app/rules/claude-toolkit-rules.md +1 -1
- package/app/rules/common/coding-style.md +52 -0
- package/app/rules/common/git-workflow.md +45 -0
- package/app/rules/common/performance.md +49 -0
- package/app/rules/common/security.md +59 -0
- package/app/rules/common/testing.md +53 -0
- package/app/rules/cpp/coding-style.md +55 -0
- package/app/rules/cpp/frameworks.md +55 -0
- package/app/rules/cpp/patterns.md +57 -0
- package/app/rules/cpp/security.md +61 -0
- package/app/rules/cpp/testing.md +58 -0
- package/app/rules/csharp/coding-style.md +54 -0
- package/app/rules/csharp/frameworks.md +60 -0
- package/app/rules/csharp/patterns.md +61 -0
- package/app/rules/csharp/security.md +60 -0
- package/app/rules/csharp/testing.md +58 -0
- package/app/rules/dart/coding-style.md +61 -0
- package/app/rules/dart/frameworks.md +59 -0
- package/app/rules/dart/patterns.md +62 -0
- package/app/rules/dart/security.md +60 -0
- package/app/rules/dart/testing.md +60 -0
- package/app/rules/golang/coding-style.md +50 -0
- package/app/rules/golang/frameworks.md +56 -0
- package/app/rules/golang/patterns.md +52 -0
- package/app/rules/golang/security.md +61 -0
- package/app/rules/golang/testing.md +54 -0
- package/app/rules/java/coding-style.md +56 -0
- package/app/rules/java/frameworks.md +54 -0
- package/app/rules/java/patterns.md +59 -0
- package/app/rules/java/security.md +60 -0
- package/app/rules/java/testing.md +55 -0
- package/app/rules/kotlin/coding-style.md +56 -0
- package/app/rules/kotlin/frameworks.md +54 -0
- package/app/rules/kotlin/patterns.md +54 -0
- package/app/rules/kotlin/security.md +62 -0
- package/app/rules/kotlin/testing.md +56 -0
- package/app/rules/php/coding-style.md +53 -0
- package/app/rules/php/frameworks.md +57 -0
- package/app/rules/php/patterns.md +63 -0
- package/app/rules/php/security.md +61 -0
- package/app/rules/php/testing.md +60 -0
- package/app/rules/python/coding-style.md +52 -0
- package/app/rules/python/frameworks.md +53 -0
- package/app/rules/python/patterns.md +53 -0
- package/app/rules/python/security.md +58 -0
- package/app/rules/python/testing.md +52 -0
- package/app/rules/ruby/coding-style.md +56 -0
- package/app/rules/ruby/frameworks.md +56 -0
- package/app/rules/ruby/patterns.md +61 -0
- package/app/rules/ruby/security.md +61 -0
- package/app/rules/ruby/testing.md +63 -0
- package/app/rules/rust/coding-style.md +52 -0
- package/app/rules/rust/frameworks.md +59 -0
- package/app/rules/rust/patterns.md +58 -0
- package/app/rules/rust/security.md +64 -0
- package/app/rules/rust/testing.md +54 -0
- package/app/rules/swift/coding-style.md +55 -0
- package/app/rules/swift/frameworks.md +63 -0
- package/app/rules/swift/patterns.md +63 -0
- package/app/rules/swift/security.md +63 -0
- package/app/rules/swift/testing.md +60 -0
- package/app/rules/typescript/coding-style.md +51 -0
- package/app/rules/typescript/frameworks.md +51 -0
- package/app/rules/typescript/patterns.md +51 -0
- package/app/rules/typescript/security.md +55 -0
- package/app/rules/typescript/testing.md +52 -0
- package/app/skills/app-builder/SKILL.md +1 -1
- package/app/skills/brand-voice/SKILL.md +92 -0
- package/app/skills/council/SKILL.md +133 -0
- package/app/skills/introspect/SKILL.md +125 -0
- package/bin/ai-toolkit.js +103 -2
- package/kb/reference/agents-catalog.md +10 -13
- package/kb/reference/architecture-overview.md +29 -6
- package/kb/reference/commands-catalog.md +4 -4
- package/kb/reference/competitive-features-implementation.md +677 -0
- package/kb/reference/extension-api.md +175 -0
- package/kb/reference/hooks-catalog.md +90 -14
- package/kb/reference/language-rules.md +167 -0
- package/kb/reference/manifest-install.md +165 -0
- package/kb/reference/mcp-templates.md +110 -0
- package/kb/reference/skills-catalog.md +9 -6
- package/llms-full.txt +1511 -59
- package/llms.txt +8 -3
- package/package.json +2 -2
- package/scripts/inject_hook_cli.py +330 -0
- package/scripts/install.py +241 -7
- package/scripts/install_steps/ai_tools.py +63 -1
- package/scripts/install_steps/detect_language.py +50 -0
- package/scripts/install_steps/install_state.py +117 -0
- package/scripts/mcp_manager.py +206 -0
- package/app/agents/mcp-expert.md +0 -228
- package/app/agents/rag-engineer.md +0 -201
- package/app/agents/research-synthesizer.md +0 -138
|
@@ -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,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": "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,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,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,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,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,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
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vercel",
|
|
3
|
+
"description": "Vercel deployment management, project settings, and environment variables",
|
|
4
|
+
"mcpServers": {
|
|
5
|
+
"vercel": {
|
|
6
|
+
"command": "npx",
|
|
7
|
+
"args": ["-y", "vercel-mcp-server"],
|
|
8
|
+
"env": {
|
|
9
|
+
"VERCEL_TOKEN": "${VERCEL_TOKEN}"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Curated research and synthesis pack.
|
|
4
4
|
|
|
5
5
|
## Includes
|
|
6
|
-
- Agents: `
|
|
6
|
+
- Agents: `technical-researcher`, `fact-checker`, `search-specialist`
|
|
7
7
|
- Skills: `/search`, `/docs`, `research-mastery`, `plan-writing`
|
|
8
8
|
- Hooks: `user-prompt-submit.sh`
|
|
9
9
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"claude-code": ">=1.0.33"
|
|
11
11
|
},
|
|
12
12
|
"includes": {
|
|
13
|
-
"agents": ["
|
|
13
|
+
"agents": ["technical-researcher", "fact-checker", "search-specialist"],
|
|
14
14
|
"skills": ["search", "docs", "research-mastery", "plan-writing"],
|
|
15
15
|
"rules": [],
|
|
16
16
|
"hooks": ["user-prompt-submit.sh"]
|