all-agents-mcp 1.0.0 → 1.2.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.
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "all-agents-mcp",
3
+ "owner": {
4
+ "name": "Dokkabei97",
5
+ "email": "dokkabei97@gmail.com"
6
+ },
7
+ "metadata": {
8
+ "description": "Multi AI CLI Agent Orchestration — Claude Code, Codex, Gemini CLI, Copilot CLI",
9
+ "version": "1.0.0"
10
+ },
11
+ "plugins": [
12
+ {
13
+ "name": "all-agents-mcp",
14
+ "source": "./",
15
+ "description": "Orchestrate multiple AI CLI agents (Codex, Gemini, Copilot) through a unified MCP interface with 13 tools and 6 skills",
16
+ "version": "1.0.0",
17
+ "category": "development",
18
+ "keywords": ["mcp", "ai", "agents", "orchestration", "multi-agent"],
19
+ "license": "MIT",
20
+ "homepage": "https://github.com/Dokkabei97/all-agents-mcp"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "all-agents-mcp",
3
+ "version": "1.0.0",
4
+ "description": "Multi AI CLI Agent Orchestration — Claude Code, Codex, Gemini CLI, Copilot CLI를 하나의 인터페이스로 오케스트레이션합니다.",
5
+ "author": {
6
+ "name": "Dokkabei97",
7
+ "url": "https://github.com/Dokkabei97"
8
+ },
9
+ "repository": "https://github.com/Dokkabei97/all-agents-mcp",
10
+ "license": "MIT",
11
+ "keywords": ["mcp", "ai", "agents", "orchestration", "multi-agent", "codex", "gemini", "copilot"]
12
+ }
package/.mcp.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "all-agents-mcp": {
4
+ "command": "npx",
5
+ "args": ["-y", "all-agents-mcp"],
6
+ "env": {
7
+ "AA_MCP_LOG_LEVEL": "warn"
8
+ }
9
+ }
10
+ }
11
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dokkabei97
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -25,6 +25,22 @@ However, this project was intentionally built as a standalone **MCP server** for
25
25
 
26
26
  In **enterprise environments**, teams often share a common `CLAUDE.md` managed at the organization or repository level. Embedding agent orchestration logic into `CLAUDE.md` would conflict with or pollute these shared configurations. By encapsulating the orchestration as an **MCP server**, the multi-agent capability becomes a modular, pluggable extension — completely independent of any existing `CLAUDE.md` setup. This allows teams to adopt cross-agent workflows without modifying their shared development guidelines.
27
27
 
