claude-autopm 1.13.13 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -4
- package/autopm/.claude/examples/mcp/README.md +109 -0
- package/autopm/.claude/examples/mcp-servers.example.json +126 -0
- package/autopm/.claude/mcp/MCP-REGISTRY.md +133 -72
- package/autopm/.claude/mcp-servers.json +4 -125
- package/bin/commands/config.js +19 -21
- package/package.json +1 -1
- package/scripts/mcp-handler.js +1 -1
- /package/autopm/.claude/{mcp → examples/mcp}/context7-codebase.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/context7-docs.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/filesystem-mcp.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/github-mcp.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/info-server.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/playwright-mcp.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/sqlite-mcp.md +0 -0
- /package/autopm/.claude/{mcp → examples/mcp}/test-server.md +0 -0
package/README.md
CHANGED
|
@@ -344,6 +344,33 @@ Teams support inheritance, so specialized teams automatically include base agent
|
|
|
344
344
|
|
|
345
345
|
ClaudeAutoPM provides comprehensive MCP management for agent-to-tool integration. **39 out of 53 agents (74%)** use MCP servers for live documentation and external tool access.
|
|
346
346
|
|
|
347
|
+
### 🆕 Dynamic Server Discovery & Installation
|
|
348
|
+
|
|
349
|
+
**NEW!** Discover and install MCP servers directly from npm registry:
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# Search for MCP servers
|
|
353
|
+
autopm mcp search filesystem
|
|
354
|
+
autopm mcp search @modelcontextprotocol
|
|
355
|
+
|
|
356
|
+
# Browse official servers
|
|
357
|
+
autopm mcp browse --official
|
|
358
|
+
|
|
359
|
+
# Install directly from npm (auto-configures everything)
|
|
360
|
+
autopm mcp install @modelcontextprotocol/server-filesystem --enable
|
|
361
|
+
|
|
362
|
+
# Uninstall when done
|
|
363
|
+
autopm mcp uninstall filesystem
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
**Benefits:**
|
|
367
|
+
- 🔍 **Search thousands** of community MCP servers
|
|
368
|
+
- 📦 **One-command install** - npm package + auto-configuration
|
|
369
|
+
- 🔄 **Always up-to-date** - Install latest versions
|
|
370
|
+
- 🗑️ **Clean removal** - Uninstall server + npm package together
|
|
371
|
+
|
|
372
|
+
**Official MCP Registry**: https://registry.modelcontextprotocol.io
|
|
373
|
+
|
|
347
374
|
### Quick Start with MCP
|
|
348
375
|
|
|
349
376
|
```bash
|
|
@@ -378,7 +405,18 @@ autopm mcp sync
|
|
|
378
405
|
|
|
379
406
|
### MCP Commands
|
|
380
407
|
|
|
381
|
-
####
|
|
408
|
+
#### **🔍 Discovery & Installation (NEW!)**
|
|
409
|
+
```bash
|
|
410
|
+
autopm mcp search <query> # Search npm registry for MCP servers
|
|
411
|
+
autopm mcp browse # Browse popular/official servers
|
|
412
|
+
autopm mcp browse --category db # Browse by category
|
|
413
|
+
autopm mcp install <package> # Install from npm + auto-configure
|
|
414
|
+
autopm mcp install <pkg> --enable # Install and enable immediately
|
|
415
|
+
autopm mcp uninstall <name> # Remove server + npm package
|
|
416
|
+
autopm mcp uninstall <name> --keep-package # Keep npm package
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
#### **🤖 Agent Analysis**
|
|
382
420
|
```bash
|
|
383
421
|
autopm mcp agents # List agents using MCP
|
|
384
422
|
autopm mcp agents --by-server # Group by MCP server
|
|
@@ -387,7 +425,7 @@ autopm mcp usage # Usage statistics
|
|
|
387
425
|
autopm mcp tree # Dependency tree
|
|
388
426
|
```
|
|
389
427
|
|
|
390
|
-
####
|
|
428
|
+
#### **⚙️ Configuration & Diagnostics**
|
|
391
429
|
```bash
|
|
392
430
|
autopm mcp check # Quick configuration check
|
|
393
431
|
autopm mcp setup # Interactive API key setup
|
|
@@ -396,13 +434,15 @@ autopm mcp test <server> # Test server connection
|
|
|
396
434
|
autopm mcp status # Show servers status
|
|
397
435
|
```
|
|
398
436
|
|
|
399
|
-
####
|
|
437
|
+
#### **📦 Server Management**
|
|
400
438
|
```bash
|
|
401
|
-
autopm mcp list # List
|
|
439
|
+
autopm mcp list # List installed servers
|
|
440
|
+
autopm mcp list --detailed # List with full details
|
|
402
441
|
autopm mcp info <server> # Server details
|
|
403
442
|
autopm mcp enable <server> # Enable server
|
|
404
443
|
autopm mcp disable <server> # Disable server
|
|
405
444
|
autopm mcp sync # Sync configuration
|
|
445
|
+
autopm mcp validate # Validate all servers
|
|
406
446
|
```
|
|
407
447
|
|
|
408
448
|
### MCP Server Types
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# MCP Server Examples
|
|
2
|
+
|
|
3
|
+
This directory contains example MCP (Model Context Protocol) server configurations that you can use in your projects.
|
|
4
|
+
|
|
5
|
+
## ⚠️ Important
|
|
6
|
+
|
|
7
|
+
These are **EXAMPLES ONLY**. They are NOT automatically installed or enabled.
|
|
8
|
+
|
|
9
|
+
## 🚀 How to Use
|
|
10
|
+
|
|
11
|
+
### Option 1: Copy to Your Project
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Copy a specific example to your project's .claude/mcp/ directory
|
|
15
|
+
cp .claude/examples/mcp/context7-docs.md .claude/mcp/
|
|
16
|
+
|
|
17
|
+
# Then enable it
|
|
18
|
+
autopm mcp enable context7-docs
|
|
19
|
+
|
|
20
|
+
# And sync
|
|
21
|
+
autopm mcp sync
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Option 2: Use as Template
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Copy and modify
|
|
28
|
+
cp .claude/examples/mcp/github-mcp.md .claude/mcp/my-custom-server.md
|
|
29
|
+
nano .claude/mcp/my-custom-server.md
|
|
30
|
+
|
|
31
|
+
# Enable and sync
|
|
32
|
+
autopm mcp enable my-custom-server
|
|
33
|
+
autopm mcp sync
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Option 3: Interactive Wizard
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Create a new server from scratch
|
|
40
|
+
autopm mcp add
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 📚 Available Examples
|
|
44
|
+
|
|
45
|
+
### Context7 Servers
|
|
46
|
+
- **context7-docs.md** - Documentation server for technical docs
|
|
47
|
+
- **context7-codebase.md** - Codebase analysis and navigation
|
|
48
|
+
|
|
49
|
+
### Integration Servers
|
|
50
|
+
- **github-mcp.md** - GitHub repository management
|
|
51
|
+
- **filesystem-mcp.md** - Local filesystem operations
|
|
52
|
+
|
|
53
|
+
### Testing Servers
|
|
54
|
+
- **playwright-mcp.md** - Browser automation and E2E testing
|
|
55
|
+
|
|
56
|
+
### Database Servers
|
|
57
|
+
- **sqlite-mcp.md** - SQLite database operations
|
|
58
|
+
|
|
59
|
+
### Test Servers (For Development)
|
|
60
|
+
- **info-server.md** - Test server for development
|
|
61
|
+
- **test-server.md** - Another test server
|
|
62
|
+
|
|
63
|
+
## 🔧 Configuration
|
|
64
|
+
|
|
65
|
+
Each example includes:
|
|
66
|
+
- YAML frontmatter with server configuration
|
|
67
|
+
- Environment variable placeholders
|
|
68
|
+
- Usage examples
|
|
69
|
+
- Setup instructions
|
|
70
|
+
|
|
71
|
+
Make sure to:
|
|
72
|
+
1. Configure required environment variables in `.claude/.env`
|
|
73
|
+
2. Install required npm packages (e.g., `npm install @upstash/context7-mcp`)
|
|
74
|
+
3. Test the server: `autopm mcp test <server-name>`
|
|
75
|
+
|
|
76
|
+
## 📝 Example Workflow
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 1. Copy example
|
|
80
|
+
cp .claude/examples/mcp/context7-docs.md .claude/mcp/
|
|
81
|
+
|
|
82
|
+
# 2. Set up environment variables
|
|
83
|
+
echo "CONTEXT7_API_KEY=your-key-here" >> .claude/.env
|
|
84
|
+
|
|
85
|
+
# 3. Enable the server
|
|
86
|
+
autopm mcp enable context7-docs
|
|
87
|
+
|
|
88
|
+
# 4. Sync configuration
|
|
89
|
+
autopm mcp sync
|
|
90
|
+
|
|
91
|
+
# 5. Test the connection
|
|
92
|
+
autopm mcp test context7-docs
|
|
93
|
+
|
|
94
|
+
# 6. Check status
|
|
95
|
+
autopm mcp status
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 🔐 Security Notes
|
|
99
|
+
|
|
100
|
+
- Never commit `.claude/.env` with actual API keys
|
|
101
|
+
- Use environment variable substitution: `${VAR_NAME:-default}`
|
|
102
|
+
- Review server permissions before enabling
|
|
103
|
+
- Keep MCP packages updated for security patches
|
|
104
|
+
|
|
105
|
+
## 📚 Learn More
|
|
106
|
+
|
|
107
|
+
- [MCP Registry](../../mcp/MCP-REGISTRY.md) - Full documentation
|
|
108
|
+
- [MCP Management Guide](../../../../docs/MCP-MANAGEMENT-GUIDE.md) - Detailed guide
|
|
109
|
+
- Official MCP documentation: https://modelcontextprotocol.io/
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"context7-docs": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["@upstash/context7-mcp"],
|
|
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-codebase": {
|
|
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"
|
|
26
|
+
},
|
|
27
|
+
"playwright-mcp": {
|
|
28
|
+
"command": "npx",
|
|
29
|
+
"args": ["@playwright/mcp"],
|
|
30
|
+
"env": {
|
|
31
|
+
"PLAYWRIGHT_BROWSER": "chromium",
|
|
32
|
+
"PLAYWRIGHT_HEADLESS": "true"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"contextPools": {
|
|
37
|
+
"python-docs": {
|
|
38
|
+
"type": "shared",
|
|
39
|
+
"agents": ["python-backend-engineer", "mcp-context-manager"],
|
|
40
|
+
"sources": ["context7-docs"],
|
|
41
|
+
"filters": ["fastapi", "sqlalchemy", "pydantic", "uvicorn", "pytest"],
|
|
42
|
+
"maxSize": "100MB",
|
|
43
|
+
"retention": "7d",
|
|
44
|
+
"refresh": "daily"
|
|
45
|
+
},
|
|
46
|
+
"azure-docs": {
|
|
47
|
+
"type": "shared",
|
|
48
|
+
"agents": ["azure-devops-specialist", "mcp-context-manager"],
|
|
49
|
+
"sources": ["context7-docs"],
|
|
50
|
+
"filters": ["azure-devops", "rest-api", "work-items", "pipelines"],
|
|
51
|
+
"maxSize": "75MB",
|
|
52
|
+
"retention": "7d",
|
|
53
|
+
"refresh": "daily"
|
|
54
|
+
},
|
|
55
|
+
"react-docs": {
|
|
56
|
+
"type": "shared",
|
|
57
|
+
"agents": ["react-frontend-engineer", "playwright-test-engineer"],
|
|
58
|
+
"sources": ["context7-docs"],
|
|
59
|
+
"filters": ["react", "nextjs", "typescript", "tailwind", "vite"],
|
|
60
|
+
"maxSize": "75MB",
|
|
61
|
+
"retention": "7d",
|
|
62
|
+
"refresh": "daily"
|
|
63
|
+
},
|
|
64
|
+
"cloud-docs": {
|
|
65
|
+
"type": "shared",
|
|
66
|
+
"agents": ["gcp-cloud-architect", "azure-cloud-architect", "aws-cloud-architect"],
|
|
67
|
+
"sources": ["context7-docs"],
|
|
68
|
+
"filters": ["terraform", "kubernetes", "docker", "helm"],
|
|
69
|
+
"maxSize": "150MB",
|
|
70
|
+
"retention": "7d",
|
|
71
|
+
"refresh": "daily"
|
|
72
|
+
},
|
|
73
|
+
"devops-context": {
|
|
74
|
+
"type": "shared",
|
|
75
|
+
"agents": ["github-operations-specialist", "kubernetes-orchestrator", "azure-devops-specialist"],
|
|
76
|
+
"sources": ["context7-docs"],
|
|
77
|
+
"filters": ["github-actions", "kubernetes", "ci-cd"],
|
|
78
|
+
"maxSize": "100MB",
|
|
79
|
+
"retention": "7d",
|
|
80
|
+
"refresh": "daily"
|
|
81
|
+
},
|
|
82
|
+
"testing-context": {
|
|
83
|
+
"type": "shared",
|
|
84
|
+
"agents": ["playwright-test-engineer", "test-runner"],
|
|
85
|
+
"sources": ["context7-docs", "playwright-mcp"],
|
|
86
|
+
"filters": ["playwright", "testing", "e2e"],
|
|
87
|
+
"maxSize": "50MB",
|
|
88
|
+
"retention": "7d",
|
|
89
|
+
"refresh": "daily"
|
|
90
|
+
},
|
|
91
|
+
"project-context": {
|
|
92
|
+
"type": "persistent",
|
|
93
|
+
"agents": ["python-backend-engineer", "react-frontend-engineer", "azure-devops-specialist", "code-analyzer"],
|
|
94
|
+
"sources": ["context7-codebase"],
|
|
95
|
+
"maxSize": "300MB",
|
|
96
|
+
"retention": "30d",
|
|
97
|
+
"refresh": "on-change"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"documentationSources": {
|
|
101
|
+
"fastapi": {
|
|
102
|
+
"url": "https://fastapi.tiangolo.com",
|
|
103
|
+
"type": "api-docs",
|
|
104
|
+
"priority": "high",
|
|
105
|
+
"agents": ["python-backend-engineer"]
|
|
106
|
+
},
|
|
107
|
+
"sqlalchemy": {
|
|
108
|
+
"url": "https://docs.sqlalchemy.org/en/20/",
|
|
109
|
+
"type": "orm-docs",
|
|
110
|
+
"priority": "high",
|
|
111
|
+
"agents": ["python-backend-engineer"]
|
|
112
|
+
},
|
|
113
|
+
"azure-devops-rest": {
|
|
114
|
+
"url": "https://docs.microsoft.com/en-us/rest/api/azure/devops/",
|
|
115
|
+
"type": "api-reference",
|
|
116
|
+
"priority": "high",
|
|
117
|
+
"agents": ["azure-devops-specialist"]
|
|
118
|
+
},
|
|
119
|
+
"azure-devops-services": {
|
|
120
|
+
"url": "https://docs.microsoft.com/en-us/azure/devops/",
|
|
121
|
+
"type": "service-docs",
|
|
122
|
+
"priority": "medium",
|
|
123
|
+
"agents": ["azure-devops-specialist"]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -1,62 +1,115 @@
|
|
|
1
1
|
# MCP Server Registry
|
|
2
2
|
|
|
3
|
-
This document provides
|
|
3
|
+
This document provides guidance on MCP (Model Context Protocol) server management in ClaudeAutoPM.
|
|
4
4
|
|
|
5
|
-
## 📡
|
|
5
|
+
## 📡 MCP Servers
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**By default, NO MCP servers are installed.** You must add and configure servers based on your project needs.
|
|
8
|
+
|
|
9
|
+
## 📚 Available Example Servers
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Example MCP server configurations are available in `.claude/examples/mcp/`:
|
|
12
|
+
|
|
13
|
+
### context7-docs
|
|
10
14
|
**Description**: Context7 documentation server for accessing technical documentation
|
|
11
|
-
**Status**: Active
|
|
12
15
|
**Use Cases**: API documentation, framework guides, technical references
|
|
16
|
+
**Example**: `.claude/examples/mcp/context7-docs.md`
|
|
13
17
|
|
|
14
18
|
### context7-codebase
|
|
15
|
-
|
|
16
|
-
**Location**: `.claude/mcp/context7-codebase.md`
|
|
17
19
|
**Description**: Context7 codebase server for project code analysis
|
|
18
|
-
**Status**: Active
|
|
19
20
|
**Use Cases**: Code navigation, project analysis, dependency tracking
|
|
21
|
+
**Example**: `.claude/examples/mcp/context7-codebase.md`
|
|
20
22
|
|
|
21
23
|
### playwright-mcp
|
|
22
|
-
|
|
23
|
-
**Location**: `.claude/mcp/playwright-mcp.md`
|
|
24
24
|
**Description**: Playwright MCP server for browser automation and testing
|
|
25
|
-
**Status**: Active
|
|
26
25
|
**Use Cases**: E2E testing, visual testing, browser automation
|
|
26
|
+
**Example**: `.claude/examples/mcp/playwright-mcp.md`
|
|
27
27
|
|
|
28
28
|
### github-mcp
|
|
29
|
-
|
|
30
|
-
**Location**: `.claude/mcp/github-mcp.md`
|
|
31
29
|
**Description**: GitHub MCP server for repository management
|
|
32
|
-
**Status**: Active
|
|
33
30
|
**Use Cases**: Issue tracking, PR management, repository analysis
|
|
31
|
+
**Example**: `.claude/examples/mcp/github-mcp.md`
|
|
34
32
|
|
|
35
33
|
### filesystem-mcp
|
|
36
|
-
|
|
37
|
-
**Location**: `.claude/mcp/filesystem-mcp.md`
|
|
38
34
|
**Description**: Local filesystem access server
|
|
39
|
-
**Status**: Active
|
|
40
35
|
**Use Cases**: File operations, directory navigation, content management
|
|
36
|
+
**Example**: `.claude/examples/mcp/filesystem-mcp.md`
|
|
41
37
|
|
|
42
38
|
### sqlite-mcp
|
|
43
|
-
|
|
44
|
-
**Location**: `.claude/mcp/sqlite-mcp.md`
|
|
45
39
|
**Description**: SQLite database server
|
|
46
|
-
**Status**: Active
|
|
47
40
|
**Use Cases**: Local database operations, data analysis, SQL queries
|
|
41
|
+
**Example**: `.claude/examples/mcp/sqlite-mcp.md`
|
|
48
42
|
|
|
49
43
|
## 🔧 Server Management
|
|
50
44
|
|
|
51
|
-
###
|
|
45
|
+
### 🔍 Discovering Servers (Dynamic)
|
|
52
46
|
|
|
47
|
+
**NEW: Search NPM Registry**
|
|
48
|
+
```bash
|
|
49
|
+
# Search for MCP servers in npm registry
|
|
50
|
+
autopm mcp search filesystem
|
|
51
|
+
autopm mcp search @modelcontextprotocol
|
|
52
|
+
autopm mcp search azure
|
|
53
|
+
|
|
54
|
+
# Browse popular servers
|
|
55
|
+
autopm mcp browse
|
|
56
|
+
autopm mcp browse --category database
|
|
57
|
+
autopm mcp browse --official # Only @modelcontextprotocol/* servers
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Official MCP Registry**: https://registry.modelcontextprotocol.io
|
|
61
|
+
|
|
62
|
+
### 📦 Installing Servers (Dynamic)
|
|
63
|
+
|
|
64
|
+
**NEW: Install from NPM**
|
|
65
|
+
```bash
|
|
66
|
+
# Install npm package + create server definition automatically
|
|
67
|
+
autopm mcp install @modelcontextprotocol/server-filesystem
|
|
68
|
+
|
|
69
|
+
# Install with custom name
|
|
70
|
+
autopm mcp install @modelcontextprotocol/server-memory --name memory
|
|
71
|
+
|
|
72
|
+
# Install and enable immediately
|
|
73
|
+
autopm mcp install @playwright/mcp --enable
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This command will:
|
|
77
|
+
1. Install the npm package (locally or globally based on config)
|
|
78
|
+
2. Auto-generate the `.md` definition file
|
|
79
|
+
3. Optionally enable the server
|
|
80
|
+
4. Update configuration
|
|
81
|
+
|
|
82
|
+
### 🗑️ Uninstalling Servers (Dynamic)
|
|
83
|
+
|
|
84
|
+
**NEW: Complete Removal**
|
|
85
|
+
```bash
|
|
86
|
+
# Remove server definition + npm package
|
|
87
|
+
autopm mcp uninstall filesystem
|
|
88
|
+
|
|
89
|
+
# Keep npm package, only remove definition
|
|
90
|
+
autopm mcp uninstall memory --keep-package
|
|
91
|
+
|
|
92
|
+
# Force removal even if active
|
|
93
|
+
autopm mcp uninstall context7-docs --force
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### ➕ Adding Servers (Manual)
|
|
97
|
+
|
|
98
|
+
**Option 1: Interactive Wizard**
|
|
53
99
|
```bash
|
|
54
100
|
autopm mcp add
|
|
55
101
|
```
|
|
56
102
|
|
|
57
|
-
|
|
103
|
+
**Option 2: Copy from Examples**
|
|
104
|
+
```bash
|
|
105
|
+
# Copy an example to your project
|
|
106
|
+
cp .claude/examples/mcp/context7-docs.md .claude/mcp/
|
|
107
|
+
|
|
108
|
+
# Or from installed framework
|
|
109
|
+
cp /path/to/framework/autopm/.claude/examples/mcp/github-mcp.md .claude/mcp/
|
|
110
|
+
```
|
|
58
111
|
|
|
59
|
-
### Enabling/Disabling Servers
|
|
112
|
+
### ✅ Enabling/Disabling Servers
|
|
60
113
|
|
|
61
114
|
```bash
|
|
62
115
|
# Enable a server in your project
|
|
@@ -64,13 +117,35 @@ autopm mcp enable <server-name>
|
|
|
64
117
|
|
|
65
118
|
# Disable a server in your project
|
|
66
119
|
autopm mcp disable <server-name>
|
|
120
|
+
|
|
121
|
+
# Enable multiple servers
|
|
122
|
+
autopm mcp enable context7-docs context7-codebase playwright-mcp
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 📋 Listing Servers
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# List all servers in your project
|
|
129
|
+
autopm mcp list
|
|
130
|
+
|
|
131
|
+
# List with detailed info
|
|
132
|
+
autopm mcp list --detailed
|
|
133
|
+
|
|
134
|
+
# List only active servers
|
|
135
|
+
autopm mcp list --active
|
|
67
136
|
```
|
|
68
137
|
|
|
69
|
-
### Syncing Configuration
|
|
138
|
+
### 🔄 Syncing Configuration
|
|
70
139
|
|
|
71
140
|
```bash
|
|
72
141
|
# Sync active servers to .claude/mcp-servers.json
|
|
73
142
|
autopm mcp sync
|
|
143
|
+
|
|
144
|
+
# Validate configuration
|
|
145
|
+
autopm mcp validate
|
|
146
|
+
|
|
147
|
+
# Test a specific server
|
|
148
|
+
autopm mcp test <server-name>
|
|
74
149
|
```
|
|
75
150
|
|
|
76
151
|
## 📋 Server Definition Format
|
|
@@ -86,7 +161,7 @@ env:
|
|
|
86
161
|
ENV_VAR: "${ENV_VAR:-default}"
|
|
87
162
|
envFile: .claude/.env
|
|
88
163
|
description: Server description
|
|
89
|
-
category: documentation|codebase|testing|database
|
|
164
|
+
category: documentation|codebase|testing|database|integration
|
|
90
165
|
status: active|deprecated
|
|
91
166
|
---
|
|
92
167
|
|
|
@@ -104,76 +179,62 @@ Example usage...
|
|
|
104
179
|
|
|
105
180
|
## 🏷️ Server Categories
|
|
106
181
|
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
- context7-codebase
|
|
113
|
-
- filesystem-mcp
|
|
114
|
-
|
|
115
|
-
### Testing Servers
|
|
116
|
-
- playwright-mcp
|
|
117
|
-
- Test automation servers
|
|
118
|
-
|
|
119
|
-
### Integration Servers
|
|
120
|
-
- github-mcp
|
|
121
|
-
- Azure DevOps MCP (coming soon)
|
|
122
|
-
- GitLab MCP (coming soon)
|
|
123
|
-
|
|
124
|
-
### Database Servers
|
|
125
|
-
- sqlite-mcp
|
|
126
|
-
- PostgreSQL MCP (coming soon)
|
|
127
|
-
- MongoDB MCP (coming soon)
|
|
182
|
+
- **Documentation**: Technical documentation access
|
|
183
|
+
- **Codebase**: Code analysis and navigation
|
|
184
|
+
- **Testing**: Browser automation and E2E testing
|
|
185
|
+
- **Integration**: GitHub, Azure DevOps, etc.
|
|
186
|
+
- **Database**: SQLite, PostgreSQL, MongoDB
|
|
128
187
|
|
|
129
188
|
## 🔄 Server Lifecycle
|
|
130
189
|
|
|
131
|
-
1. **Definition**:
|
|
132
|
-
2. **
|
|
133
|
-
3. **Activation**:
|
|
134
|
-
4. **
|
|
135
|
-
5. **
|
|
136
|
-
6. **Runtime**: Used by Claude Code
|
|
190
|
+
1. **Definition**: Create server file in `.claude/mcp/*.md`
|
|
191
|
+
2. **Configuration**: Edit YAML frontmatter with server settings
|
|
192
|
+
3. **Activation**: Enable via `autopm mcp enable <server-name>`
|
|
193
|
+
4. **Synchronization**: Auto-synced to `.claude/mcp-servers.json`
|
|
194
|
+
5. **Runtime**: Used by Claude Code
|
|
137
195
|
|
|
138
196
|
## 📝 Best Practices
|
|
139
197
|
|
|
140
|
-
1. **
|
|
141
|
-
2. **
|
|
142
|
-
3. **
|
|
143
|
-
4. **
|
|
144
|
-
5. **
|
|
198
|
+
1. **Start Simple**: Only add servers you need
|
|
199
|
+
2. **Environment Variables**: Use `${VAR:-default}` syntax
|
|
200
|
+
3. **Sensitive Data**: Store API keys in `.claude/.env`
|
|
201
|
+
4. **Categories**: Assign appropriate categories for organization
|
|
202
|
+
5. **Documentation**: Include clear usage examples
|
|
203
|
+
6. **Testing**: Use `autopm mcp test <server-name>` to verify configuration
|
|
145
204
|
|
|
146
205
|
## 🚀 Quick Start
|
|
147
206
|
|
|
148
207
|
```bash
|
|
149
|
-
#
|
|
208
|
+
# 1. Check available servers (should be empty initially)
|
|
150
209
|
autopm mcp list
|
|
151
210
|
|
|
152
|
-
#
|
|
211
|
+
# 2. Copy an example server you want to use
|
|
212
|
+
cp .claude/examples/mcp/context7-docs.md .claude/mcp/
|
|
213
|
+
|
|
214
|
+
# 3. Configure environment variables if needed
|
|
215
|
+
nano .claude/.env
|
|
216
|
+
|
|
217
|
+
# 4. Enable the server
|
|
153
218
|
autopm mcp enable context7-docs
|
|
154
|
-
autopm mcp enable github-mcp
|
|
155
219
|
|
|
156
|
-
# Sync configuration
|
|
220
|
+
# 5. Sync configuration
|
|
157
221
|
autopm mcp sync
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## 📊 Server Statistics
|
|
161
222
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- **Categories**: 5
|
|
223
|
+
# 6. Test the server
|
|
224
|
+
autopm mcp test context7-docs
|
|
225
|
+
```
|
|
166
226
|
|
|
167
227
|
## 🔐 Security Considerations
|
|
168
228
|
|
|
169
|
-
1. Never commit sensitive tokens
|
|
170
|
-
2. Use environment variables for secrets
|
|
171
|
-
3. Validate server sources
|
|
229
|
+
1. Never commit sensitive tokens or API keys
|
|
230
|
+
2. Use environment variables for all secrets
|
|
231
|
+
3. Validate server sources before installation
|
|
172
232
|
4. Review permissions regularly
|
|
173
233
|
5. Audit server access logs
|
|
234
|
+
6. Keep MCP packages updated
|
|
174
235
|
|
|
175
236
|
## 📚 Related Documentation
|
|
176
237
|
|
|
177
238
|
- [MCP Management Guide](../../docs/MCP-MANAGEMENT-GUIDE.md)
|
|
178
239
|
- [Agent-MCP Integration](../agents/AGENT-MCP-INTEGRATION.md)
|
|
179
|
-
- [Context Pools](../context-pools/README.md)
|
|
240
|
+
- [Context Pools](../context-pools/README.md)
|
|
@@ -1,126 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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-codebase": {
|
|
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"
|
|
26
|
-
},
|
|
27
|
-
"playwright-mcp": {
|
|
28
|
-
"command": "npx",
|
|
29
|
-
"args": ["@playwright/mcp"],
|
|
30
|
-
"env": {
|
|
31
|
-
"PLAYWRIGHT_BROWSER": "chromium",
|
|
32
|
-
"PLAYWRIGHT_HEADLESS": "true"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"contextPools": {
|
|
37
|
-
"python-docs": {
|
|
38
|
-
"type": "shared",
|
|
39
|
-
"agents": ["python-backend-engineer", "mcp-context-manager"],
|
|
40
|
-
"sources": ["context7-docs"],
|
|
41
|
-
"filters": ["fastapi", "sqlalchemy", "pydantic", "uvicorn", "pytest"],
|
|
42
|
-
"maxSize": "100MB",
|
|
43
|
-
"retention": "7d",
|
|
44
|
-
"refresh": "daily"
|
|
45
|
-
},
|
|
46
|
-
"azure-docs": {
|
|
47
|
-
"type": "shared",
|
|
48
|
-
"agents": ["azure-devops-specialist", "mcp-context-manager"],
|
|
49
|
-
"sources": ["context7-docs"],
|
|
50
|
-
"filters": ["azure-devops", "rest-api", "work-items", "pipelines"],
|
|
51
|
-
"maxSize": "75MB",
|
|
52
|
-
"retention": "7d",
|
|
53
|
-
"refresh": "daily"
|
|
54
|
-
},
|
|
55
|
-
"react-docs": {
|
|
56
|
-
"type": "shared",
|
|
57
|
-
"agents": ["react-frontend-engineer", "playwright-test-engineer"],
|
|
58
|
-
"sources": ["context7-docs"],
|
|
59
|
-
"filters": ["react", "nextjs", "typescript", "tailwind", "vite"],
|
|
60
|
-
"maxSize": "75MB",
|
|
61
|
-
"retention": "7d",
|
|
62
|
-
"refresh": "daily"
|
|
63
|
-
},
|
|
64
|
-
"cloud-docs": {
|
|
65
|
-
"type": "shared",
|
|
66
|
-
"agents": ["gcp-cloud-architect", "azure-cloud-architect", "aws-cloud-architect"],
|
|
67
|
-
"sources": ["context7-docs"],
|
|
68
|
-
"filters": ["terraform", "kubernetes", "docker", "helm"],
|
|
69
|
-
"maxSize": "150MB",
|
|
70
|
-
"retention": "7d",
|
|
71
|
-
"refresh": "daily"
|
|
72
|
-
},
|
|
73
|
-
"devops-context": {
|
|
74
|
-
"type": "shared",
|
|
75
|
-
"agents": ["github-operations-specialist", "kubernetes-orchestrator", "azure-devops-specialist"],
|
|
76
|
-
"sources": ["context7-docs"],
|
|
77
|
-
"filters": ["github-actions", "kubernetes", "ci-cd"],
|
|
78
|
-
"maxSize": "100MB",
|
|
79
|
-
"retention": "7d",
|
|
80
|
-
"refresh": "daily"
|
|
81
|
-
},
|
|
82
|
-
"testing-context": {
|
|
83
|
-
"type": "shared",
|
|
84
|
-
"agents": ["playwright-test-engineer", "test-runner"],
|
|
85
|
-
"sources": ["context7-docs", "playwright-mcp"],
|
|
86
|
-
"filters": ["playwright", "testing", "e2e"],
|
|
87
|
-
"maxSize": "50MB",
|
|
88
|
-
"retention": "7d",
|
|
89
|
-
"refresh": "daily"
|
|
90
|
-
},
|
|
91
|
-
"project-context": {
|
|
92
|
-
"type": "persistent",
|
|
93
|
-
"agents": ["python-backend-engineer", "react-frontend-engineer", "azure-devops-specialist", "code-analyzer"],
|
|
94
|
-
"sources": ["context7-codebase"],
|
|
95
|
-
"maxSize": "300MB",
|
|
96
|
-
"retention": "30d",
|
|
97
|
-
"refresh": "on-change"
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
"documentationSources": {
|
|
101
|
-
"fastapi": {
|
|
102
|
-
"url": "https://fastapi.tiangolo.com",
|
|
103
|
-
"type": "api-docs",
|
|
104
|
-
"priority": "high",
|
|
105
|
-
"agents": ["python-backend-engineer"]
|
|
106
|
-
},
|
|
107
|
-
"sqlalchemy": {
|
|
108
|
-
"url": "https://docs.sqlalchemy.org/en/20/",
|
|
109
|
-
"type": "orm-docs",
|
|
110
|
-
"priority": "high",
|
|
111
|
-
"agents": ["python-backend-engineer"]
|
|
112
|
-
},
|
|
113
|
-
"azure-devops-rest": {
|
|
114
|
-
"url": "https://docs.microsoft.com/en-us/rest/api/azure/devops/",
|
|
115
|
-
"type": "api-reference",
|
|
116
|
-
"priority": "high",
|
|
117
|
-
"agents": ["azure-devops-specialist"]
|
|
118
|
-
},
|
|
119
|
-
"azure-devops-services": {
|
|
120
|
-
"url": "https://docs.microsoft.com/en-us/azure/devops/",
|
|
121
|
-
"type": "service-docs",
|
|
122
|
-
"priority": "medium",
|
|
123
|
-
"agents": ["azure-devops-specialist"]
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
2
|
+
"mcpServers": {},
|
|
3
|
+
"contextPools": {},
|
|
4
|
+
"documentationSources": {}
|
|
5
|
+
}
|
package/bin/commands/config.js
CHANGED
|
@@ -104,30 +104,28 @@ class ConfigCommand {
|
|
|
104
104
|
|
|
105
105
|
console.log('│ │');
|
|
106
106
|
|
|
107
|
-
// MCP Configuration - check
|
|
107
|
+
// MCP Configuration - check actual .md files in project
|
|
108
108
|
const mcpActiveServers = config.mcp?.activeServers || [];
|
|
109
|
-
let
|
|
110
|
-
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// Ignore error
|
|
120
|
-
}
|
|
109
|
+
let mcpAvailableServers = 0;
|
|
110
|
+
|
|
111
|
+
// Count actual server definition files (.md) in .claude/mcp/
|
|
112
|
+
const mcpDir = path.join(process.cwd(), '.claude', 'mcp');
|
|
113
|
+
if (await fs.pathExists(mcpDir)) {
|
|
114
|
+
try {
|
|
115
|
+
const files = await fs.readdir(mcpDir);
|
|
116
|
+
mcpAvailableServers = files.filter(f => f.endsWith('.md') && f !== 'MCP-REGISTRY.md').length;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
// Ignore error
|
|
121
119
|
}
|
|
122
120
|
}
|
|
123
121
|
|
|
124
122
|
let mcpStatus;
|
|
125
123
|
if (mcpActiveServers.length > 0) {
|
|
126
|
-
mcpStatus = `✅ ${mcpActiveServers.length} active`;
|
|
127
|
-
} else if (
|
|
128
|
-
mcpStatus = `⚠️ ${
|
|
124
|
+
mcpStatus = `✅ ${mcpActiveServers.length} active (${mcpAvailableServers} total)`;
|
|
125
|
+
} else if (mcpAvailableServers > 0) {
|
|
126
|
+
mcpStatus = `⚠️ ${mcpAvailableServers} available, 0 active`;
|
|
129
127
|
} else {
|
|
130
|
-
mcpStatus = '
|
|
128
|
+
mcpStatus = '⚪ No servers installed';
|
|
131
129
|
}
|
|
132
130
|
console.log(`│ MCP: ${this.padRight(mcpStatus, 22)} │`);
|
|
133
131
|
|
|
@@ -211,17 +209,17 @@ class ConfigCommand {
|
|
|
211
209
|
}
|
|
212
210
|
|
|
213
211
|
if (mcpActiveServers.length === 0) {
|
|
214
|
-
if (
|
|
212
|
+
if (mcpAvailableServers > 0) {
|
|
215
213
|
issues.push({
|
|
216
214
|
icon: 'ℹ️',
|
|
217
|
-
problem: `${
|
|
215
|
+
problem: `${mcpAvailableServers} MCP server(s) available but not active`,
|
|
218
216
|
solution: 'Run: autopm mcp list (then: autopm mcp enable <server>)'
|
|
219
217
|
});
|
|
220
218
|
} else {
|
|
221
219
|
issues.push({
|
|
222
220
|
icon: 'ℹ️',
|
|
223
|
-
problem: 'No MCP servers
|
|
224
|
-
solution: '
|
|
221
|
+
problem: 'No MCP servers installed',
|
|
222
|
+
solution: 'Add servers from examples: cp .claude/examples/mcp/*.md .claude/mcp/'
|
|
225
223
|
});
|
|
226
224
|
}
|
|
227
225
|
}
|
package/package.json
CHANGED
package/scripts/mcp-handler.js
CHANGED
|
@@ -47,7 +47,7 @@ class MCPHandler {
|
|
|
47
47
|
constructor() {
|
|
48
48
|
this.projectRoot = process.cwd();
|
|
49
49
|
this.frameworkRoot = path.join(__dirname, '..');
|
|
50
|
-
this.mcpDir = path.join(this.
|
|
50
|
+
this.mcpDir = path.join(this.projectRoot, '.claude', 'mcp');
|
|
51
51
|
this.configPath = path.join(this.projectRoot, '.claude', 'config.json');
|
|
52
52
|
this.mcpServersPath = path.join(this.projectRoot, '.claude', 'mcp-servers.json');
|
|
53
53
|
this.envPath = path.join(this.projectRoot, '.claude', '.env');
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|