@schoolai/shipyard-mcp 0.3.2 → 0.4.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/README.md +199 -114
- 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 +1508 -4533
- 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,189 @@
|
|
|
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
|
-
|
|
60
|
-
/plugin marketplace add SchoolAI/shipyard
|
|
61
|
-
|
|
62
|
-
# Step 2: Install the plugin
|
|
63
|
-
/plugin install shipyard@schoolai-shipyard
|
|
50
|
+
/plugin install SchoolAI/shipyard
|
|
64
51
|
```
|
|
65
52
|
|
|
66
|
-
|
|
53
|
+
### Cursor
|
|
67
54
|
|
|
68
|
-
|
|
55
|
+
Add to `~/.cursor/mcp.json`:
|
|
69
56
|
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"shipyard": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Codex (OpenAI)
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
Add via CLI:
|
|
74
71
|
|
|
75
72
|
```bash
|
|
76
|
-
|
|
73
|
+
codex mcp add shipyard -- npx -y @schoolai/shipyard-mcp@latest
|
|
77
74
|
```
|
|
78
75
|
|
|
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
|
|
76
|
+
Or add to `~/.codex/config.toml`:
|
|
86
77
|
|
|
87
|
-
|
|
78
|
+
```toml
|
|
79
|
+
[mcp_servers.shipyard]
|
|
80
|
+
command = "npx"
|
|
81
|
+
args = ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
82
|
+
```
|
|
88
83
|
|
|
89
|
-
|
|
84
|
+
### VS Code / GitHub Copilot
|
|
90
85
|
|
|
91
86
|
```bash
|
|
92
|
-
|
|
87
|
+
code --add-mcp '{"name":"shipyard","command":"npx","args":["-y","@schoolai/shipyard-mcp@latest"]}'
|
|
93
88
|
```
|
|
94
89
|
|
|
95
|
-
|
|
90
|
+
<details>
|
|
91
|
+
<summary><strong>See all platforms (Claude Desktop, Windsurf, JetBrains, Zed, etc.)</strong></summary>
|
|
92
|
+
|
|
93
|
+
### Claude Desktop
|
|
94
|
+
|
|
95
|
+
Add to your config file:
|
|
96
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
97
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
98
|
+
- Linux: `~/.config/claude/claude_desktop_config.json`
|
|
96
99
|
|
|
97
|
-
**Cursor** (`~/.cursor/mcp.json`):
|
|
98
100
|
```json
|
|
99
101
|
{
|
|
100
102
|
"mcpServers": {
|
|
101
103
|
"shipyard": {
|
|
102
104
|
"command": "npx",
|
|
103
|
-
"args": ["-y", "
|
|
105
|
+
"args": ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
104
106
|
}
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
```
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
### Windsurf
|
|
112
|
+
|
|
113
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
114
|
+
|
|
110
115
|
```json
|
|
111
116
|
{
|
|
112
|
-
"
|
|
117
|
+
"mcpServers": {
|
|
113
118
|
"shipyard": {
|
|
114
|
-
"command": "npx
|
|
119
|
+
"command": "npx",
|
|
120
|
+
"args": ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
115
121
|
}
|
|
116
122
|
}
|
|
117
123
|
}
|
|
118
124
|
```
|
|
119
125
|
|
|
120
|
-
|
|
126
|
+
### JetBrains IDEs
|
|
121
127
|
|
|
122
|
-
|
|
128
|
+
1. Settings > Tools > AI Assistant > Model Context Protocol (MCP)
|
|
129
|
+
2. Click "Add"
|
|
130
|
+
3. Paste JSON config above
|
|
123
131
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
### Zed
|
|
133
|
+
|
|
134
|
+
Add to `~/.config/zed/settings.json`:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"context_servers": {
|
|
139
|
+
"shipyard": {
|
|
140
|
+
"command": {
|
|
141
|
+
"path": "npx",
|
|
142
|
+
"args": ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
129
148
|
|
|
130
|
-
|
|
131
|
-
|
|
149
|
+
### Continue.dev
|
|
150
|
+
|
|
151
|
+
Create `.continue/mcpServers/shipyard.yaml`:
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
mcpServers:
|
|
155
|
+
- name: Shipyard
|
|
156
|
+
command: npx
|
|
157
|
+
args: ["-y", "@schoolai/shipyard-mcp@latest"]
|
|
132
158
|
```
|
|
133
159
|
|
|
134
|
-
|
|
160
|
+
</details>
|
|
161
|
+
|
|
162
|
+
**[Full installation guide with troubleshooting →](./docs/INSTALLATION.md)**
|
|
163
|
+
|
|
164
|
+
## Platform Support
|
|
165
|
+
|
|
166
|
+
| Platform | Experience |
|
|
167
|
+
|----------|-----------|
|
|
168
|
+
| **Claude Code** | Full integration — hooks, skills, MCP tools, auto-task creation |
|
|
169
|
+
| **Codex, VS Code, Cursor, Windsurf** | MCP tools — manual workflow, full functionality |
|
|
170
|
+
| **Other MCP clients** | Basic — depends on platform capabilities |
|
|
171
|
+
|
|
172
|
+
**[See detailed compatibility matrix →](./docs/INSTALLATION.md#feature-comparison)**
|
|
173
|
+
|
|
174
|
+
<details>
|
|
175
|
+
<summary><strong>Using Shipyard skills on other platforms</strong></summary>
|
|
176
|
+
|
|
177
|
+
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:
|
|
135
178
|
|
|
136
|
-
|
|
179
|
+
- **VS Code / Copilot**: Copy to `.github/skills/shipyard/` (Agent Skills preview)
|
|
180
|
+
- **Cursor**: Create `.cursor/rules/shipyard.mdc` with skill content
|
|
181
|
+
- **Windsurf**: Create `.windsurf/workflows/shipyard-task.md`
|
|
182
|
+
- **JetBrains**: Add to `.junie/guidelines.md`
|
|
183
|
+
|
|
184
|
+
See [skills/shipyard/README.md](./skills/shipyard/README.md) for platform-specific instructions.
|
|
185
|
+
|
|
186
|
+
</details>
|
|
137
187
|
|
|
138
188
|
## How It Works
|
|
139
189
|
|
|
@@ -150,60 +200,101 @@ See **[SETUP.md](./docs/SETUP.md)** for full development setup.
|
|
|
150
200
|
└─────────────────┘ └─────────────────┘
|
|
151
201
|
```
|
|
152
202
|
|
|
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,
|
|
203
|
+
1. **Agent creates task** via MCP tool → Browser opens automatically
|
|
204
|
+
2. **Reviewers join** via shared URL → Real-time P2P sync
|
|
205
|
+
3. **Add comments**, approve, or request changes → Agent sees feedback
|
|
206
|
+
4. **Agent uploads artifacts** (screenshots, videos) → Stored in GitHub
|
|
207
|
+
5. **Task auto-completes** when all deliverables have receipts (screenshots, videos, test results)
|
|
208
|
+
|
|
209
|
+
## Features
|
|
210
|
+
|
|
211
|
+
- **BlockNote editor** — Notion-like editing with inline comments and threads
|
|
212
|
+
- **Kanban board** — Drag-drop tasks between Draft, Review, In Progress, Done
|
|
213
|
+
- **GitHub artifacts** — Screenshots, videos, test results stored in your repo
|
|
214
|
+
- **Offline-first** — IndexedDB persistence, works without network
|
|
215
|
+
- **Multi-agent** — Multiple Claude Code/Cursor instances can work on same task
|
|
216
|
+
|
|
217
|
+
<details>
|
|
218
|
+
<summary><strong>See more screenshots</strong></summary>
|
|
157
219
|
|
|
158
|
-
|
|
220
|
+
### Kanban Board
|
|
221
|
+
<img src="docs/assets/board-view.png" alt="Kanban board with drag-drop columns" width="600">
|
|
159
222
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
223
|
+
### Full Task Detail
|
|
224
|
+
<img src="docs/assets/task-detail-full.png" alt="Task with deliverables and content" width="600">
|
|
225
|
+
|
|
226
|
+
</details>
|
|
227
|
+
|
|
228
|
+
## Data & Privacy
|
|
229
|
+
|
|
230
|
+
| Data | Where It Lives | Control |
|
|
231
|
+
|------|---------------|---------|
|
|
232
|
+
| Task content | Browser (IndexedDB) + P2P sync | You own it |
|
|
233
|
+
| Artifacts (local) | `~/.shipyard/artifacts/` served via localhost | You own it |
|
|
234
|
+
| Artifacts (shared) | Optional: GitHub (your repo, orphan branch) | You own it |
|
|
235
|
+
| MCP server | Runs locally | Never leaves your machine |
|
|
236
|
+
| URLs | Encoded snapshots | Shareable, regenerable |
|
|
237
|
+
|
|
238
|
+
**No telemetry. No cloud storage. GitHub optional.**
|
|
239
|
+
|
|
240
|
+
Works completely locally. Add GitHub only if you need remote reviewers to access artifacts.
|
|
167
241
|
|
|
168
242
|
## Documentation
|
|
169
243
|
|
|
170
244
|
| Doc | Description |
|
|
171
245
|
|-----|-------------|
|
|
172
|
-
| [
|
|
173
|
-
| [
|
|
174
|
-
| [
|
|
175
|
-
| [
|
|
246
|
+
| **[Installation](./docs/INSTALLATION.md)** | Platform-specific setup guides |
|
|
247
|
+
| **[Setup](./docs/SETUP.md)** | Development setup, troubleshooting |
|
|
248
|
+
| **[Architecture](./docs/architecture.md)** | Data model, sync topology, tech choices |
|
|
249
|
+
| **[Brief](./docs/BRIEF.md)** | 30-second project context |
|
|
176
250
|
|
|
177
|
-
##
|
|
251
|
+
## Architecture
|
|
178
252
|
|
|
179
|
-
|
|
180
|
-
1. **Workspace metaphor** — A shipyard is where work is built
|
|
181
|
-
2. **Dev culture** — "Shipping" is how developers talk about delivering value
|
|
253
|
+
Shipyard is a monorepo with multiple components:
|
|
182
254
|
|
|
183
|
-
|
|
255
|
+
| Component | Description |
|
|
256
|
+
|-----------|-------------|
|
|
257
|
+
| [**MCP Server**](./apps/server) | 12 tools for task creation, artifacts, feedback |
|
|
258
|
+
| [**Web App**](./apps/web) | React + BlockNote editor with Kanban board |
|
|
259
|
+
| [**Schema**](./packages/schema) | Shared Yjs CRDT types and URL encoding |
|
|
260
|
+
| [**WebRTC Signaling**](./apps/signaling) | P2P discovery (Cloudflare Worker) |
|
|
261
|
+
| [**Hooks**](./apps/hook) | Claude Code integration |
|
|
184
262
|
|
|
185
|
-
|
|
263
|
+
**Published package:** [`@schoolai/shipyard-mcp`](https://www.npmjs.com/package/@schoolai/shipyard-mcp) - Includes MCP server + hook
|
|
186
264
|
|
|
187
|
-
##
|
|
265
|
+
## Community
|
|
188
266
|
|
|
189
|
-
|
|
267
|
+
- **[GitHub Discussions](https://github.com/SchoolAI/shipyard/discussions)** — Questions, ideas, show & tell
|
|
268
|
+
- **[GitHub Issues](https://github.com/SchoolAI/shipyard/issues)** — Bug reports, feature requests
|
|
190
269
|
|
|
191
|
-
|
|
192
|
-
skills/shipyard/
|
|
193
|
-
├── SKILL.md # Instructions for Claude
|
|
194
|
-
├── README.md # Setup guide
|
|
195
|
-
└── examples/ # Usage examples
|
|
196
|
-
```
|
|
270
|
+
## Contributing
|
|
197
271
|
|
|
198
|
-
|
|
272
|
+
We value **ideas over implementations**. Please start with discussion:
|
|
199
273
|
|
|
200
|
-
|
|
274
|
+
### How to Contribute
|
|
201
275
|
|
|
202
|
-
|
|
276
|
+
1. **Bug reports** — [Open an issue](https://github.com/SchoolAI/shipyard/issues/new)
|
|
277
|
+
2. **Feature ideas** — [Start a discussion](https://github.com/SchoolAI/shipyard/discussions/new)
|
|
278
|
+
3. **Questions** — [Ask in discussions](https://github.com/SchoolAI/shipyard/discussions)
|
|
203
279
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
280
|
+
### Before Submitting Code
|
|
281
|
+
|
|
282
|
+
Open an issue describing what you want to change and get maintainer approval first. This helps us:
|
|
283
|
+
- Ensure changes align with project direction
|
|
284
|
+
- Avoid duplicate efforts
|
|
285
|
+
- Provide design guidance upfront
|
|
286
|
+
|
|
287
|
+
PRs without a linked, approved issue may be closed.
|
|
288
|
+
|
|
289
|
+
### AI Assistance
|
|
290
|
+
|
|
291
|
+
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.
|
|
292
|
+
|
|
293
|
+
### Learn the Codebase
|
|
294
|
+
|
|
295
|
+
1. **[Brief](./docs/BRIEF.md)** — 30-second project context
|
|
296
|
+
2. **[Engineering Standards](./docs/engineering-standards.md)** — Code quality expectations
|
|
297
|
+
3. **[Architecture](./docs/architecture.md)** — How it all fits together
|
|
207
298
|
|
|
208
299
|
## License
|
|
209
300
|
|
|
@@ -212,10 +303,4 @@ We welcome contributions! Please read the codebase first:
|
|
|
212
303
|
- **Free** for all non-competing use
|
|
213
304
|
- **Converts to Apache 2.0** automatically in 2 years
|
|
214
305
|
|
|
215
|
-
We chose this to ensure that all core improvements help grow this main repository while keeping it free for developers.
|
|
216
|
-
|
|
217
306
|
---
|
|
218
|
-
|
|
219
|
-
<div align="center">
|
|
220
|
-
<sub>Built with Yjs, BlockNote, and the MCP protocol</sub>
|
|
221
|
-
</div>
|