claude-autopm 1.15.1 → 1.15.3

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 CHANGED
@@ -226,7 +226,7 @@ Essential Components:
226
226
  ✅ Git repository - Initialized
227
227
 
228
228
  Optional Components:
229
- ✅ MCP servers - 2 active (context7-docs, github-mcp)
229
+ ✅ MCP servers - 2 active (context7, github-mcp)
230
230
  ⚠️ Git hooks - Not installed (run: bash scripts/setup-hooks.sh)
231
231
  ✅ Node.js version - v20.10.0 (compatible)
232
232
 
@@ -382,10 +382,10 @@ autopm mcp agents
382
382
  🤖 Agents Using MCP
383
383
 
384
384
  ✅ react-frontend-engineer
385
- └─ context7-docs
385
+ └─ context7
386
386
 
387
387
  ✅ python-backend-engineer
388
- └─ context7-docs
388
+ └─ context7
389
389
  └─ sqlite-mcp
390
390
 
391
391
  📊 Summary:
@@ -393,7 +393,7 @@ autopm mcp agents
393
393
  Using MCP: 39 (74%)
394
394
 
395
395
  # Enable MCP servers
396
- autopm mcp enable context7-docs
396
+ autopm mcp enable context7
397
397
  autopm mcp enable github-mcp
398
398
 
399
399
  # Configure API keys interactively
@@ -447,8 +447,8 @@ autopm mcp validate # Validate all servers
447
447
 
448
448
  ### MCP Server Types
449
449
 
450
- - **Documentation** - `context7-docs` for live framework documentation (React, Python, AWS, etc.)
451
- - **Codebase** - `context7-codebase` for project analysis and navigation
450
+ - **Documentation** - `context7` for live framework documentation (React, Python, AWS, etc.)
451
+ - **Codebase** - `context7` for project analysis and navigation
452
452
  - **GitHub** - `github-mcp` for repository operations
453
453
  - **Databases** - `sqlite-mcp`, `postgresql-mcp`, `mongodb-mcp` for data operations
454
454
  - **Browser** - `playwright-mcp` for E2E testing and automation
@@ -457,7 +457,7 @@ autopm mcp validate # Validate all servers
457
457
 
458
458
  ```bash
459
459
  # 1. Enable context7 documentation server
460
- autopm mcp enable context7-docs
460
+ autopm mcp enable context7
461
461
 
462
462
  # 2. Configure API key
463
463
  cat > .claude/.env << EOF
@@ -472,7 +472,7 @@ autopm mcp sync
472
472
  autopm mcp diagnose
473
473
 
474
474
  # 5. Test connection
475
- autopm mcp test context7-docs
475
+ autopm mcp test context7
476
476
  ```
477
477
 
478
478
  ### MCP Benefits
@@ -2,27 +2,10 @@
2
2
  "mcpServers": {
3
3
  "context7": {
4
4
  "command": "npx",
5
- "args": ["@upstash/context7-mcp"],
5
+ "args": ["-y", "@upstash/context7-mcp"],
6
6
  "env": {
7
- "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY:-}",
8
- "CONTEXT7_MCP_URL": "${CONTEXT7_MCP_URL:-https://mcp.context7.com/mcp}",
9
- "CONTEXT7_API_URL": "${CONTEXT7_API_URL:-https://context7.com/api/v1}",
10
- "CONTEXT7_WORKSPACE": "${CONTEXT7_WORKSPACE:-}",
11
- "CONTEXT7_MODE": "documentation"
12
- },
13
- "envFile": ".claude/.env"
14
- },
15
- "context7": {
16
- "command": "npx",
17
- "args": ["@upstash/context7-mcp"],
18
- "env": {
19
- "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY:-}",
20
- "CONTEXT7_MCP_URL": "${CONTEXT7_MCP_URL:-https://mcp.context7.com/mcp}",
21
- "CONTEXT7_API_URL": "${CONTEXT7_API_URL:-https://context7.com/api/v1}",
22
- "CONTEXT7_WORKSPACE": "${CONTEXT7_WORKSPACE:-}",
23
- "CONTEXT7_MODE": "codebase"
24
- },
25
- "envFile": ".claude/.env"
7
+ "DEFAULT_MINIMUM_TOKENS": "${DEFAULT_MINIMUM_TOKENS:-10000}"
8
+ }
26
9
  },
