@schoolai/shipyard-mcp 0.3.2 → 0.4.0-rc.20260126
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 +199 -110
- package/apps/hook/dist/index.cjs +971 -675
- package/apps/server/dist/chunk-6EWQC5VA.js +5690 -0
- package/apps/server/dist/{chunk-EBNL5ZX7.js → chunk-HFZCBGQ3.js} +85 -3
- package/apps/server/dist/index.js +1630 -4579
- package/apps/server/dist/{chunk-GDVRDX7Z.js → input-request-manager-QT4IVCLS.js} +93 -39
- package/apps/server/dist/{session-registry-DMV543RG.js → session-registry-CBDXMXY3.js} +1 -3
- package/package.json +1 -1
- package/apps/server/dist/chunk-GSGLHRWX.js +0 -62
- package/apps/server/dist/chunk-I7UCM5RO.js +0 -3427
- package/apps/server/dist/chunk-JSBRDJBE.js +0 -30
- package/apps/server/dist/dist-QXOKL75H.js +0 -451
- package/apps/server/dist/input-request-manager-IF6M76G4.js +0 -9
package/README.md
CHANGED
|
@@ -1,139 +1,193 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="apps/web/public/icon.svg" alt="Shipyard Logo" width="120" height="120">
|
|
3
3
|
<h1>Shipyard</h1>
|
|
4
|
-
<p><strong>
|
|
4
|
+
<p><strong>Ship responsibly.</strong></p>
|
|
5
|
+
<p>Human-agent collaboration with receipts.</p>
|
|
5
6
|
|
|
6
7
|
<p>
|
|
7
8
|
<a href="https://github.com/SchoolAI/shipyard/actions"><img src="https://img.shields.io/github/actions/workflow/status/SchoolAI/shipyard/deploy.yml?branch=main&label=deploy" alt="Deploy Status"></a>
|
|
8
|
-
<img src="https://img.shields.io/
|
|
9
|
-
<img src="https://img.shields.io/badge/pnpm-10.x-F69220?logo=pnpm&logoColor=white" alt="pnpm">
|
|
9
|
+
<a href="https://www.npmjs.com/package/@schoolai/shipyard-mcp"><img src="https://img.shields.io/npm/v/@schoolai/shipyard-mcp" alt="npm version"></a>
|
|
10
10
|
<a href="./LICENSE.md"><img src="https://img.shields.io/badge/license-FSL--1.1-blue" alt="License"></a>
|
|
11
|
+
<a href="https://github.com/SchoolAI/shipyard/discussions"><img src="https://img.shields.io/github/discussions/SchoolAI/shipyard" alt="Discussions"></a>
|
|
11
12
|
</p>
|
|
12
13
|
</div>
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
17
|
+
<div align="center">
|
|
18
|
+
<img src="docs/assets/hero-inbox-split.png" alt="Shipyard Inbox with Task Detail" width="800">
|
|
19
|
+
<p><em>Inbox showing tasks needing review with split panel detail view</em></p>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
16
22
|
## The Problem
|
|
17
23
|
|
|
18
|
-
AI agents
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
24
|
+
You're managing multiple AI agents (Claude, Cursor, Devin), but there's no workspace where humans and agents collaborate together:
|
|
25
|
+
- **No verification** — Agent says "done" but you have no proof
|
|
26
|
+
- **No collaboration layer** — Humans review in GitHub, agents work in chat logs
|
|
27
|
+
- **No feedback loop** — You approve work, but the agent never sees it
|
|
22
28
|
|
|
23
|
-
Shipyard
|
|
29
|
+
Shipyard is the collaboration workspace for mixed human-agent teams. Agents create tasks with proof. Humans review in real-time. Feedback flows both ways.
|
|
24
30
|
|
|
25
|
-
##
|
|
31
|
+
## Why Shipyard
|
|
26
32
|
|
|
27
|
-
- **
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
- **Zero infrastructure** — GitHub
|
|
31
|
-
- **
|
|
32
|
-
- **Offline-first** — IndexedDB persistence, works without network
|
|
33
|
+
- **Human-agent collaboration** — The first workspace designed for mixed teams. Humans and AI agents work together with structured feedback loops.
|
|
34
|
+
- **Built for mixed teams** — Not a human tool with AI bolted on, or an AI tool ignoring humans. Designed for how agents and humans actually work together.
|
|
35
|
+
- **Receipts, not promises** — Screenshots, videos, and test results. Not just chat logs claiming work was done.
|
|
36
|
+
- **Zero infrastructure** — Works completely locally. GitHub optional for remote artifact sharing. No paid services, no servers to maintain.
|
|
37
|
+
- **Real-time P2P** — Multiple agents and reviewers sync via WebRTC. Works offline, no central server required.
|
|
33
38
|
|
|
34
|
-
##
|
|
35
|
-
|
|
36
|
-
| Platform | Status | Installation | Notes |
|
|
37
|
-
|----------|--------|--------------|-------|
|
|
38
|
-
| **Claude Code** | ✅ Full support | GitHub plugin | Complete integration with hooks + skills |
|
|
39
|
-
| **OpenCode** | ⚠️ Experimental | npm + config | Native plan mode, testing in progress |
|
|
40
|
-
| **Cursor** | ⚠️ MCP only | npm + config | Works via MCP tools, manual workflow |
|
|
41
|
-
| **Windsurf** | ⚠️ MCP only | npm + config | Works via MCP tools, testing needed |
|
|
42
|
-
| **Devin** | ⚠️ MCP only | npm + config | API-only mode has limitations |
|
|
43
|
-
| **Replit Agent** | ⚠️ MCP only | npm + config | Basic functionality |
|
|
44
|
-
| **GitHub Copilot** | ⚠️ MCP only | npm + config | Basic functionality |
|
|
45
|
-
| **Gemini Code Assist** | ⚠️ MCP only | npm + config | Basic functionality |
|
|
46
|
-
| **Codex (OpenAI)** | ❓ Research needed | TBD | Feature completeness assessment in progress |
|
|
47
|
-
|
|
48
|
-
**Key:** Only Claude Code provides the full experience with automatic plan creation and approval workflows. Other platforms work via manual MCP tool invocation.
|
|
39
|
+
## Get Started
|
|
49
40
|
|
|
50
|
-
|
|
41
|
+
Shipyard is just an MCP server. One command or a simple JSON config—works with all major AI coding tools.
|
|
51
42
|
|
|
52
|
-
|
|
43
|
+
**Prerequisite:** Node.js 22+ ([download](https://nodejs.org/))
|
|
53
44
|
|
|
54
|
-
###
|
|
45
|
+
### Claude Code (Recommended)
|
|
55
46
|
|
|
56
|
-
|
|
47
|
+
Full experience with hooks, skills, and auto-task creation:
|
|
57
48
|
|
|
58
49
|
```bash
|
|
59
50
|
# Step 1: Add the marketplace
|
|
60
|
-
/plugin marketplace add SchoolAI/shipyard
|
|
51
|
+
/plugin marketplace add https://github.com/SchoolAI/shipyard.git
|
|
61
52
|
|
|
62
53
|
# Step 2: Install the plugin
|
|
63
54
|
/plugin install shipyard@schoolai-shipyard
|
|
64
55
|
```
|
|
65
56
|
|
|
66
|
-
|
|
57
|
+
### Cursor
|
|
67
58
|
|
|
68
|
-
|
|
59
|
+
Add to `~/.cursor/mcp.json`:
|
|
69
60
|
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"shipyard": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Codex (OpenAI)
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
Add via CLI:
|
|
74
75
|
|
|
75
76
|
```bash
|
|
76
|
-
|
|
77
|
+
codex mcp add shipyard -- npx -y -p @schoolai/shipyard-mcp@latest mcp-server-shipyard
|
|
77
78
|
```
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
</details>
|
|
81
|
-
|
|
82
|
-
This gives you:
|
|
83
|
-
- ✅ MCP tools for creating and managing plans
|
|
84
|
-
- ✅ Automatic hooks for plan creation workflow
|
|
85
|
-
- ✅ Skills for collaborative planning
|
|
80
|
+
Or add to `~/.codex/config.toml`:
|
|
86
81
|
|
|
87
|
-
|
|
82
|
+
```toml
|
|
83
|
+
[mcp_servers.shipyard]
|
|
84
|
+
command = "npx"
|
|
85
|
+
args = ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
86
|
+
```
|
|
88
87
|
|
|
89
|
-
|
|
88
|
+
### VS Code / GitHub Copilot
|
|
90
89
|
|
|
91
90
|
```bash
|
|
92
|
-
|
|
91
|
+
code --add-mcp '{"name":"shipyard","command":"npx","args":["-y","-p","@schoolai/shipyard-mcp@latest","mcp-server-shipyard"]}'
|
|
93
92
|
```
|
|
94
93
|
|
|
95
|
-
|
|
94
|
+
<details>
|
|
95
|
+
<summary><strong>See all platforms (Claude Desktop, Windsurf, JetBrains, Zed, etc.)</strong></summary>
|
|
96
|
+
|
|
97
|
+
### Claude Desktop
|
|
98
|
+
|
|
99
|
+
Add to your config file:
|
|
100
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
101
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
102
|
+
- Linux: `~/.config/claude/claude_desktop_config.json`
|
|
96
103
|
|
|
97
|
-
**Cursor** (`~/.cursor/mcp.json`):
|
|
98
104
|
```json
|
|
99
105
|
{
|
|
100
106
|
"mcpServers": {
|
|
101
107
|
"shipyard": {
|
|
102
108
|
"command": "npx",
|
|
103
|
-
"args": ["-y", "-p", "@schoolai/shipyard-mcp", "mcp-server-shipyard"]
|
|
109
|
+
"args": ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
104
110
|
}
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
113
|
```
|
|
108
114
|
|
|
109
|
-
|
|
115
|
+
### Windsurf
|
|
116
|
+
|
|
117
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
118
|
+
|
|
110
119
|
```json
|
|
111
120
|
{
|
|
112
|
-
"
|
|
121
|
+
"mcpServers": {
|
|
113
122
|
"shipyard": {
|
|
114
|
-
"command": "npx
|
|
123
|
+
"command": "npx",
|
|
124
|
+
"args": ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
115
125
|
}
|
|
116
126
|
}
|
|
117
127
|
}
|
|
118
128
|
```
|
|
119
129
|
|
|
120
|
-
|
|
130
|
+
### JetBrains IDEs
|
|
121
131
|
|
|
122
|
-
|
|
132
|
+
1. Settings > Tools > AI Assistant > Model Context Protocol (MCP)
|
|
133
|
+
2. Click "Add"
|
|
134
|
+
3. Paste JSON config above
|
|
123
135
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
cd shipyard
|
|
128
|
-
pnpm install
|
|
136
|
+
### Zed
|
|
137
|
+
|
|
138
|
+
Add to `~/.config/zed/settings.json`:
|
|
129
139
|
|
|
130
|
-
|
|
131
|
-
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"context_servers": {
|
|
143
|
+
"shipyard": {
|
|
144
|
+
"command": {
|
|
145
|
+
"path": "npx",
|
|
146
|
+
"args": ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
132
151
|
```
|
|
133
152
|
|
|
134
|
-
|
|
153
|
+
### Continue.dev
|
|
135
154
|
|
|
136
|
-
|
|
155
|
+
Create `.continue/mcpServers/shipyard.yaml`:
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
mcpServers:
|
|
159
|
+
- name: Shipyard
|
|
160
|
+
command: npx
|
|
161
|
+
args: ["-y", "-p", "@schoolai/shipyard-mcp@latest", "mcp-server-shipyard"]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
</details>
|
|
165
|
+
|
|
166
|
+
**[Full installation guide with troubleshooting →](./docs/INSTALLATION.md)**
|
|
167
|
+
|
|
168
|
+
## Platform Support
|
|
169
|
+
|
|
170
|
+
| Platform | Experience |
|
|
171
|
+
|----------|-----------|
|
|
172
|
+
| **Claude Code** | Full integration — hooks, skills, MCP tools, auto-task creation |
|
|
173
|
+
| **Codex, VS Code, Cursor, Windsurf** | MCP tools — manual workflow, full functionality |
|
|
174
|
+
| **Other MCP clients** | Basic — depends on platform capabilities |
|
|
175
|
+
|
|
176
|
+
**[See detailed compatibility matrix →](./docs/INSTALLATION.md#feature-comparison)**
|
|
177
|
+
|
|
178
|
+
<details>
|
|
179
|
+
<summary><strong>Using Shipyard skills on other platforms</strong></summary>
|
|
180
|
+
|
|
181
|
+
Shipyard includes a skill (`skills/shipyard/SKILL.md`) that teaches Claude Code how to use the MCP tools effectively. Other platforms can use this same instruction content through their native mechanisms:
|
|
182
|
+
|
|
183
|
+
- **VS Code / Copilot**: Copy to `.github/skills/shipyard/` (Agent Skills preview)
|
|
184
|
+
- **Cursor**: Create `.cursor/rules/shipyard.mdc` with skill content
|
|
185
|
+
- **Windsurf**: Create `.windsurf/workflows/shipyard-task.md`
|
|
186
|
+
- **JetBrains**: Add to `.junie/guidelines.md`
|
|
187
|
+
|
|
188
|
+
See [skills/shipyard/README.md](./skills/shipyard/README.md) for platform-specific instructions.
|
|
189
|
+
|
|
190
|
+
</details>
|
|
137
191
|
|
|
138
192
|
## How It Works
|
|
139
193
|
|
|
@@ -150,60 +204,101 @@ See **[SETUP.md](./docs/SETUP.md)** for full development setup.
|
|
|
150
204
|
└─────────────────┘ └─────────────────┘
|
|
151
205
|
```
|
|
152
206
|
|
|
153
|
-
1. Agent creates
|
|
154
|
-
2. Reviewers join via shared URL → Real-time P2P sync
|
|
155
|
-
3. Add comments
|
|
156
|
-
4. Agent uploads artifacts (screenshots,
|
|
207
|
+
1. **Agent creates task** via MCP tool → Browser opens automatically
|
|
208
|
+
2. **Reviewers join** via shared URL → Real-time P2P sync
|
|
209
|
+
3. **Add comments**, approve, or request changes → Agent sees feedback
|
|
210
|
+
4. **Agent uploads artifacts** (screenshots, videos) → Stored in GitHub
|
|
211
|
+
5. **Task auto-completes** when all deliverables have receipts (screenshots, videos, test results)
|
|
212
|
+
|
|
213
|
+
## Features
|
|
214
|
+
|
|
215
|
+
- **BlockNote editor** — Notion-like editing with inline comments and threads
|
|
216
|
+
- **Kanban board** — Drag-drop tasks between Draft, Review, In Progress, Done
|
|
217
|
+
- **GitHub artifacts** — Screenshots, videos, test results stored in your repo
|
|
218
|
+
- **Offline-first** — IndexedDB persistence, works without network
|
|
219
|
+
- **Multi-agent** — Multiple Claude Code/Cursor instances can work on same task
|
|
220
|
+
|
|
221
|
+
<details>
|
|
222
|
+
<summary><strong>See more screenshots</strong></summary>
|
|
157
223
|
|
|
158
|
-
|
|
224
|
+
### Kanban Board
|
|
225
|
+
<img src="docs/assets/board-view.png" alt="Kanban board with drag-drop columns" width="600">
|
|
159
226
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
227
|
+
### Full Task Detail
|
|
228
|
+
<img src="docs/assets/task-detail-full.png" alt="Task with deliverables and content" width="600">
|
|
229
|
+
|
|
230
|
+
</details>
|
|
231
|
+
|
|
232
|
+
## Data & Privacy
|
|
233
|
+
|
|
234
|
+
| Data | Where It Lives | Control |
|
|
235
|
+
|------|---------------|---------|
|
|
236
|
+
| Task content | Browser (IndexedDB) + P2P sync | You own it |
|
|
237
|
+
| Artifacts (local) | `~/.shipyard/artifacts/` served via localhost | You own it |
|
|
238
|
+
| Artifacts (shared) | Optional: GitHub (your repo, orphan branch) | You own it |
|
|
239
|
+
| MCP server | Runs locally | Never leaves your machine |
|
|
240
|
+
| URLs | Encoded snapshots | Shareable, regenerable |
|
|
241
|
+
|
|
242
|
+
**No telemetry. No cloud storage. GitHub optional.**
|
|
243
|
+
|
|
244
|
+
Works completely locally. Add GitHub only if you need remote reviewers to access artifacts.
|
|
167
245
|
|
|
168
246
|
## Documentation
|
|
169
247
|
|
|
170
248
|
| Doc | Description |
|
|
171
249
|
|-----|-------------|
|
|
172
|
-
| [
|
|
173
|
-
| [
|
|
174
|
-
| [
|
|
175
|
-
| [
|
|
250
|
+
| **[Installation](./docs/INSTALLATION.md)** | Platform-specific setup guides |
|
|
251
|
+
| **[Setup](./docs/SETUP.md)** | Development setup, troubleshooting |
|
|
252
|
+
| **[Architecture](./docs/architecture.md)** | Data model, sync topology, tech choices |
|
|
253
|
+
| **[Brief](./docs/BRIEF.md)** | 30-second project context |
|
|
176
254
|
|
|
177
|
-
##
|
|
255
|
+
## Architecture
|
|
178
256
|
|
|
179
|
-
|
|
180
|
-
1. **Workspace metaphor** — A shipyard is where work is built
|
|
181
|
-
2. **Dev culture** — "Shipping" is how developers talk about delivering value
|
|
257
|
+
Shipyard is a monorepo with multiple components:
|
|
182
258
|
|
|
183
|
-
|
|
259
|
+
| Component | Description |
|
|
260
|
+
|-----------|-------------|
|
|
261
|
+
| [**MCP Server**](./apps/server) | 12 tools for task creation, artifacts, feedback |
|
|
262
|
+
| [**Web App**](./apps/web) | React + BlockNote editor with Kanban board |
|
|
263
|
+
| [**Schema**](./packages/schema) | Shared Yjs CRDT types and URL encoding |
|
|
264
|
+
| [**WebRTC Signaling**](./apps/signaling) | P2P discovery (Cloudflare Worker) |
|
|
265
|
+
| [**Hooks**](./apps/hook) | Claude Code integration |
|
|
184
266
|
|
|
185
|
-
|
|
267
|
+
**Published package:** [`@schoolai/shipyard-mcp`](https://www.npmjs.com/package/@schoolai/shipyard-mcp) - Includes MCP server + hook
|
|
186
268
|
|
|
187
|
-
##
|
|
269
|
+
## Community
|
|
188
270
|
|
|
189
|
-
|
|
271
|
+
- **[GitHub Discussions](https://github.com/SchoolAI/shipyard/discussions)** — Questions, ideas, show & tell
|
|
272
|
+
- **[GitHub Issues](https://github.com/SchoolAI/shipyard/issues)** — Bug reports, feature requests
|
|
190
273
|
|
|
191
|
-
|
|
192
|
-
skills/shipyard/
|
|
193
|
-
├── SKILL.md # Instructions for Claude
|
|
194
|
-
├── README.md # Setup guide
|
|
195
|
-
└── examples/ # Usage examples
|
|
196
|
-
```
|
|
274
|
+
## Contributing
|
|
197
275
|
|
|
198
|
-
|
|
276
|
+
We value **ideas over implementations**. Please start with discussion:
|
|
199
277
|
|
|
200
|
-
|
|
278
|
+
### How to Contribute
|
|
201
279
|
|
|
202
|
-
|
|
280
|
+
1. **Bug reports** — [Open an issue](https://github.com/SchoolAI/shipyard/issues/new)
|
|
281
|
+
2. **Feature ideas** — [Start a discussion](https://github.com/SchoolAI/shipyard/discussions/new)
|
|
282
|
+
3. **Questions** — [Ask in discussions](https://github.com/SchoolAI/shipyard/discussions)
|
|
203
283
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
284
|
+
### Before Submitting Code
|
|
285
|
+
|
|
286
|
+
Open an issue describing what you want to change and get maintainer approval first. This helps us:
|
|
287
|
+
- Ensure changes align with project direction
|
|
288
|
+
- Avoid duplicate efforts
|
|
289
|
+
- Provide design guidance upfront
|
|
290
|
+
|
|
291
|
+
PRs without a linked, approved issue may be closed.
|
|
292
|
+
|
|
293
|
+
### AI Assistance
|
|
294
|
+
|
|
295
|
+
AI-assisted contributions are welcome. We use AI ourselves. What matters is that **you** understand what you're submitting and can answer questions about it.
|
|
296
|
+
|
|
297
|
+
### Learn the Codebase
|
|
298
|
+
|
|
299
|
+
1. **[Brief](./docs/BRIEF.md)** — 30-second project context
|
|
300
|
+
2. **[Engineering Standards](./docs/engineering-standards.md)** — Code quality expectations
|
|
301
|
+
3. **[Architecture](./docs/architecture.md)** — How it all fits together
|
|
207
302
|
|
|
208
303
|
## License
|
|
209
304
|
|
|
@@ -212,10 +307,4 @@ We welcome contributions! Please read the codebase first:
|
|
|
212
307
|
- **Free** for all non-competing use
|
|
213
308
|
- **Converts to Apache 2.0** automatically in 2 years
|
|
214
309
|
|
|
215
|
-
We chose this to ensure that all core improvements help grow this main repository while keeping it free for developers.
|
|
216
|
-
|
|
217
310
|
---
|
|
218
|
-
|
|
219
|
-
<div align="center">
|
|
220
|
-
<sub>Built with Yjs, BlockNote, and the MCP protocol</sub>
|
|
221
|
-
</div>
|