too-many-cooks 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/build/bin/server_node.js +10531 -0
- package/package.json +40 -0
- package/readme.md +120 -0
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "too-many-cooks",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Multi-agent Git coordination MCP server - enables multiple AI agents to safely edit a git repository simultaneously with file locking, messaging, and plan visibility",
|
|
5
|
+
"main": "build/bin/server_node.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"too-many-cooks": "build/bin/server_node.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node build/bin/server_node.js"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"mcp",
|
|
14
|
+
"model-context-protocol",
|
|
15
|
+
"ai-agents",
|
|
16
|
+
"multi-agent",
|
|
17
|
+
"dart"
|
|
18
|
+
],
|
|
19
|
+
"author": "Christian Findlay",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/MelbourneDeveloper/dart_node.git"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/MelbourneDeveloper/dart_node/issues"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/MelbourneDeveloper/dart_node/tree/main/examples/too_many_cooks#readme",
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18.0.0"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"better-sqlite3": "^12.5.0"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"build/bin/server_node.js",
|
|
37
|
+
"README.md",
|
|
38
|
+
"LICENSE"
|
|
39
|
+
]
|
|
40
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Too Many Cooks
|
|
2
|
+
|
|
3
|
+
Multi-agent coordination MCP server - enables multiple AI agents to safely edit a codebase simultaneously.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **File Locking**: Advisory locks prevent agents from editing the same files
|
|
8
|
+
- **Agent Identity**: Secure registration with API keys
|
|
9
|
+
- **Messaging**: Inter-agent communication with broadcast support
|
|
10
|
+
- **Plan Visibility**: Share goals and current tasks across agents
|
|
11
|
+
- **Real-time Status**: System overview of all agents, locks, and plans
|
|
12
|
+
- **Written in Dart**: Made with [dart_node](https://dartnode.org)
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g too-many-cooks
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Usage with Claude Code
|
|
21
|
+
|
|
22
|
+
Add to your Claude Code MCP configuration:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
claude mcp add --transport stdio too-many-cooks -- npx too-many-cooks
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or configure manually in your MCP settings:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"too-many-cooks": {
|
|
34
|
+
"command": "npx",
|
|
35
|
+
"args": ["too-many-cooks"]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## MCP Tools
|
|
42
|
+
|
|
43
|
+
### `register`
|
|
44
|
+
Register a new agent. Returns a secret key - store it!
|
|
45
|
+
```
|
|
46
|
+
Input: { name: string }
|
|
47
|
+
Output: { agent_name, agent_key }
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### `lock`
|
|
51
|
+
Manage file locks.
|
|
52
|
+
```
|
|
53
|
+
Actions: acquire, release, force_release, renew, query, list
|
|
54
|
+
Input: { action, agent_name?, agent_key?, file_path?, reason? }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### `message`
|
|
58
|
+
Send/receive messages between agents.
|
|
59
|
+
```
|
|
60
|
+
Actions: send, get, mark_read
|
|
61
|
+
Input: { action, agent_name, agent_key, to_agent?, content?, message_id? }
|
|
62
|
+
```
|
|
63
|
+
Use `*` as `to_agent` for broadcast.
|
|
64
|
+
|
|
65
|
+
### `plan`
|
|
66
|
+
Share what you're working on.
|
|
67
|
+
```
|
|
68
|
+
Actions: update, get, list
|
|
69
|
+
Input: { action, agent_name?, agent_key?, goal?, current_task? }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### `status`
|
|
73
|
+
Get system overview of all agents, locks, and plans.
|
|
74
|
+
```
|
|
75
|
+
Input: { }
|
|
76
|
+
Output: { agents, locks, plans, messages }
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### `subscribe`
|
|
80
|
+
Subscribe to real-time notifications.
|
|
81
|
+
```
|
|
82
|
+
Actions: subscribe, unsubscribe, list
|
|
83
|
+
Events: agent_registered, lock_acquired, lock_released, message_sent, plan_updated
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Architecture
|
|
87
|
+
|
|
88
|
+
The server uses SQLite for persistent storage at `~/.too_many_cooks/data.db`. All clients connect to the same database ensuring coordination works across multiple agent sessions.
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
92
|
+
│ Claude Code │ │ VSCode Extension│ │ Other Agents │
|
|
93
|
+
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
|
|
94
|
+
│ │ │
|
|
95
|
+
└───────────────────────┼───────────────────────┘
|
|
96
|
+
│
|
|
97
|
+
▼
|
|
98
|
+
┌────────────────────────┐
|
|
99
|
+
│ Too Many Cooks MCP │
|
|
100
|
+
│ Server │
|
|
101
|
+
└───────────┬────────────┘
|
|
102
|
+
│
|
|
103
|
+
▼
|
|
104
|
+
┌────────────────────────┐
|
|
105
|
+
│ ~/.too_many_cooks/ │
|
|
106
|
+
│ data.db │
|
|
107
|
+
└────────────────────────┘
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Workflow Example
|
|
111
|
+
|
|
112
|
+
1. Agent registers: `register({ name: "agent-1" })` -> stores returned key
|
|
113
|
+
2. Agent acquires lock: `lock({ action: "acquire", file_path: "/src/app.ts", agent_name: "agent-1", agent_key: "xxx" })`
|
|
114
|
+
3. Agent updates plan: `plan({ action: "update", goal: "Fix auth bug", current_task: "Reading auth code" })`
|
|
115
|
+
4. Other agents can see the lock and plan via `status()`
|
|
116
|
+
5. Agent releases lock when done: `lock({ action: "release", ... })`
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
MIT
|