27
10
  "playwright-mcp": {
28
11
  "command": "npx",
@@ -11,13 +11,8 @@ This document provides guidance on MCP (Model Context Protocol) server managemen
11
11
  Example MCP server configurations are available in `.claude/examples/mcp/`:
12
12
 
13
13
  ### context7
14
- **Description**: Context7 documentation server for accessing technical documentation
15
- **Use Cases**: API documentation, framework guides, technical references
16
- **Example**: `.claude/examples/mcp/context7.md`
17
-
18
- ### context7
19
- **Description**: Context7 codebase server for project code analysis
20
- **Use Cases**: Code navigation, project analysis, dependency tracking
14
+ **Description**: Context7 MCP server - up-to-date documentation database for any library or framework
15
+ **Use Cases**: API documentation, framework guides, technical references, library lookups
21
16
  **Example**: `.claude/examples/mcp/context7.md`
22
17
 
23
18
  ### playwright-mcp
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: context7
3
+ command: npx
4
+ args: ["-y", "@upstash/context7-mcp"]
5
+ description: MCP server for Context7 - Up-to-date documentation database
6
+ category: documentation
7
+ status: inactive
8
+ env:
9
+ DEFAULT_MINIMUM_TOKENS: "${DEFAULT_MINIMUM_TOKENS:-10000}"
10
+ ---
11
+
12
+ # Context7 MCP Server
13
+
14
+ Official MCP server for [Context7](https://context7.com) - provides up-to-date documentation for libraries and frameworks.
15
+
16
+ ## 🎯 Features
17
+
18
+ - **Up-to-date Documentation**: Always current library documentation
19
+ - **Smart Search**: Resolve library names to Context7 IDs
20
+ - **Token Control**: Configure minimum tokens for documentation retrieval
21
+ - **Multi-library Support**: Access documentation for any supported library
22
+
23
+ ## 📦 Installation
24
+
25
+ ### Option 1: Using AutoPM (Recommended)
26
+
27
+ ```bash
28
+ # Install from npm with automatic configuration
29
+ autopm mcp install @upstash/context7-mcp --enable
30
+
31
+ # Configure API key
32
+ echo "CONTEXT7_API_KEY=your-key-here" >> .claude/.env
33
+
34
+ # Test connection
35
+ autopm mcp test context7
36
+ ```
37
+
38
+ ### Option 2: Manual Setup
39
+
40
+ ```bash
41
+ # Copy this example to your project
42
+ cp .claude/examples/mcp/context7.md .claude/mcp/
43
+
44
+ # Enable the server
45
+ autopm mcp enable context7
46
+
47
+ # Sync configuration
48
+ autopm mcp sync
49
+ ```
50
+
51
+ ## 🔑 Configuration
52
+
53
+ ### Environment Variables
54
+
55
+ Add to `.claude/.env`:
56
+
57
+ ```bash
58
+ # Optional: Minimum tokens for documentation retrieval (default: 10000)
59
+ DEFAULT_MINIMUM_TOKENS=10000
60
+ ```
61
+
62
+ Note: Context7 API key is not required for basic usage.
63
+
64
+ ## 🔧 Available Tools
65
+
66
+ ### 1. `resolve-library-id`
67
+ Resolves a general library name into a Context7-compatible library ID.
68
+
69
+ **Example:**
70
+ ```
71
+ Library: "react" → ID: "react/latest"
72
+ Library: "nextjs" → ID: "next/latest"
73
+ ```
74
+
75
+ ### 2. `get-library-docs`
76
+ Fetches documentation for a library using a Context7-compatible library ID.
77
+
78
+ **Parameters:**
79
+ - `libraryId` (required): Context7 library ID (e.g., "react/latest")
80
+ - `topic` (optional): Specific topic to focus on
81
+ - `tokens` (optional): Minimum tokens to retrieve (default: 10000)
82
+
83
+ **Example:**
84
+ ```
85
+ get-library-docs("react/latest", topic="hooks")
86
+ get-library-docs("nextjs/14", topic="app-router", tokens=15000)
87
+ ```
88
+
89
+ ## 📚 Usage in Agent Definitions
90
+
91
+ Reference Context7 documentation in your agents:
92
+
93
+ ```markdown
94
+ ## MCP Servers Used
95
+
96
+ This agent uses Context7 for up-to-date documentation:
97
+ - `mcp://context7/react/latest` - React documentation
98
+ - `mcp://context7/nextjs/14` - Next.js 14 documentation
99
+ - `mcp://context7/typescript/latest` - TypeScript reference
100
+ ```
101
+
102
+ ## 🧪 Testing
103
+
104
+ ```bash
105
+ # Test the connection
106
+ autopm mcp test context7
107
+
108
+ # Check status
109
+ autopm mcp status
110
+
111
+ # Verify in Claude Code
112
+ /mcp
113
+ ```
114
+
115
+ ## 🔐 Security
116
+
117
+ - Context7 MCP server does not require authentication for basic usage
118
+ - Never commit `.claude/.env` with sensitive data
119
+ - Review Context7's [privacy policy](https://context7.com/privacy)
120
+
121
+ ## 📖 Supported Libraries
122
+
123
+ Context7 supports hundreds of libraries including:
124
+ - **Frontend**: React, Vue, Angular, Svelte, Next.js
125
+ - **Backend**: Express, Fastify, NestJS, Django, Flask
126
+ - **Databases**: PostgreSQL, MongoDB, Redis, MySQL
127
+ - **Cloud**: AWS, Azure, GCP services
128
+ - **And many more...**
129
+
130
+ Visit [Context7](https://context7.com) to browse all available documentation.
131
+
132
+ ## 🆘 Troubleshooting
133
+
134
+ ### Server Not Starting
135
+
136
+ ```bash
137
+ # Check npm package is available
138
+ npm view @upstash/context7-mcp
139
+
140
+ # Reinstall
141
+ npm install -g @upstash/context7-mcp
142
+
143
+ # Test manually
144
+ npx -y @upstash/context7-mcp
145
+ ```
146
+
147
+ ### Library Not Found
148
+
149
+ Use `resolve-library-id` to find the correct library ID:
150
+ ```
151
+ resolve-library-id("your-library-name")
152
+ ```
153
+
154
+ ### Token Limit Issues
155
+
156
+ Adjust `DEFAULT_MINIMUM_TOKENS` in your environment:
157
+ ```bash
158
+ echo "DEFAULT_MINIMUM_TOKENS=5000" >> .claude/.env
159
+ ```
160
+
161
+ ## 🔗 Links
162
+
163
+ - **NPM Package**: https://www.npmjs.com/package/@upstash/context7-mcp
164
+ - **GitHub**: https://github.com/upstash/context7
165
+ - **Context7 Website**: https://context7.com
166
+ - **Documentation**: https://upstash.com/docs/redis/integrations/mcp
167
+ - **Blog Post**: https://upstash.com/blog/context7-mcp
168
+
169
+ ## 📝 Example Agent Configuration
170
+
171
+ ```markdown
172
+ ---
173
+ name: react-expert
174
+ description: React development expert with Context7 documentation
175
+ mcpServers:
176
+ - context7
177
+ ---
178
+
179
+ # React Expert Agent
180
+
181
+ This agent has access to:
182
+ - `mcp://context7/react/latest` - Current React documentation
183
+ - `mcp://context7/react-router/latest` - React Router docs
184
+ - `mcp://context7/redux/latest` - Redux documentation
185
+ ```
186
+
187
+ ## 🎓 Best Practices
188
+
189
+ 1. **Use Specific Library IDs**: `react/18` instead of `react/latest` for stability
190
+ 2. **Configure Token Limits**: Adjust based on your needs
191
+ 3. **Cache Results**: Context7 provides fresh docs but cache for performance
192
+ 4. **Topic Filtering**: Use specific topics to reduce token usage
193
+ 5. **Test Regularly**: Ensure documentation sources are accessible
194
+
195
+ ## 🆕 Updates
196
+
197
+ Context7 MCP server is actively maintained by Upstash. Check for updates:
198
+
199
+ ```bash
200
+ npm update -g @upstash/context7-mcp
201
+ ```
202
+
203
+ ---
204
+
205
+ **Need help?** Visit [Context7 documentation](https://context7.com) or [Upstash support](https://upstash.com/support)
@@ -0,0 +1,350 @@
1
+ ---
2
+ name: github-mcp
3
+ command: npx
4
+ args: ["@modelcontextprotocol/server-github"]
5
+ env:
6
+ GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN:-}"
7
+ GITHUB_API_URL: "${GITHUB_API_URL:-https://api.github.com}"
8
+ envFile: .claude/.env
9
+ description: GitHub MCP server for repository management and collaboration
10
+ category: integration
11
+ status: active
12
+ version: ">=1.0.0"
13
+ ---
14
+
15
+ # GitHub MCP Server
16
+
17
+ ## Description
18
+
19
+ The GitHub MCP Server provides comprehensive GitHub integration through the Model Context Protocol, enabling repository management, issue tracking, pull request workflows, and collaborative development features.
20
+
21
+ ## Features
22
+
23
+ - **Repository Management**: Create, clone, configure repositories
24
+ - **Issue Tracking**: Create, update, search issues
25
+ - **Pull Requests**: Create, review, merge PRs
26
+ - **Actions/Workflows**: Manage GitHub Actions
27
+ - **Code Search**: Search across repositories
28
+ - **Release Management**: Create and manage releases
29
+ - **Team Collaboration**: Manage teams and permissions
30
+
31
+ ## Configuration
32
+
33
+ ### Required Environment Variables
34
+
35
+ - `GITHUB_PERSONAL_ACCESS_TOKEN`: Your GitHub PAT (required)
36
+
37
+ ### Optional Environment Variables
38
+
39
+ - `GITHUB_API_URL`: GitHub API endpoint (for GitHub Enterprise)
40
+ - `GITHUB_DEFAULT_OWNER`: Default repository owner
41
+ - `GITHUB_DEFAULT_REPO`: Default repository name
42
+
43
+ ### Token Permissions
44
+
45
+ Required scopes for full functionality:
46
+ ```
47
+ repo - Full repository access
48
+ workflow - GitHub Actions workflows
49
+ write:packages - Package registry
50
+ admin:org - Organization management (optional)
51
+ gist - Gist creation (optional)
52
+ ```
53
+
54
+ ## Usage Examples
55
+
56
+ ### Basic Setup
57
+
58
+ ```bash
59
+ # Enable the server
60
+ autopm mcp enable github-mcp
61
+
62
+ # Configure authentication
63
+ echo "GITHUB_TOKEN=ghp_your_token_here" >> .claude/.env
64
+
65
+ # For a specific repository
66
+ echo "GITHUB_DEFAULT_OWNER=your-username" >> .claude/.env
67
+ echo "GITHUB_DEFAULT_REPO=your-repo" >> .claude/.env
68
+
69
+ # Sync configuration
70
+ autopm mcp sync
71
+ ```
72
+
73
+ ### Integration with Agents
74
+
75
+ Commonly used with:
76
+ - `github-operations-specialist` - For DevOps workflows
77
+ - `code-analyzer` - For PR reviews
78
+ - `test-runner` - For CI/CD integration
79
+
80
+ ## MCP Commands
81
+
82
+ ### Repository Operations
83
+
84
+ ```javascript
85
+ // Get repository info
86
+ github.getRepository({ owner, repo })
87
+
88
+ // Create repository
89
+ github.createRepository({
90
+ name: "new-repo",
91
+ description: "Repository description",
92
+ private: false,
93
+ auto_init: true
94
+ })
95
+
96
+ // List repositories
97
+ github.listRepositories({ type: "owner" })
98
+ ```
99
+
100
+ ### Issue Management
101
+
102
+ ```javascript
103
+ // Create issue
104
+ github.createIssue({
105
+ title: "Bug: Application crashes",
106
+ body: "Detailed description...",
107
+ labels: ["bug", "high-priority"],
108
+ assignees: ["username"]
109
+ })
110
+
111
+ // Update issue
112
+ github.updateIssue({
113
+ issue_number: 123,
114
+ state: "closed",
115
+ labels: ["resolved"]
116
+ })
117
+
118
+ // Search issues
119
+ github.searchIssues({
120
+ query: "is:open label:bug"
121
+ })
122
+ ```
123
+
124
+ ### Pull Request Workflows
125
+
126
+ ```javascript
127
+ // Create PR
128
+ github.createPullRequest({
129
+ title: "Feature: Add new functionality",
130
+ head: "feature-branch",
131
+ base: "main",
132
+ body: "PR description..."
133
+ })
134
+
135
+ // Review PR
136
+ github.createReview({
137
+ pull_number: 456,
138
+ event: "APPROVE",
139
+ body: "LGTM!"
140
+ })
141
+
142
+ // Merge PR
143
+ github.mergePullRequest({
144
+ pull_number: 456,
145
+ merge_method: "squash"
146
+ })
147
+ ```
148
+
149
+ ### GitHub Actions
150
+
151
+ ```javascript
152
+ // Trigger workflow
153
+ github.triggerWorkflow({
154
+ workflow_id: "ci.yml",
155
+ ref: "main",
156
+ inputs: { environment: "production" }
157
+ })
158
+
159
+ // Get workflow runs
160
+ github.listWorkflowRuns({
161
+ workflow_id: "ci.yml",
162
+ status: "completed"
163
+ })
164
+ ```
165
+
166
+ ## Advanced Features
167
+
168
+ ### Code Search
169
+
170
+ ```javascript
171
+ // Search code
172
+ github.searchCode({
173
+ query: "function TODO in:file language:js repo:owner/repo"
174
+ })
175
+
176
+ // Search commits
177
+ github.searchCommits({
178
+ query: "fix bug author:username"
179
+ })
180
+ ```
181
+
182
+ ### Release Management
183
+
184
+ ```javascript
185
+ // Create release
186
+ github.createRelease({
187
+ tag_name: "v1.0.0",
188
+ name: "Version 1.0.0",
189
+ body: "Release notes...",
190
+ draft: false,
191
+ prerelease: false
192
+ })
193
+
194
+ // Upload release asset
195
+ github.uploadReleaseAsset({
196
+ release_id: 789,
197
+ name: "app.zip",
198
+ data: fileBuffer
199
+ })
200
+ ```
201
+
202
+ ### Webhooks
203
+
204
+ ```javascript
205
+ // Create webhook
206
+ github.createWebhook({
207
+ config: {
208
+ url: "https://example.com/webhook",
209
+ content_type: "json"
210
+ },
211
+ events: ["push", "pull_request"]
212
+ })
213
+ ```
214
+
215
+ ## Workflow Integration
216
+
217
+ ### Automated PR Workflow
218
+
219
+ ```yaml
220
+ workflow:
221
+ - create_branch: feature/new-feature
222
+ - commit_changes:
223
+ message: "Add new feature"
224
+ - create_pr:
225
+ title: "Feature: New functionality"
226
+ reviewers: ["reviewer1", "reviewer2"]
227
+ - wait_for_checks: true
228
+ - auto_merge:
229
+ method: squash
230
+ delete_branch: true
231
+ ```
232
+
233
+ ### Issue Triage
234
+
235
+ ```yaml
236
+ triage:
237
+ rules:
238
+ - if: "title contains 'bug'"
239
+ then:
240
+ - add_label: bug
241
+ - assign_to: bug-team
242
+ - if: "title contains 'feature'"
243
+ then:
244
+ - add_label: enhancement
245
+ - add_to_project: feature-requests
246
+ ```
247
+
248
+ ## Best Practices
249
+
250
+ 1. **Authentication**
251
+ - Use fine-grained PATs
252
+ - Rotate tokens regularly
253
+ - Store securely in .env
254
+
255
+ 2. **Rate Limiting**
256
+ - Monitor API usage
257
+ - Implement caching
258
+ - Use conditional requests
259
+
260
+ 3. **Branch Protection**
261
+ - Require PR reviews
262
+ - Enable status checks
263
+ - Protect main branch
264
+
265
+ 4. **Automation**
266
+ - Use GitHub Actions for CI/CD
267
+ - Automate repetitive tasks
268
+ - Implement proper error handling
269
+
270
+ ## Troubleshooting
271
+
272
+ ### Common Issues
273
+
274
+ 1. **Authentication Failed**
275
+ - Verify token is valid
276
+ - Check token permissions
277
+ - Ensure token hasn't expired
278
+
279
+ 2. **Rate Limit Exceeded**
280
+ - Check rate limit status
281
+ - Implement exponential backoff
282
+ - Use authenticated requests
283
+
284
+ 3. **Permission Denied**
285
+ - Verify repository access
286
+ - Check organization permissions
287
+ - Ensure proper token scopes
288
+
289
+ ### Debug Mode
290
+
291
+ ```bash
292
+ # Enable debug logging
293
+ export GITHUB_DEBUG=true
294
+ export NODE_DEBUG=github
295
+ ```
296
+
297
+ ## Security Considerations
298
+
299
+ 1. **Token Security**
300
+ - Never commit tokens
301
+ - Use environment variables
302
+ - Implement token rotation
303
+
304
+ 2. **Repository Access**
305
+ - Use least privilege principle
306
+ - Review collaborator permissions
307
+ - Enable 2FA
308
+
309
+ 3. **Webhook Security**
310
+ - Validate webhook signatures
311
+ - Use HTTPS endpoints
312
+ - Implement IP allowlisting
313
+
314
+ ## GitHub Enterprise
315
+
316
+ For GitHub Enterprise Server:
317
+
318
+ ```bash
319
+ # Configure enterprise URL
320
+ export GITHUB_API_URL=https://github.enterprise.com/api/v3
321
+ export GITHUB_GRAPHQL_URL=https://github.enterprise.com/api/graphql
322
+ ```
323
+
324
+ ## Rate Limits
325
+
326
+ ### API Limits
327
+ - Authenticated: 5,000 requests/hour
328
+ - Search: 30 requests/minute
329
+ - GraphQL: 5,000 points/hour
330
+
331
+ ### Checking Rate Limit
332
+
333
+ ```javascript
334
+ github.getRateLimit()
335
+ // Returns: { limit, remaining, reset }
336
+ ```
337
+
338
+ ## Version History
339
+
340
+ - **1.0.0**: Initial MCP integration
341
+ - **1.1.0**: Added Actions support
342
+ - **1.2.0**: GraphQL API integration
343
+ - **1.3.0**: Enterprise support
344
+ - **1.4.0**: Advanced search capabilities
345
+
346
+ ## Related Resources
347
+
348
+ - [GitHub API Documentation](https://docs.github.com/en/rest)
349
+ - [GitHub Actions](https://docs.github.com/en/actions)
350
+ - [GitHub Operations Specialist](../agents/devops/github-operations-specialist.md)
@@ -0,0 +1,312 @@
1
+ ---
2
+ name: playwright-mcp
3
+ command: npx
4
+ args: ["@playwright/mcp"]
5
+ env:
6
+ PLAYWRIGHT_BROWSER: "${PLAYWRIGHT_BROWSER:-chromium}"
7
+ PLAYWRIGHT_HEADLESS: "${PLAYWRIGHT_HEADLESS:-true}"
8
+ envFile: .claude/.env
9
+ description: Playwright MCP server for browser automation and E2E testing
10
+ category: testing
11
+ status: active
12
+ version: ">=1.0.0"
13
+ ---
14
+
15
+ # Playwright MCP Server
16
+
17
+ ## Description
18
+
19
+ The Playwright MCP Server enables browser automation, visual testing, and end-to-end testing capabilities through the Model Context Protocol. It provides direct browser control for testing web applications, capturing screenshots, and validating user interfaces.
20
+
21
+ ## Features
22
+
23
+ - **Browser Automation**: Control Chromium, Firefox, and WebKit
24
+ - **Visual Testing**: Screenshot capture and comparison
25
+ - **E2E Testing**: Automated user flow testing
26
+ - **Accessibility Testing**: WCAG compliance checks
27
+ - **Performance Monitoring**: Page load metrics
28
+ - **Network Interception**: Mock API responses
29
+ - **Mobile Emulation**: Test responsive designs
30
+
31
+ ## Configuration
32
+
33
+ ### Environment Variables
34
+
35
+ - `PLAYWRIGHT_BROWSER`: Browser engine (chromium|firefox|webkit)
36
+ - `PLAYWRIGHT_HEADLESS`: Run in headless mode (true|false)
37
+ - `PLAYWRIGHT_SLOW_MO`: Slow down operations by ms
38
+ - `PLAYWRIGHT_TIMEOUT`: Default timeout in ms
39
+ - `PLAYWRIGHT_VIDEO`: Record videos (on|off|retain-on-failure)
40
+ - `PLAYWRIGHT_TRACE`: Record traces (on|off|retain-on-failure)
41
+
42
+ ### Browser Options
43
+
44
+ ```yaml
45
+ browsers:
46
+ chromium:
47
+ channel: chrome # or 'msedge', 'chrome-beta'
48
+ args:
49
+ - --disable-dev-shm-usage
50
+ - --no-sandbox
51
+ firefox:
52
+ firefoxUserPrefs:
53
+ "media.navigator.streams.fake": true
54
+ webkit:
55
+ # Safari-specific options
56
+ ```
57
+
58
+ ## Usage Examples
59
+
60
+ ### Basic Setup
61
+
62
+ ```bash
63
+ # Enable the server
64
+ autopm mcp enable playwright-mcp
65
+
66
+ # Configure for headed mode during development
67
+ echo "PLAYWRIGHT_HEADLESS=false" >> .claude/.env
68
+ echo "PLAYWRIGHT_SLOW_MO=100" >> .claude/.env
69
+
70
+ # Sync configuration
71
+ autopm mcp sync
72
+ ```
73
+
74
+ ### Integration with Agents
75
+
76
+ Used extensively with:
77
+ - `e2e-test-engineer` - For E2E test creation
78
+ - `react-frontend-engineer` - For UI testing
79
+ - `ux-design-expert` - For visual regression
80
+
81
+ ### Test Examples
82
+
83
+ ```javascript
84
+ // Navigation
85
+ await page.goto('https://example.com');
86
+
87
+ // Interaction
88
+ await page.click('button#submit');
89
+ await page.fill('input#email', 'test@example.com');
90
+
91
+ // Assertions
92
+ await expect(page).toHaveTitle('Example Site');
93
+ await expect(page.locator('.message')).toBeVisible();
94
+
95
+ // Screenshots
96
+ await page.screenshot({ path: 'screenshot.png' });
97
+ ```
98
+
99
+ ## MCP Commands
100
+
101
+ ### Navigation
102
+ - `navigate(url)` - Go to URL
103
+ - `reload()` - Reload page
104
+ - `goBack()` - Navigate back
105
+ - `goForward()` - Navigate forward
106
+
107
+ ### Interaction
108
+ - `click(selector)` - Click element
109
+ - `fill(selector, value)` - Fill input
110
+ - `select(selector, value)` - Select option
111
+ - `check(selector)` - Check checkbox
112
+ - `press(key)` - Press keyboard key
113
+
114
+ ### Validation
115
+ - `screenshot(options)` - Capture screenshot
116
+ - `textContent(selector)` - Get text
117
+ - `isVisible(selector)` - Check visibility
118
+ - `waitForSelector(selector)` - Wait for element
119
+
120
+ ## Visual Testing
121
+
122
+ ### Screenshot Comparison
123
+
124
+ ```yaml
125
+ visual_testing:
126
+ baseline_dir: .playwright/baselines
127
+ diff_dir: .playwright/diffs
128
+ threshold: 0.2 # 20% difference threshold
129
+ ignore_areas:
130
+ - selector: .timestamp
131
+ - selector: .dynamic-content
132
+ ```
133
+
134
+ ### Full Page Screenshots
135
+
136
+ ```javascript
137
+ await page.screenshot({
138
+ fullPage: true,
139
+ animations: 'disabled',
140
+ mask: ['.sensitive-data']
141
+ });
142
+ ```
143
+
144
+ ## Mobile Testing
145
+
146
+ ### Device Emulation
147
+
148
+ ```javascript
149
+ // iPhone 12
150
+ {
151
+ viewport: { width: 390, height: 844 },
152
+ userAgent: 'Mozilla/5.0 (iPhone...)',
153
+ deviceScaleFactor: 3,
154
+ isMobile: true,
155
+ hasTouch: true
156
+ }
157
+ ```
158
+
159
+ ### Responsive Testing
160
+
161
+ ```yaml
162
+ viewports:
163
+ - name: mobile
164
+ width: 375
165
+ height: 667
166
+ - name: tablet
167
+ width: 768
168
+ height: 1024
169
+ - name: desktop
170
+ width: 1920
171
+ height: 1080
172
+ ```
173
+
174
+ ## Performance Testing
175
+
176
+ ### Metrics Collection
177
+
178
+ ```javascript
179
+ const metrics = await page.metrics();
180
+ // Returns: JSHeapUsedSize, Timestamp, etc.
181
+
182
+ const performance = await page.evaluate(() =>
183
+ JSON.stringify(window.performance.timing)
184
+ );
185
+ ```
186
+
187
+ ### Network Monitoring
188
+
189
+ ```javascript
190
+ // Monitor requests
191
+ page.on('request', request => {
192
+ console.log('Request:', request.url());
193
+ });
194
+
195
+ // Mock responses
196
+ await page.route('**/api/*', route => {
197
+ route.fulfill({
198
+ status: 200,
199
+ body: JSON.stringify({ mocked: true })
200
+ });
201
+ });
202
+ ```
203
+
204
+ ## Accessibility Testing
205
+
206
+ ### ARIA Validation
207
+
208
+ ```javascript
209
+ const accessibilityTree = await page.accessibility.snapshot();
210
+ ```
211
+
212
+ ### Keyboard Navigation
213
+
214
+ ```javascript
215
+ await page.keyboard.press('Tab');
216
+ await page.keyboard.press('Enter');
217
+ ```
218
+
219
+ ## Debugging
220
+
221
+ ### Debug Mode
222
+
223
+ ```bash
224
+ # Enable debugging
225
+ export DEBUG=pw:api
226
+ export PWDEBUG=1
227
+
228
+ # Slow mode for debugging
229
+ export PLAYWRIGHT_SLOW_MO=1000
230
+ ```
231
+
232
+ ### Trace Viewer
233
+
234
+ ```bash
235
+ # Record trace
236
+ npx playwright test --trace on
237
+
238
+ # View trace
239
+ npx playwright show-trace trace.zip
240
+ ```
241
+
242
+ ## Best Practices
243
+
244
+ 1. **Selectors**
245
+ - Use data-testid attributes
246
+ - Avoid fragile CSS selectors
247
+ - Prefer user-facing attributes
248
+
249
+ 2. **Waits**
250
+ - Use auto-waiting
251
+ - Avoid hard-coded delays
252
+ - Wait for specific conditions
253
+
254
+ 3. **Test Isolation**
255
+ - Fresh browser context per test
256
+ - Clean up test data
257
+ - No test interdependencies
258
+
259
+ 4. **Error Handling**
260
+ - Comprehensive error messages
261
+ - Screenshot on failure
262
+ - Trace on failure
263
+
264
+ ## Troubleshooting
265
+
266
+ ### Common Issues
267
+
268
+ 1. **Browser Launch Failed**
269
+ - Install system dependencies
270
+ - Check browser binaries
271
+ - Verify permissions
272
+
273
+ 2. **Timeout Errors**
274
+ - Increase timeout values
275
+ - Check network conditions
276
+ - Verify element selectors
277
+
278
+ 3. **Flaky Tests**
279
+ - Add proper waits
280
+ - Mock external dependencies
281
+ - Use retry logic
282
+
283
+ ## Security Considerations
284
+
285
+ 1. **Credentials**
286
+ - Never hardcode passwords
287
+ - Use environment variables
288
+ - Implement secure storage
289
+
290
+ 2. **Cross-Origin**
291
+ - Handle CORS properly
292
+ - Use context isolation
293
+ - Validate origins
294
+
295
+ 3. **Data Privacy**
296
+ - Mask sensitive data in screenshots
297
+ - Clear cookies/storage
298
+ - Use test data only
299
+
300
+ ## Version History
301
+
302
+ - **1.0.0**: Initial MCP integration
303
+ - **1.1.0**: Added visual testing
304
+ - **1.2.0**: Mobile emulation support
305
+ - **1.3.0**: Performance metrics
306
+ - **1.4.0**: Accessibility testing
307
+
308
+ ## Related Resources
309
+
310
+ - [Playwright Documentation](https://playwright.dev)
311
+ - [MCP Browser Control](https://modelcontextprotocol.org/browser)
312
+ - [E2E Test Engineer Agent](../agents/frameworks/e2e-test-engineer.md)
package/bin/autopm.js CHANGED
@@ -257,7 +257,7 @@ function main() {
257
257
  🔌 MCP (Model Context Protocol) Management:
258
258
  # List and manage MCP servers
259
259
  autopm mcp list # List all available MCP servers
260
- autopm mcp enable context7-docs # Enable documentation server
260
+ autopm mcp enable context7 # Enable documentation server
261
261
  autopm mcp sync # Sync configuration to .claude/mcp-servers.json
262
262
 
263
263
  # Agent Analysis
@@ -269,7 +269,7 @@ function main() {
269
269
  # Configuration & Diagnostics
270
270
  autopm mcp setup # Interactive API key setup
271
271
  autopm mcp diagnose # Run comprehensive diagnostics
272
- autopm mcp test context7-docs # Test MCP server connection
272
+ autopm mcp test context7 # Test MCP server connection
273
273
  autopm mcp status # Show all MCP servers status
274
274
 
275
275
  🔑 Token Setup:
@@ -70,14 +70,14 @@ module.exports = {
70
70
  .example('autopm mcp install @modelcontextprotocol/server-filesystem', 'Install MCP server from npm')
71
71
  .example('autopm mcp install @upstash/context7-mcp --enable', 'Install and enable immediately')
72
72
  .example('autopm mcp uninstall filesystem', 'Uninstall MCP server')
73
- .example('autopm mcp enable context7-docs', 'Enable context7 documentation server')
73
+ .example('autopm mcp enable context7', 'Enable context7 documentation server')
74
74
  .example('autopm mcp agents', 'List all agents using MCP')
75
75
  .example('autopm mcp agent react-frontend-engineer', 'Show MCP config for specific agent')
76
76
  .example('autopm mcp usage', 'Show MCP usage statistics')
77
77
  .example('autopm mcp setup', 'Interactive API key setup')
78
78
  .example('autopm mcp check', 'Quick MCP configuration check')
79
79
  .example('autopm mcp diagnose', 'Run MCP diagnostics')
80
- .example('autopm mcp test context7-docs', 'Test MCP server connection')
80
+ .example('autopm mcp test context7', 'Test MCP server connection')
81
81
  .example('autopm mcp tree', 'Show agent-MCP dependency tree')
82
82
  .example('autopm mcp status', 'Show MCP servers status');
83
83
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-autopm",
3
- "version": "1.15.1",
3
+ "version": "1.15.3",
4
4
  "description": "Autonomous Project Management Framework for Claude Code - Advanced AI-powered development automation",
5
5
  "main": "bin/autopm.js",
6
6
  "bin": {
@@ -1594,8 +1594,7 @@ ${pkg.repository?.url ? `- Repository: ${pkg.repository.url}` : ''}
1594
1594
  */
1595
1595
  _getCredentialInfo(serverName) {
1596
1596
  const info = {
1597
- 'context7-docs': '→ Sign up at https://context7.com and get API key from dashboard',
1598
- 'context7-codebase': '→ Same credentials as context7-docs',
1597
+ 'context7': '→ Sign up at https://context7.com and get API key from dashboard',
1599
1598
  'github-mcp': '→ Generate token at https://github.com/settings/tokens',
1600
1599
  'playwright-mcp': '→ No credentials needed - uses local Playwright installation'
1601
1600
  };