@boomstream/mcp 0.1.0 → 0.1.1

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.
Files changed (2) hide show
  1. package/README.md +83 -0
  2. package/package.json +3 -2
package/README.md CHANGED
@@ -25,6 +25,31 @@ npm install -g @boomstream/mcp
25
25
  BOOMSTREAM_API_KEY=your-key boomstream-mcp
26
26
  ```
27
27
 
28
+ ## Available tools
29
+
30
+ <!-- TOOLS:BEGIN -->
31
+ | Section | Tools | Description | Examples |
32
+ |---|---:|---|---|
33
+ | media | 5 | Recorded media (VOD): info, create, upload, bulk-info | `boomstream_media_bulkinfo`, `boomstream_media_info` |
34
+ | live | 7 | Live broadcast streams: create, manage, schedule | `boomstream_live_info`, `boomstream_live_list` |
35
+ | ppv | 13 | Pay-per-view subscriptions: create, buyers, media access | `boomstream_ppv_create`, `boomstream_ppv_update` |
36
+ | conference | 9 | Video conference sessions: create, manage, participants | `boomstream_conference_info`, `boomstream_conference_list` |
37
+ | folder | 12 | Folder hierarchy for organizing media assets | `boomstream_folder_media_folder`, `boomstream_folder_media_folder_create` |
38
+ | playlist | 7 | Playlists of media items: create, update, reorder | `boomstream_playlist_create`, `boomstream_playlist_update` |
39
+ | stats | 3 | Viewing statistics per project, target, or session | `boomstream_stats_project`, `boomstream_stats_target` |
40
+ | chat | 5 | Chat settings and messages for broadcasts | `boomstream_chat_init`, `boomstream_chat_info` |
41
+ | screenshot | 4 | Thumbnail and screenshot management for media | `boomstream_screenshot_info`, `boomstream_screenshot_create` |
42
+ | subtitles | 5 | Subtitle tracks: enable, upload, set default | `boomstream_subtitles_enable`, `boomstream_subtitles_info` |
43
+ | timecodes | 3 | Chapter/timecode markers for video navigation | `boomstream_timecodes_info`, `boomstream_timecodes_enable` |
44
+ | webhooks | 6 | Webhook endpoint management: list, create, update, delete | `boomstream_webhooks_list`, `boomstream_webhooks_info` |
45
+ | project | 5 | Project-level settings, users, and configuration | `boomstream_project_create`, `boomstream_project_info` |
46
+ | record_live | 9 | Record-live sessions: create and manage recordings | `boomstream_record_live_info`, `boomstream_record_live_list` |
47
+ | live_ipcamera | 7 | IP camera stream integration for live broadcasts | `boomstream_live_ipcamera_info`, `boomstream_live_ipcamera_list` |
48
+ | general | 1 | General API utilities (server info, capabilities) | `boomstream_general_info` |
49
+ <!-- TOOLS:END -->
50
+
51
+ The full schema is in `schemas/boomstream.json`. Regenerate with `pnpm build-schema`.
52
+
28
53
  ## Claude Desktop
29
54
 
30
55
  Add to your Claude Desktop config file:
@@ -68,6 +93,64 @@ boomstream-mcp --help, -h Show help
68
93
 
69
94
  JSONSchema for each tool is **not hand-written**. The source of truth is the Boomstream API documentation database (`hwdmedia.documents`). The script `scripts/build-schema.mjs` parses the markdown and produces `schemas/boomstream.json` covering all ~100 methods in a single run. The generated file is committed to the repository and shipped in the npm package.
70
95
 
96
+ ## Development
97
+
98
+ ```bash
99
+ pnpm install # install dependencies
100
+ pnpm dev:stdio # run server locally (stdio transport)
101
+ pnpm test # run unit/integration tests (vitest)
102
+ pnpm build-schema # regenerate schemas/boomstream.json from markdown corpus
103
+ pnpm build-readme-tools # regenerate the Available tools table in this README
104
+ pnpm build # TypeScript compile → dist/
105
+ pnpm test:smoke # end-to-end smoke cycle (requires BOOMSTREAM_TEST_API_KEY)
106
+ ```
107
+
108
+ Offline test runs use fixtures in `tests/fixtures/`. To pull a fresh schema from the database, run `pnpm build-schema:db` (requires the `mariadb-mcp` MCP server).
109
+
110
+ To run the smoke cycle you need:
111
+ - `BOOMSTREAM_TEST_API_KEY` — a sandbox project API key. Ask the project owner for a sandbox key, or check the team-shared key in the secrets store. *(Exact source pending security review.)*
112
+ - `BOOMSTREAM_TEST_MEDIA_CODE` — a known media code in that sandbox project.
113
+
114
+ ## Troubleshooting
115
+
116
+ **`BOOMSTREAM_API_KEY` is not set**
117
+
118
+ The server exits immediately with:
119
+ ```
120
+ Error: BOOMSTREAM_API_KEY env required for Phase A
121
+ ```
122
+ Set it before starting:
123
+ ```bash
124
+ BOOMSTREAM_API_KEY=your-key npx -y @boomstream/mcp stdio
125
+ # or in Claude Desktop config under "env": { "BOOMSTREAM_API_KEY": "…" }
126
+ ```
127
+
128
+ **Network timeout or 5xx from `boomstream.com/api/`**
129
+
130
+ The client retries up to 3 times with exponential backoff (100 ms → 400 ms → 1 600 ms). If all attempts fail, the tool returns an error. Check your network connectivity and `boomstream.com` status.
131
+
132
+ **Invalid API key (401/403)**
133
+
134
+ Verify your key in Boomstream project settings → API. Keys are project-scoped; make sure the key matches the project you intend to query.
135
+
136
+ **Claude Desktop doesn't list any Boomstream tools**
137
+
138
+ 1. Check the MCP server logs:
139
+ - macOS: `~/Library/Logs/Claude/mcp*.log`
140
+ - Windows: `%APPDATA%\Claude\logs\`
141
+ 2. Confirm `BOOMSTREAM_API_KEY` is set in the `env` block of your `claude_desktop_config.json`.
142
+ 3. Restart Claude Desktop after any config change.
143
+ 4. Run the server manually to verify it starts without errors:
144
+ ```bash
145
+ BOOMSTREAM_API_KEY=your-key npx -y @boomstream/mcp stdio
146
+ ```
147
+
148
+ ## Roadmap
149
+
150
+ **Phase B — SSE transport** (`mcp.boomstream.com`): hosted remote server compatible with claude.ai and other SSE-capable MCP clients. No local install required; connect by URL. Coming soon.
151
+
152
+ **Phase C — OAuth**: per-user authentication so each Boomstream account holder can connect with their own credentials instead of a shared environment API key. Coming soon.
153
+
71
154
  ## License
72
155
 
73
156
  MIT — see [LICENSE](LICENSE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boomstream/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP server providing Boomstream API as tools for LLM agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,11 +46,12 @@
46
46
  "build-schema": "node scripts/build-schema.mjs",
47
47
  "build-schema:dry": "node scripts/build-schema.mjs --dry-run",
48
48
  "build-schema:db": "node scripts/build-schema.mjs --from-db",
49
+ "build-readme-tools": "node scripts/build-readme-tools.mjs",
49
50
  "dev:stdio": "tsx src/transports/stdio.ts",
50
51
  "dev:sse": "tsx src/transports/sse.ts",
51
52
  "test": "vitest run",
52
53
  "test:watch": "vitest",
53
- "test:smoke": "echo 'TBD: requires BOOMSTREAM_API_KEY'",
54
+ "test:smoke": "vitest run --dir tests/smoke",
54
55
  "lint": "eslint .",
55
56
  "typecheck": "tsc --noEmit"
56
57
  }