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/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