28
+ ## Safe by Design — No OAuth Token Hijacking
29
+
30
+ Some multi-agent tools work by extracting OAuth tokens from other AI services and calling their APIs directly. This approach (used by projects like [OpenCode](https://github.com/nicepkg/OpenCode)) violates the terms of service of those platforms and can result in **account suspension or permanent bans**.
31
+
32
+ **all-agents-mcp takes a fundamentally different approach.** It invokes each agent's **official CLI binary** (`claude`, `codex`, `gemini`, `copilot`) as a child process — exactly the same way a human would use them in a terminal. No tokens are extracted, no APIs are called behind the scenes, and no authentication is bypassed.
33
+
34
+ | | all-agents-mcp | OAuth token hijacking |
35
+ |---|---|---|
36
+ | **How it works** | Calls official CLI commands directly | Extracts tokens from browser/config and calls APIs |
37
+ | **Authentication** | Uses each CLI's own auth flow | Steals OAuth tokens from other services |
38
+ | **ToS compliance** | Fully compliant | Violates platform terms of service |
39
+ | **Account risk** | None | Suspension or permanent ban |
40
+ | **Billing** | Normal CLI usage billing | Unpredictable — may trigger abuse detection |
41
+
42
+ > Each CLI agent manages its own authentication, billing, and rate limits. all-agents-mcp is simply a process orchestrator — it doesn't touch your credentials.
43
+
28
44
  ## Features
29
45
 
30
46
  - **Single-agent queries** — Ask a specific agent with `ask_agent`
@@ -50,25 +66,68 @@ In **enterprise environments**, teams often share a common `CLAUDE.md` managed a
50
66
 
51
67
  ## Installation
52
68
 
53
- ### Via npm (recommended)
69
+ ### Claude Code
70
+
71
+ #### As a Plugin (recommended)
72
+
73
+ ```bash
74
+ # 1. Add marketplace (includes all Dokkabei97 plugins)
75
+ /plugin marketplace add Dokkabei97/claude-plugins
76
+
77
+ # 2. Install plugin
78
+ /plugin install all-agents-mcp
79
+ ```
80
+
81
+ > You can also add the plugin repository directly: `/plugin marketplace add Dokkabei97/all-agents-mcp`
82
+
83
+ This installs all-agents-mcp as a Claude Code plugin, giving you:
84
+ - 8 skills (`/all-agents-mcp:ask`, `/all-agents-mcp:ask-all`, `/all-agents-mcp:delegate`, `/all-agents-mcp:review`, `/all-agents-mcp:debug`, `/all-agents-mcp:agents`, `/all-agents-mcp:aa-models`, `/all-agents-mcp:aa-fetch`)
85
+ - Automatic MCP server connection via `npx`
86
+ - Session start health checks
87
+
88
+ #### As MCP Server
54
89
 
55
90
  ```bash
56
91
  claude mcp add all-agents-mcp -- npx -y all-agents-mcp
57
92
  ```
58
93
 
59
- ### From source
94
+ Or manually add to `~/.claude.json`:
95
+
96
+ ```json
97
+ {
98
+ "mcpServers": {
99
+ "all-agents-mcp": {
100
+ "command": "npx",
101
+ "args": ["-y", "all-agents-mcp"]
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### Codex CLI
60
108
 
61
109
  ```bash
62
- git clone https://github.com/mingyuShim94/all-agents-mcp.git
63
- cd all-agents-mcp
64
- npm install
65
- npm run build
66
- claude mcp add all-agents-mcp -- node /path/to/all-agents-mcp/dist/index.js
110
+ codex mcp add all-agents-mcp -- npx -y all-agents-mcp
67
111
  ```
68
112
 
69
- ### Manual MCP configuration
113
+ Or manually add to `~/.codex/config.toml`:
70
114
 
71
- Add to your Claude Code MCP settings (`~/.claude.json`):
115
+ ```toml
116
+ [mcp_servers.all-agents-mcp]
117
+ command = "npx"
118
+ args = ["-y", "all-agents-mcp"]
119
+
120
+ [mcp_servers.all-agents-mcp.env]
121
+ AA_MCP_LOG_LEVEL = "warn"
122
+ ```
123
+
124
+ ### Gemini CLI
125
+
126
+ ```bash
127
+ gemini mcp add all-agents-mcp npx -y all-agents-mcp
128
+ ```
129
+
130
+ Or manually add to `~/.gemini/settings.json`:
72
131
 
73
132
  ```json
74
133
  {
@@ -81,7 +140,59 @@ Add to your Claude Code MCP settings (`~/.claude.json`):
81
140
  }
82
141
  ```
83
142
 
84
- ## Tools (13)
143
+ ### Copilot CLI
144
+
145
+ Add to `~/.copilot/mcp-config.json`:
146
+
147
+ ```json
148
+ {
149
+ "servers": [
150
+ {
151
+ "name": "all-agents-mcp",
152
+ "type": "stdio",
153
+ "command": "npx",
154
+ "args": ["-y", "all-agents-mcp"]
155
+ }
156
+ ]
157
+ }
158
+ ```
159
+
160
+ ### From Source
161
+
162
+ ```bash
163
+ git clone https://github.com/Dokkabei97/all-agents-mcp.git
164
+ cd all-agents-mcp
165
+ npm install
166
+ npm run build
167
+
168
+ # Claude Code
169
+ claude mcp add all-agents-mcp -- node /path/to/all-agents-mcp/dist/index.js
170
+
171
+ # Codex
172
+ codex mcp add all-agents-mcp -- node /path/to/all-agents-mcp/dist/index.js
173
+
174
+ # Gemini CLI
175
+ gemini mcp add all-agents-mcp node /path/to/all-agents-mcp/dist/index.js
176
+ ```
177
+
178
+ ## Plugin Skills
179
+
180
+ When installed as a Claude Code plugin, the following skills are available:
181
+
182
+ ### Skills
183
+
184
+ | Skill | Usage | Description |
185
+ |-------|-------|-------------|
186
+ | `ask` | `/all-agents-mcp:ask codex <question>` | Ask a specific agent a question |
187
+ | `ask-all` | `/all-agents-mcp:ask-all <question>` | Ask all agents in parallel and compare |
188
+ | `delegate` | `/all-agents-mcp:delegate <task>` | Auto-analyze complexity and route to agent(s) |
189
+ | `review` | `/all-agents-mcp:review codex [focus]` | Code review by an external agent |
190
+ | `debug` | `/all-agents-mcp:debug gemini <error>` | Debug an error with an external agent |
191
+ | `agents` | `/all-agents-mcp:agents` | Show all agents status and health |
192
+ | `aa-models` | `/all-agents-mcp:aa-models` | List available models for all agents |
193
+ | `aa-fetch` | `/all-agents-mcp:aa-fetch <url> [instruction]` | Fetch web page content via Gemini CLI |
194
+
195
+ ## Tools (14)
85
196
 
86
197
  ### Core Tools
87
198
 
@@ -108,6 +219,12 @@ Add to your Claude Code MCP settings (`~/.claude.json`):
108
219
  | `generate_test` | Generate tests with optional framework selection (`jest`, `vitest`, `pytest`, `kotest`). |
109
220
  | `refactor_with` | Refactor code with a goal: `performance`, `readability`, or `modularity`. |
110
221
 
222
+ ### Web Tools
223
+
224
+ | Tool | Description |
225
+ |------|-------------|
226
+ | `fetch_page` | Fetch web page content via Gemini CLI's native browsing. Retrieve and extract content from any URL. |
227
+
111
228
  ### Info Tools
112
229
 
113
230
  | Tool | Description |
@@ -229,7 +346,7 @@ all-agents-mcp/
229
346
  │ │ ├── copilot-agent.ts
230
347
  │ │ └── registry.ts # Detection, registration, recursion guard
231
348
  │ │
232
- │ ├── tools/ # 13 MCP tool definitions
349
+ │ ├── tools/ # 14 MCP tool definitions
233
350
  │ ├── orchestrator/ # Parallel execution, complexity analysis, verification
234
351
  │ ├── session/ # File-based session storage
235
352
  │ ├── resources/ # 3 MCP resource definitions
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: models
3
+ description: List available models for all AI agents
4
+ ---
5
+
6
+ List all available models across all AI agents.
7
+
8
+ Call the MCP tool `mcp__all-agents-mcp__list_models` with no parameters to get models for all agents.
9
+
10
+ Display the result showing each agent's available models and their defaults.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: status
3
+ description: Quick health check of all AI agents
4
+ ---
5
+
6
+ Check the health status of all available AI agents.
7
+
8
+ Call the MCP tool `mcp__all-agents-mcp__agent_health` with no parameters to check all agents.
9
+
10
+ Display the result showing each agent's availability, authentication status, and latency.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAwCtE,QAAA,MAAM,SAAS,mDAAoD,CAAC;AAEpE,KAAK,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1C,UAAU,YAAY;IACrB,MAAM,EAAE,OAAO,CACd,MAAM,CACL,OAAO,EACP;QACC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC9B,CACD,CACD,CAAC;CACF;AASD,wBAAgB,gBAAgB,CAC/B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACnD,YAAY,CAiCd;AAED,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,YAAY,CAa/F;AAID,wBAAgB,gBAAgB,IAAI,YAAY,CAI/C;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAGjD"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAQtE,QAAA,MAAM,SAAS,mDAAoD,CAAC;AAEpE,KAAK,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1C,UAAU,YAAY;IACrB,MAAM,EAAE,OAAO,CACd,MAAM,CACL,OAAO,EACP;QACC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC9B,CACD,CACD,CAAC;CACF;AASD,wBAAgB,gBAAgB,CAC/B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACnD,YAAY,CAiCd;AAED,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,YAAY,CAa/F;AAID,wBAAgB,gBAAgB,IAAI,YAAY,CAI/C;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAGjD"}
@@ -1,41 +1,10 @@
1
+ import defaultModels from "./models.json";
1
2
  import { MODELS_CONFIG_SCHEMA } from "./schema.js";
2
3
  /**
3
- * Hardcoded defaults matching the previous config/models.yaml values.
4
+ * Default model configuration loaded from models.json.
4
5
  * Override at runtime via AA_MCP_{AGENT}_{FIELD} environment variables.
5
6
  */
6
- const DEFAULT_CONFIG = {
7
- agents: {
8
- claude: {
9
- default: "claude-opus-4.6",
10
- models: ["claude-opus-4.6", "claude-sonnet-4.5", "claude-haiku-4.5"],
11
- },
12
- codex: {
13
- default: "gpt-5.3-codex-spark",
14
- defaultAnalysisLevel: "xhigh",
15
- models: ["gpt-5.3-codex-spark", "gpt-5.3-codex", "gpt-5.2-codex-max", "gpt-5.2-codex"],
16
- },
17
- gemini: {
18
- default: "gemini-3-pro-preview",
19
- models: [
20
- "gemini-3-pro-preview",
21
- "gemini-3-flash-preview",
22
- "gemini-2.5-pro",
23
- "gemini-2.5-flash",
24
- ],
25
- },
26
- copilot: {
27
- default: "claude-sonnet-4.5",
28
- models: [
29
- "claude-opus-4.5",
30
- "claude-sonnet-4.5",
31
- "claude-haiku-4.5",
32
- "gpt-5.2-codex",
33
- "gemini-3-pro-preview",
34
- "gemini-3-flash-preview",
35
- ],
36
- },
37
- },
38
- };
7
+ const DEFAULT_CONFIG = MODELS_CONFIG_SCHEMA.parse(defaultModels);
39
8
  const AGENT_IDS = ["claude", "codex", "gemini", "copilot"];
40
9
  function parseModelsList(value) {
41
10
  return value
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ {
2
+ "agents": {
3
+ "claude": {
4
+ "default": "claude-opus-4.6",
5
+ "models": ["claude-opus-4.6", "claude-sonnet-4.6", "claude-haiku-4.5"]
6
+ },
7
+ "codex": {
8
+ "default": "gpt-5.3-codex-spark",
9
+ "defaultAnalysisLevel": "xhigh",
10
+ "models": [
11
+ "gpt-5.3-codex-spark",
12
+ "gpt-5.3-codex",
13
+ "gpt-5.2-codex",
14
+ "gpt-5.2",
15
+ "gpt-5.1-codex-max",
16
+ "gpt-5.1-codex-mini"
17
+ ]
18
+ },
19
+ "gemini": {
20
+ "default": "gemini-3-pro-preview",
21
+ "models": [
22
+ "gemini-3-pro-preview",
23
+ "gemini-3-flash-preview",
24
+ "gemini-2.5-pro",
25
+ "gemini-2.5-flash",
26
+ "gemini-2.5-flash-lite"
27
+ ]
28
+ },
29
+ "copilot": {
30
+ "default": "claude-sonnet-4.6",
31
+ "models": [
32
+ "claude-opus-4.6",
33
+ "claude-opus-4.6-fast",
34
+ "claude-opus-4.5",
35
+ "claude-sonnet-4.6",
36
+ "claude-sonnet-4.5",
37
+ "claude-sonnet-4.0",
38
+ "claude-haiku-4.5",
39
+ "gpt-5.3-codex",
40
+ "gpt-5.2-codex",
41
+ "gpt-5.2",
42
+ "gpt-5.1-codex-max",
43
+ "gpt-5.1-codex",
44
+ "gpt-5.1-codex-mini",
45
+ "gpt-5.1",
46
+ "gpt-5-mini",
47
+ "gpt-4.1",
48
+ "gemini-3-pro-preview",
49
+ "gemini-3-flash-preview"
50
+ ]
51
+ }
52
+ }
53
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBpE,wBAAgB,YAAY,IAAI,SAAS,CA2BxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBpE,wBAAgB,YAAY,IAAI,SAAS,CA4BxC"}
package/dist/server.js CHANGED
@@ -7,6 +7,7 @@ import { registerCollaborateTool } from "./tools/collaborate.js";
7
7
  import { registerDebugWithTool } from "./tools/debug-with.js";
8
8
  import { registerDelegateTaskTool } from "./tools/delegate.js";
9
9
  import { registerExplainWithTool } from "./tools/explain-with.js";
10
+ import { registerFetchPageTool } from "./tools/fetch-page.js";
10
11
  import { registerGenerateTestTool } from "./tools/generate-test.js";
11
12
  import { registerListAgentsTool } from "./tools/list-agents.js";
12
13
  import { registerListModelsTool } from "./tools/list-models.js";
@@ -22,7 +23,7 @@ export function createServer() {
22
23
  name: "all-agents-mcp",
23
24
  version: "1.0.0",
24
25
  });
25
- // Register 13 tools
26
+ // Register 14 tools
26
27
  registerAskAgentTool(server);
27
28
  registerAskAllTool(server);
28
29
  registerDelegateTaskTool(server);
@@ -31,6 +32,7 @@ export function createServer() {
31
32
  registerReviewCodeTool(server);
32
33
  registerDebugWithTool(server);
33
34
  registerExplainWithTool(server);
35
+ registerFetchPageTool(server);
34
36
  registerGenerateTestTool(server);
35
37
  registerRefactorWithTool(server);
36
38
  registerListAgentsTool(server);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,QAAQ;AACR,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY;AACZ,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,UAAU,YAAY;IAC3B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC5B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,oBAAoB;IACpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,uBAAuB;IACvB,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,QAAQ;AACR,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,YAAY;AACZ,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,UAAU,YAAY;IAC3B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC5B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,oBAAoB;IACpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,uBAAuB;IACvB,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function buildFetchPrompt(url: string, instruction?: string): string;
3
+ export declare function registerFetchPageTool(server: McpServer): void;
4
+ //# sourceMappingURL=fetch-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-page.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB1E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6D7D"}
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ import { getAgent } from "../agents/registry.js";
3
+ import { addEntry, getOrCreateActiveSession } from "../session/store.js";
4
+ const DEFAULT_MODEL = "gemini-3-flash-preview";
5
+ const DEFAULT_TIMEOUT = 120000;
6
+ const SCHEMA = {
7
+ url: z.string().url().describe("Target URL to fetch content from"),
8
+ instruction: z
9
+ .string()
10
+ .optional()
11
+ .describe("Optional extraction/focus instruction (e.g. 'extract only the API table')"),
12
+ model: z.string().optional().describe(`Gemini model to use (default: ${DEFAULT_MODEL})`),
13
+ timeout: z.number().optional().describe(`Timeout in milliseconds (default: ${DEFAULT_TIMEOUT})`),
14
+ };
15
+ export function buildFetchPrompt(url, instruction) {
16
+ const lines = [
17
+ "Fetch the content from the following URL and return it:",
18
+ "",
19
+ `URL: ${url}`,
20
+ "",
21
+ "Instructions:",
22
+ "- Access the URL and retrieve the full page content",
23
+ "- Convert the content to well-formatted Markdown",
24
+ "- Preserve code blocks, tables, lists, and headings",
25
+ "- Remove navigation, ads, footers, and other non-content elements",
26
+ "- If the page cannot be accessed, explain the error clearly",
27
+ ];
28
+ if (instruction) {
29
+ lines.push("", `Additional focus: ${instruction}`);
30
+ }
31
+ lines.push("", "Return ONLY the extracted content, no preamble or commentary.");
32
+ return lines.join("\n");
33
+ }
34
+ export function registerFetchPageTool(server) {
35
+ server.tool("fetch_page", "Fetch web page content via Gemini CLI. Gemini has native web browsing — use this to retrieve and extract content from URLs.", SCHEMA, async (params) => {
36
+ const agent = getAgent("gemini");
37
+ if (!agent) {
38
+ return {
39
+ content: [
40
+ {
41
+ type: "text",
42
+ text: "Gemini agent is not available. It may not be installed or is the current caller.",
43
+ },
44
+ ],
45
+ };
46
+ }
47
+ const available = await agent.isAvailable();
48
+ if (!available) {
49
+ return {
50
+ content: [
51
+ {
52
+ type: "text",
53
+ text: "Gemini CLI is not installed or not in PATH. Install it with: npm i -g @google/gemini-cli",
54
+ },
55
+ ],
56
+ };
57
+ }
58
+ const model = params.model ?? DEFAULT_MODEL;
59
+ const timeout = params.timeout ?? DEFAULT_TIMEOUT;
60
+ const prompt = buildFetchPrompt(params.url, params.instruction);
61
+ const response = await agent.execute({ prompt, model, timeout });
62
+ const sessionId = getOrCreateActiveSession();
63
+ addEntry(sessionId, {
64
+ tool: "fetch_page",
65
+ agent: response.agent,
66
+ model: response.model,
67
+ prompt: `[fetch] ${params.url}`,
68
+ response: response.content,
69
+ durationMs: response.durationMs,
70
+ exitCode: response.exitCode,
71
+ error: response.error,
72
+ });
73
+ const header = `**Fetched**: ${params.url}\n**Model**: ${response.model} — ${response.durationMs}ms`;
74
+ if (response.error) {
75
+ return {
76
+ content: [{ type: "text", text: `${header}\n\nError: ${response.error}` }],
77
+ };
78
+ }
79
+ return {
80
+ content: [{ type: "text", text: `${header}\n\n${response.content}` }],
81
+ };
82
+ });
83
+ }
84
+ //# sourceMappingURL=fetch-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-page.js","sourceRoot":"","sources":["../../src/tools/fetch-page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "startup",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/check-setup.sh",
10
+ "timeout": 10000
11
+ }
12
+ ]
13
+ }
14
+ ]
15
+ }
16
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "all-agents-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "All Agents MCP - Multi AI CLI Agent Orchestration Server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,9 +20,11 @@
20
20
  "dev": "tsc --watch",
21
21
  "start": "node dist/index.js",
22
22
  "lint": "biome check --write .",
23
+ "lint:check": "biome check .",
23
24
  "test": "vitest run",
24
25
  "test:watch": "vitest",
25
- "prepare": "npm run build"
26
+ "prepare": "npm run build",
27
+ "prepublishOnly": "npm run lint:check && npm test"
26
28
  },
27
29
  "dependencies": {
28
30
  "@modelcontextprotocol/sdk": "^1.12.1",
@@ -39,5 +41,5 @@
39
41
  "engines": {
40
42
  "node": ">=22.0.0"
41
43
  },
42
- "files": ["dist"]
44
+ "files": ["dist", ".claude-plugin", ".mcp.json", "skills", "commands", "hooks", "scripts"]
43
45
  }
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env bash
2
+ # All-Agents-MCP: Setup verification script
3
+ # Runs on SessionStart to verify prerequisites
4
+
5
+ set -euo pipefail
6
+
7
+ warnings=()
8
+ info=()
9
+
10
+ # Check Node.js version
11
+ if command -v node &>/dev/null; then
12
+ node_version=$(node -v | sed 's/v//')
13
+ major_version=$(echo "$node_version" | cut -d. -f1)
14
+ if [ "$major_version" -lt 22 ]; then
15
+ warnings+=("Node.js $node_version detected — version 22+ is required for all-agents-mcp")
16
+ fi
17
+ else
18
+ warnings+=("Node.js not found — required for all-agents-mcp MCP server")
19
+ fi
20
+
21
+ # Check AI CLI agents
22
+ agents_found=0
23
+ agent_list=()
24
+
25
+ if command -v codex &>/dev/null; then
26
+ agents_found=$((agents_found + 1))
27
+ agent_list+=("codex")
28
+ fi
29
+
30
+ if command -v gemini &>/dev/null; then
31
+ agents_found=$((agents_found + 1))
32
+ agent_list+=("gemini")
33
+ fi
34
+
35
+ if command -v copilot &>/dev/null; then
36
+ agents_found=$((agents_found + 1))
37
+ agent_list+=("copilot")
38
+ fi
39
+
40
+ if [ "$agents_found" -eq 0 ]; then
41
+ warnings+=("No AI CLI agents found. Install at least one: codex, gemini, or copilot")
42
+ else
43
+ info+=("all-agents-mcp: ${agents_found} agent(s) available — ${agent_list[*]}")
44
+ fi
45
+
46
+ # Output warnings
47
+ for w in "${warnings[@]+"${warnings[@]}"}"; do
48
+ [ -n "$w" ] && echo "[all-agents-mcp] WARNING: $w"
49
+ done
50
+
51
+ # Output info
52
+ for i in "${info[@]+"${info[@]}"}"; do
53
+ [ -n "$i" ] && echo "[all-agents-mcp] $i"
54
+ done
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: aa-fetch
3
+ description: Fetch web page content via Gemini CLI
4
+ argument-hint: <url> [instruction]
5
+ ---
6
+
7
+ # Fetch Page
8
+
9
+ User wants to fetch and extract content from a web URL using Gemini CLI's native browsing capability.
10
+
11
+ ## Instructions
12
+
13
+ 1. Parse the user's input to extract the **URL** and optional **instruction**.
14
+ - The first argument is the URL (must be a valid URL)
15
+ - Everything after the URL is the extraction instruction (optional)
16
+ - If no URL is provided, ask the user for the target URL
17
+
18
+ 2. Call the MCP tool `mcp__all-agents-mcp__fetch_page` with:
19
+ - `url`: the target URL
20
+ - `instruction` (optional): extraction/focus instruction from the user
21
+ - `model` (optional): defaults to `gemini-3-flash-preview` for speed
22
+
23
+ 3. Display the response as-is. The tool returns formatted markdown with the fetched content.
24
+
25
+ ## Examples
26
+
27
+ - `/all-agents-mcp:aa-fetch https://docs.example.com/api`
28
+ - `/all-agents-mcp:aa-fetch https://example.com/pricing extract only the pricing table`
29
+ - `/all-agents-mcp:aa-fetch https://github.com/repo/README.md summarize the key features`
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: agents
3
+ description: Show all AI agents status — availability, health, and configuration
4
+ ---
5
+
6
+ # Agents Status
7
+
8
+ User wants to see the status of all available AI agents.
9
+
10
+ ## Instructions
11
+
12
+ 1. Call both MCP tools in sequence:
13
+
14
+ a. First, call `mcp__all-agents-mcp__list_agents` (no parameters) to get agent list and availability.
15
+
16
+ b. Then, call `mcp__all-agents-mcp__agent_health` (no parameters) to get health status including authentication and latency.
17
+
18
+ 2. Combine and present the results in a unified view showing:
19
+ - Agent name and ID
20
+ - Availability status
21
+ - Authentication status
22
+ - Latency
23
+ - Default model and available model count
24
+
25
+ ## Example
26
+
27
+ - `/all-agents-mcp:agents` — show all agents and their current status
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: ask
3
+ description: Ask a specific AI agent (codex, gemini, copilot) a question
4
+ argument-hint: <agent> <question>
5
+ ---
6
+
7
+ # Ask Agent
8
+
9
+ User wants to ask a specific AI agent a question.
10
+
11
+ ## Instructions
12
+
13
+ 1. Parse the user's input to extract the **agent name** and **question**.
14
+ - The first word after the skill invocation is the agent: `codex`, `gemini`, or `copilot`
15
+ - Everything after the agent name is the question/prompt
16
+ - If no agent is specified, ask the user which agent to use
17
+
18
+ 2. Call the MCP tool `mcp__all-agents-mcp__ask_agent` with:
19
+ - `agent`: the target agent ID (`codex`, `gemini`, or `copilot`)
20
+ - `prompt`: the user's question
21
+ - `model` (optional): if the user specifies a model, pass it
22
+ - `context` (optional): if there's relevant code or context in the conversation, include it
23
+
24
+ 3. Display the response as-is. The tool returns formatted markdown.
25
+
26
+ ## Examples
27
+
28
+ - `/all-agents-mcp:ask codex How do I implement a binary search in Python?`
29
+ - `/all-agents-mcp:ask gemini Explain the difference between async and sync`
30
+ - `/all-agents-mcp:ask copilot Review this function for performance issues`
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: ask-all
3
+ description: Ask all available AI agents the same question in parallel and compare responses
4
+ argument-hint: <question>
5
+ ---
6
+
7
+ # Ask All Agents
8
+
9
+ User wants to get parallel responses from all available AI agents for comparison.
10
+
11
+ ## Instructions
12
+
13
+ 1. Parse the user's input to extract the **question**.
14
+ - Everything after the skill invocation is the question/prompt
15
+ - If no question is provided, ask the user what they want to ask
16
+
17
+ 2. Call the MCP tool `mcp__all-agents-mcp__ask_all` with:
18
+ - `prompt`: the user's question
19
+ - `context` (optional): if there's relevant code or context in the conversation, include it
20
+
21
+ 3. Display the comparison result as-is. The tool returns a formatted markdown comparison table showing each agent's response, duration, and model used.
22
+
23
+ ## Examples
24
+
25
+ - `/all-agents-mcp:ask-all How should I structure a REST API for a todo app?`
26
+ - `/all-agents-mcp:ask-all What's the best way to handle errors in TypeScript?`
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: debug
3
+ description: Debug an error using an external AI agent
4
+ argument-hint: <agent> <error message>
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Debug with Agent
9
+
10
+ User wants to debug an error using an external AI agent.
11
+
12
+ ## Instructions
13
+
14
+ 1. Parse the user's input to extract:
15
+ - **agent**: the agent to use (`codex`, `gemini`, or `copilot`)
16
+ - **error**: the error message or description
17
+ - If no agent is specified, ask the user which agent to use
18
+
19
+ 2. Gather additional context:
20
+ - If there's relevant code in the conversation, include it as `code`
21
+ - If there's a stack trace or logs, include as `context`
22
+
23
+ 3. Call the MCP tool `mcp__all-agents-mcp__debug_with` with:
24
+ - `agent`: target agent ID
25
+ - `error`: the error message
26
+ - `code` (optional): relevant code context
27
+ - `context` (optional): stack trace, logs, or other context
28
+
29
+ 4. Display the debug analysis as-is. The response includes root cause analysis, fix steps, and prevention recommendations.
30
+
31
+ ## Examples
32
+
33
+ - `/all-agents-mcp:debug codex TypeError: Cannot read property 'map' of undefined`
34
+ - `/all-agents-mcp:debug gemini ECONNREFUSED when connecting to database`
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: delegate
3
+ description: Delegate a task with automatic complexity analysis — routes to single or parallel agents
4
+ argument-hint: <task description>
5
+ ---
6
+
7
+ # Delegate Task
8
+
9
+ User wants to delegate a task with automatic complexity-based routing.
10
+
11
+ ## Instructions
12
+
13
+ 1. Parse the user's input to extract the **task description**.
14
+ - Everything after the skill invocation is the task
15
+ - If no task is provided, ask the user what task to delegate
16
+
17
+ 2. Call the MCP tool `mcp__all-agents-mcp__delegate_task` with:
18
+ - `task`: the task description
19
+ - `agent` (optional): if the user specifies a preferred agent, pass it
20
+ - `allowParallel`: default `true` — set to `false` only if the user explicitly asks for single-agent execution
21
+ - `context` (optional): include relevant code or context from the conversation
22
+
23
+ 3. Display the result as-is. The tool automatically:
24
+ - Analyzes task complexity (simple/complex/large)
25
+ - Routes simple/complex tasks to a single agent
26
+ - Splits large tasks across multiple agents in parallel
27
+ - Returns complexity analysis + agent response(s)
28
+
29
+ ## Examples
30
+
31
+ - `/all-agents-mcp:delegate Write unit tests for the authentication module`
32
+ - `/all-agents-mcp:delegate Refactor this class to use dependency injection`
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: review
3
+ description: Request a code review from an external AI agent
4
+ argument-hint: <agent> [focus]
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Code Review
9
+
10
+ User wants an external AI agent to review code.
11
+
12
+ ## Instructions
13
+
14
+ 1. Parse the user's input to extract:
15
+ - **agent**: the agent to use (`codex`, `gemini`, or `copilot`)
16
+ - **focus** (optional): `bugs`, `security`, `performance`, or `clarity`
17
+ - If no agent is specified, ask the user which agent to use
18
+
19
+ 2. Gather the code to review:
20
+ - If the user referenced a specific file, read it and use as the `code` parameter
21
+ - If code was provided inline in the conversation, use that
22
+ - If no code context is available, ask the user what code to review
23
+
24
+ 3. Call the MCP tool `mcp__all-agents-mcp__review_code` with:
25
+ - `agent`: target agent ID
26
+ - `code`: the code content to review
27
+ - `filePath` (optional): the file path for context
28
+ - `focus` (optional): specific review focus area
29
+
30
+ 4. Display the review result as-is.
31
+
32
+ ## Examples
33
+
34
+ - `/all-agents-mcp:review codex security` — review current code with Codex focusing on security
35
+ - `/all-agents-mcp:review gemini` — general review with Gemini