@comfanion/workflow 4.36.27 → 4.36.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/bin/cli.js +37 -0
- package/package.json +1 -1
- package/src/build-info.json +3 -2
- package/src/opencode/mcp/README.md +89 -0
- package/src/opencode/mcp/catalog.yaml +230 -0
package/README.md
CHANGED
|
@@ -278,6 +278,31 @@ vectorizer:
|
|
|
278
278
|
4. Remove TODOs
|
|
279
279
|
```
|
|
280
280
|
|
|
281
|
+
## MCP Servers
|
|
282
|
+
|
|
283
|
+
Extend AI capabilities with Model Context Protocol servers:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# List available MCP servers
|
|
287
|
+
npx @comfanion/workflow mcp list
|
|
288
|
+
|
|
289
|
+
# Enable servers interactively
|
|
290
|
+
npx @comfanion/workflow mcp enable
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Recommended MCP Servers
|
|
294
|
+
|
|
295
|
+
| Server | Description |
|
|
296
|
+
|--------|-------------|
|
|
297
|
+
| **context7** ⭐ | Library docs for npm, Go, Python |
|
|
298
|
+
| **sequential-thinking** ⭐ | Enhanced reasoning for complex tasks |
|
|
299
|
+
| **playwright** | Browser automation, testing |
|
|
300
|
+
| **atlassian** | Jira/Confluence integration |
|
|
301
|
+
|
|
302
|
+
MCP configs stored in `.opencode/mcp/`:
|
|
303
|
+
- `catalog.yaml` - Available servers (updated by workflow)
|
|
304
|
+
- `enabled.yaml` - Your selections (not touched by updates)
|
|
305
|
+
|
|
281
306
|
## Jira Integration
|
|
282
307
|
|
|
283
308
|
Set credentials:
|
package/bin/cli.js
CHANGED
|
@@ -255,10 +255,25 @@ program
|
|
|
255
255
|
message: 'Enable auto-indexing? (reindex files on save)',
|
|
256
256
|
when: (answers) => answers.install_vectorizer,
|
|
257
257
|
default: true
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
type: 'checkbox',
|
|
261
|
+
name: 'mcp_servers',
|
|
262
|
+
message: 'Select MCP servers to enable:',
|
|
263
|
+
choices: [
|
|
264
|
+
{ name: 'context7 - Library docs for npm, Go, Python (recommended)', value: 'context7', checked: true },
|
|
265
|
+
{ name: 'sequential-thinking - Enhanced reasoning for complex tasks', value: 'sequential-thinking', checked: false },
|
|
266
|
+
{ name: 'playwright - Browser automation and testing', value: 'playwright', checked: false },
|
|
267
|
+
{ name: 'chrome-devtools - Chrome debugging and inspection', value: 'chrome-devtools', checked: false },
|
|
268
|
+
{ name: 'atlassian - Jira/Confluence integration', value: 'atlassian', checked: false },
|
|
269
|
+
{ name: 'github - GitHub repos, issues, PRs', value: 'github', checked: false },
|
|
270
|
+
{ name: 'postgres - PostgreSQL database queries', value: 'postgres', checked: false }
|
|
271
|
+
]
|
|
258
272
|
}
|
|
259
273
|
]);
|
|
260
274
|
|
|
261
275
|
config = { ...config, ...answers };
|
|
276
|
+
config.mcp_servers = answers.mcp_servers || [];
|
|
262
277
|
} else {
|
|
263
278
|
// Apply CLI flags for non-interactive mode
|
|
264
279
|
if (options.tdd) config.methodology = 'tdd';
|
|
@@ -488,6 +503,28 @@ program
|
|
|
488
503
|
await fs.copy(changelogTemplate, changelogPath);
|
|
489
504
|
}
|
|
490
505
|
}
|
|
506
|
+
|
|
507
|
+
// Save MCP server selections (only if user made selections)
|
|
508
|
+
if (config.mcp_servers && config.mcp_servers.length > 0) {
|
|
509
|
+
spinner.text = 'Configuring MCP servers...';
|
|
510
|
+
const mcpEnabledPath = path.join(targetDir, 'mcp', 'enabled.yaml');
|
|
511
|
+
|
|
512
|
+
// Don't overwrite existing enabled.yaml if updating
|
|
513
|
+
if (!isUpdate || !await fs.pathExists(mcpEnabledPath)) {
|
|
514
|
+
let mcpContent = `# Enabled MCP Servers
|
|
515
|
+
# Your personal selection of MCP servers
|
|
516
|
+
# This file is NOT modified by updates
|
|
517
|
+
|
|
518
|
+
`;
|
|
519
|
+
for (const server of config.mcp_servers) {
|
|
520
|
+
mcpContent += `${server}:
|
|
521
|
+
enabled: true
|
|
522
|
+
|
|
523
|
+
`;
|
|
524
|
+
}
|
|
525
|
+
await fs.writeFile(mcpEnabledPath, mcpContent);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
491
528
|
|
|
492
529
|
// Install plugin dependencies
|
|
493
530
|
spinner.text = 'Installing plugin dependencies...';
|
package/package.json
CHANGED
package/src/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.36.
|
|
3
|
-
"buildDate": "2026-01-24T20:
|
|
2
|
+
"version": "4.36.29",
|
|
3
|
+
"buildDate": "2026-01-24T20:54:34.023Z",
|
|
4
4
|
"files": [
|
|
5
5
|
"config.yaml",
|
|
6
6
|
"FLOW.yaml",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"commands",
|
|
12
12
|
"tools",
|
|
13
13
|
"plugins",
|
|
14
|
+
"mcp",
|
|
14
15
|
"package.json",
|
|
15
16
|
"opencode.json"
|
|
16
17
|
]
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# MCP Servers
|
|
2
|
+
|
|
3
|
+
Model Context Protocol (MCP) servers extend AI assistant capabilities with external tools and integrations.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# List available MCP servers
|
|
9
|
+
npx @comfanion/workflow mcp list
|
|
10
|
+
|
|
11
|
+
# Interactive selection
|
|
12
|
+
npx @comfanion/workflow mcp enable
|
|
13
|
+
|
|
14
|
+
# Add specific server
|
|
15
|
+
npx @comfanion/workflow mcp add context7
|
|
16
|
+
|
|
17
|
+
# Remove server
|
|
18
|
+
npx @comfanion/workflow mcp remove context7
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Files
|
|
22
|
+
|
|
23
|
+
| File | Purpose | Updated by |
|
|
24
|
+
|------|---------|------------|
|
|
25
|
+
| `catalog.yaml` | Available MCP servers | `workflow update` |
|
|
26
|
+
| `enabled.yaml` | Your selections | You (manual or CLI) |
|
|
27
|
+
|
|
28
|
+
## Recommended Servers
|
|
29
|
+
|
|
30
|
+
### context7 ⭐
|
|
31
|
+
Library documentation for npm, Go, Python packages. Essential for researching APIs.
|
|
32
|
+
|
|
33
|
+
### sequential-thinking ⭐
|
|
34
|
+
Enhanced reasoning for complex multi-step problems. Helps with architecture decisions.
|
|
35
|
+
|
|
36
|
+
## Categories
|
|
37
|
+
|
|
38
|
+
- 📚 **Documentation** - Library docs, research
|
|
39
|
+
- 🧠 **Thinking** - Reasoning, planning
|
|
40
|
+
- 🌐 **Browser** - Playwright, Chrome DevTools
|
|
41
|
+
- 🔌 **Integrations** - Jira, GitHub, Slack
|
|
42
|
+
- 🗄️ **Database** - PostgreSQL, Redis, SQLite
|
|
43
|
+
- 🔗 **API** - HTTP, OpenAPI
|
|
44
|
+
|
|
45
|
+
## Manual Configuration
|
|
46
|
+
|
|
47
|
+
Edit `enabled.yaml`:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
context7:
|
|
51
|
+
enabled: true
|
|
52
|
+
|
|
53
|
+
atlassian:
|
|
54
|
+
enabled: true
|
|
55
|
+
config:
|
|
56
|
+
env:
|
|
57
|
+
ATLASSIAN_URL: "https://your-domain.atlassian.net"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Environment Variables
|
|
61
|
+
|
|
62
|
+
Some MCP servers require environment variables:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Atlassian
|
|
66
|
+
export ATLASSIAN_EMAIL="your-email@company.com"
|
|
67
|
+
export ATLASSIAN_API_TOKEN="your-token"
|
|
68
|
+
export ATLASSIAN_URL="https://your-domain.atlassian.net"
|
|
69
|
+
|
|
70
|
+
# GitHub
|
|
71
|
+
export GITHUB_TOKEN="ghp_xxx"
|
|
72
|
+
|
|
73
|
+
# PostgreSQL
|
|
74
|
+
export POSTGRES_CONNECTION_STRING="postgresql://..."
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Adding Custom MCP
|
|
78
|
+
|
|
79
|
+
Add to `enabled.yaml`:
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
my-custom-mcp:
|
|
83
|
+
enabled: true
|
|
84
|
+
config:
|
|
85
|
+
command: npx
|
|
86
|
+
args: ["-y", "my-custom-mcp-package"]
|
|
87
|
+
env:
|
|
88
|
+
MY_API_KEY: "xxx"
|
|
89
|
+
```
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# MCP Server Catalog
|
|
2
|
+
# Curated list of recommended MCP servers for AI-assisted development
|
|
3
|
+
#
|
|
4
|
+
# This file is updated by `npx @comfanion/workflow update`
|
|
5
|
+
# Your selections are stored in `enabled.yaml` (not touched by updates)
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# npx @comfanion/workflow mcp list # Show available MCP servers
|
|
9
|
+
# npx @comfanion/workflow mcp enable # Interactive selection
|
|
10
|
+
# npx @comfanion/workflow mcp add <id> # Add specific MCP
|
|
11
|
+
#
|
|
12
|
+
# Version: 1.0.0
|
|
13
|
+
# Last updated: 2026-01-24
|
|
14
|
+
|
|
15
|
+
servers:
|
|
16
|
+
# ==========================================================================
|
|
17
|
+
# DOCUMENTATION & RESEARCH
|
|
18
|
+
# ==========================================================================
|
|
19
|
+
|
|
20
|
+
context7:
|
|
21
|
+
name: "Context7"
|
|
22
|
+
description: "Library documentation for npm, Go, Python packages"
|
|
23
|
+
category: documentation
|
|
24
|
+
recommended: true
|
|
25
|
+
config:
|
|
26
|
+
command: npx
|
|
27
|
+
args: ["-y", "@anthropic/mcp-context7"]
|
|
28
|
+
tags: [docs, npm, go, python, research]
|
|
29
|
+
|
|
30
|
+
# ==========================================================================
|
|
31
|
+
# THINKING & REASONING
|
|
32
|
+
# ==========================================================================
|
|
33
|
+
|
|
34
|
+
sequential-thinking:
|
|
35
|
+
name: "Sequential Thinking"
|
|
36
|
+
description: "Enhanced reasoning for complex multi-step problems"
|
|
37
|
+
category: thinking
|
|
38
|
+
recommended: true
|
|
39
|
+
config:
|
|
40
|
+
command: npx
|
|
41
|
+
args: ["-y", "@anthropic/mcp-sequential-thinking"]
|
|
42
|
+
tags: [reasoning, planning, complex-tasks]
|
|
43
|
+
|
|
44
|
+
# ==========================================================================
|
|
45
|
+
# BROWSER & UI
|
|
46
|
+
# ==========================================================================
|
|
47
|
+
|
|
48
|
+
playwright:
|
|
49
|
+
name: "Playwright"
|
|
50
|
+
description: "Browser automation, testing, and web scraping"
|
|
51
|
+
category: browser
|
|
52
|
+
recommended: false
|
|
53
|
+
config:
|
|
54
|
+
command: npx
|
|
55
|
+
args: ["-y", "@anthropic/mcp-playwright"]
|
|
56
|
+
tags: [browser, testing, automation, scraping]
|
|
57
|
+
|
|
58
|
+
chrome-devtools:
|
|
59
|
+
name: "Chrome DevTools"
|
|
60
|
+
description: "Chrome debugging, performance analysis, DOM inspection"
|
|
61
|
+
category: browser
|
|
62
|
+
recommended: false
|
|
63
|
+
config:
|
|
64
|
+
command: npx
|
|
65
|
+
args: ["-y", "chrome-devtools-mcp@latest"]
|
|
66
|
+
tags: [chrome, debugging, devtools]
|
|
67
|
+
|
|
68
|
+
puppeteer:
|
|
69
|
+
name: "Puppeteer"
|
|
70
|
+
description: "Headless Chrome automation"
|
|
71
|
+
category: browser
|
|
72
|
+
recommended: false
|
|
73
|
+
config:
|
|
74
|
+
command: npx
|
|
75
|
+
args: ["-y", "@anthropic/mcp-puppeteer"]
|
|
76
|
+
tags: [chrome, headless, automation]
|
|
77
|
+
|
|
78
|
+
# ==========================================================================
|
|
79
|
+
# INTEGRATIONS
|
|
80
|
+
# ==========================================================================
|
|
81
|
+
|
|
82
|
+
atlassian:
|
|
83
|
+
name: "Atlassian (Jira/Confluence)"
|
|
84
|
+
description: "Jira issues, Confluence pages integration"
|
|
85
|
+
category: integrations
|
|
86
|
+
recommended: false
|
|
87
|
+
requires_env:
|
|
88
|
+
- ATLASSIAN_EMAIL
|
|
89
|
+
- ATLASSIAN_API_TOKEN
|
|
90
|
+
- ATLASSIAN_URL
|
|
91
|
+
config:
|
|
92
|
+
command: npx
|
|
93
|
+
args: ["-y", "@anthropic/mcp-atlassian"]
|
|
94
|
+
tags: [jira, confluence, tickets, docs]
|
|
95
|
+
|
|
96
|
+
github:
|
|
97
|
+
name: "GitHub"
|
|
98
|
+
description: "GitHub repos, issues, PRs, actions"
|
|
99
|
+
category: integrations
|
|
100
|
+
recommended: false
|
|
101
|
+
requires_env:
|
|
102
|
+
- GITHUB_TOKEN
|
|
103
|
+
config:
|
|
104
|
+
command: npx
|
|
105
|
+
args: ["-y", "@anthropic/mcp-github"]
|
|
106
|
+
tags: [github, git, issues, prs]
|
|
107
|
+
|
|
108
|
+
gitlab:
|
|
109
|
+
name: "GitLab"
|
|
110
|
+
description: "GitLab repos, issues, MRs, pipelines"
|
|
111
|
+
category: integrations
|
|
112
|
+
recommended: false
|
|
113
|
+
requires_env:
|
|
114
|
+
- GITLAB_TOKEN
|
|
115
|
+
config:
|
|
116
|
+
command: npx
|
|
117
|
+
args: ["-y", "@anthropic/mcp-gitlab"]
|
|
118
|
+
tags: [gitlab, git, issues, mrs]
|
|
119
|
+
|
|
120
|
+
slack:
|
|
121
|
+
name: "Slack"
|
|
122
|
+
description: "Slack messages, channels, search"
|
|
123
|
+
category: integrations
|
|
124
|
+
recommended: false
|
|
125
|
+
requires_env:
|
|
126
|
+
- SLACK_TOKEN
|
|
127
|
+
config:
|
|
128
|
+
command: npx
|
|
129
|
+
args: ["-y", "@anthropic/mcp-slack"]
|
|
130
|
+
tags: [slack, messaging, communication]
|
|
131
|
+
|
|
132
|
+
# ==========================================================================
|
|
133
|
+
# DATA & STORAGE
|
|
134
|
+
# ==========================================================================
|
|
135
|
+
|
|
136
|
+
postgres:
|
|
137
|
+
name: "PostgreSQL"
|
|
138
|
+
description: "Query PostgreSQL databases"
|
|
139
|
+
category: database
|
|
140
|
+
recommended: false
|
|
141
|
+
requires_env:
|
|
142
|
+
- POSTGRES_CONNECTION_STRING
|
|
143
|
+
config:
|
|
144
|
+
command: npx
|
|
145
|
+
args: ["-y", "@anthropic/mcp-postgres"]
|
|
146
|
+
tags: [database, sql, postgres]
|
|
147
|
+
|
|
148
|
+
sqlite:
|
|
149
|
+
name: "SQLite"
|
|
150
|
+
description: "Query SQLite databases"
|
|
151
|
+
category: database
|
|
152
|
+
recommended: false
|
|
153
|
+
config:
|
|
154
|
+
command: npx
|
|
155
|
+
args: ["-y", "@anthropic/mcp-sqlite"]
|
|
156
|
+
tags: [database, sql, sqlite]
|
|
157
|
+
|
|
158
|
+
redis:
|
|
159
|
+
name: "Redis"
|
|
160
|
+
description: "Redis key-value operations"
|
|
161
|
+
category: database
|
|
162
|
+
recommended: false
|
|
163
|
+
requires_env:
|
|
164
|
+
- REDIS_URL
|
|
165
|
+
config:
|
|
166
|
+
command: npx
|
|
167
|
+
args: ["-y", "@anthropic/mcp-redis"]
|
|
168
|
+
tags: [database, cache, redis]
|
|
169
|
+
|
|
170
|
+
# ==========================================================================
|
|
171
|
+
# FILE & SYSTEM
|
|
172
|
+
# ==========================================================================
|
|
173
|
+
|
|
174
|
+
filesystem:
|
|
175
|
+
name: "Filesystem"
|
|
176
|
+
description: "Advanced file operations (usually built-in)"
|
|
177
|
+
category: system
|
|
178
|
+
recommended: false
|
|
179
|
+
config:
|
|
180
|
+
command: npx
|
|
181
|
+
args: ["-y", "@anthropic/mcp-filesystem"]
|
|
182
|
+
tags: [files, filesystem]
|
|
183
|
+
|
|
184
|
+
# ==========================================================================
|
|
185
|
+
# API & WEB
|
|
186
|
+
# ==========================================================================
|
|
187
|
+
|
|
188
|
+
fetch:
|
|
189
|
+
name: "Fetch"
|
|
190
|
+
description: "HTTP requests to external APIs (usually built-in)"
|
|
191
|
+
category: api
|
|
192
|
+
recommended: false
|
|
193
|
+
config:
|
|
194
|
+
command: npx
|
|
195
|
+
args: ["-y", "@anthropic/mcp-fetch"]
|
|
196
|
+
tags: [http, api, fetch]
|
|
197
|
+
|
|
198
|
+
openapi:
|
|
199
|
+
name: "OpenAPI"
|
|
200
|
+
description: "Interact with APIs via OpenAPI specs"
|
|
201
|
+
category: api
|
|
202
|
+
recommended: false
|
|
203
|
+
config:
|
|
204
|
+
command: npx
|
|
205
|
+
args: ["-y", "@anthropic/mcp-openapi"]
|
|
206
|
+
tags: [api, openapi, swagger]
|
|
207
|
+
|
|
208
|
+
# Categories for UI grouping
|
|
209
|
+
categories:
|
|
210
|
+
documentation:
|
|
211
|
+
name: "Documentation & Research"
|
|
212
|
+
icon: "📚"
|
|
213
|
+
thinking:
|
|
214
|
+
name: "Thinking & Reasoning"
|
|
215
|
+
icon: "🧠"
|
|
216
|
+
browser:
|
|
217
|
+
name: "Browser & UI"
|
|
218
|
+
icon: "🌐"
|
|
219
|
+
integrations:
|
|
220
|
+
name: "Integrations"
|
|
221
|
+
icon: "🔌"
|
|
222
|
+
database:
|
|
223
|
+
name: "Data & Storage"
|
|
224
|
+
icon: "🗄️"
|
|
225
|
+
system:
|
|
226
|
+
name: "File & System"
|
|
227
|
+
icon: "📁"
|
|
228
|
+
api:
|
|
229
|
+
name: "API & Web"
|
|
230
|
+
icon: "🔗"
|