@boomstream/mcp 0.2.1 → 0.2.3

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/CHANGELOG.md CHANGED
@@ -6,6 +6,25 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.3] - 2026-06-01
10
+
11
+ ### Fixed
12
+
13
+ - **`serverInfo.version` now reflects the actual package version.** Previously
14
+ hardcoded to `"1.0.0"`; now read from `package.json` at startup so the MCP
15
+ `initialize` handshake (visible in Claude Desktop's «about this server» panel
16
+ and MCP inspector) always matches the published npm version.
17
+
18
+ ## [0.2.2] - 2026-06-01
19
+
20
+ ### Fixed
21
+
22
+ - **Public docs hygiene.** Removed internal issue-tracker references from
23
+ the public-facing CHANGELOG and README, corrected stale version mentions
24
+ in the README, and replaced the broken relative `CHANGELOG.md` link
25
+ (which 404'd on npmjs.com) with inline prose pointing at the bundled
26
+ file.
27
+
9
28
  ## [0.2.1] - 2026-06-01
10
29
 
11
30
  ### Fixed
@@ -20,17 +39,16 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
20
39
  ### Added
21
40
 
22
41
  - **CHANGELOG.md** added to the repository, documenting versions 0.1.0–0.1.2
23
- with full entries. CI tarball now includes CHANGELOG. ([BOO-64])
42
+ with full entries. CI tarball now includes CHANGELOG.
24
43
 
25
44
  ### Changed
26
45
 
27
46
  - **api-client: switched to POST + `Content-Type: application/json` for all
28
47
  tools.** Previously the api-client used GET with query-string parameters for
29
48
  most methods and POST for a small subset. The Boomstream API supports
30
- `POST + JSON body` universally («Режим 2»). All tools now use POST; the GET
31
- branch and `URLSearchParams` are removed entirely. Closes root cause of
32
- [BOO-52] / [BOO-56] (the `RequestURI` redaction is retained as
33
- defence-in-depth). ([BOO-67])
49
+ `POST + JSON body` universally. All tools now use POST; the GET branch and
50
+ `URLSearchParams` are removed entirely. Closes the apikey-in-URL leak surface
51
+ at its root (the `RequestURI` redaction is retained as defence-in-depth).
34
52
  - **apikey removed from URL.** `apikey` is now sent in the JSON request body
35
53
  rather than the URL query string, eliminating it from proxy access-logs,
36
54
  browser history, and server `RequestURI` echo fields.
@@ -42,8 +60,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
42
60
  format from the `Content-Type` header.
43
61
  - **`httpMethod` removed from `schemas/boomstream.json`.** The field was used
44
62
  only by the GET/POST dispatch logic, which no longer exists.
45
- - **README: `BOOMSTREAM_TEST_API_KEY` wording clarified** and `hwdmedia.documents`
46
- database reference removed from docs. ([BOO-50])
63
+ - **README: `BOOMSTREAM_TEST_API_KEY` wording clarified** and internal
64
+ database-source reference removed from docs.
47
65
 
48
66
  ## [0.1.2] - 2026-05-31
49
67
 
@@ -54,7 +72,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
54
72
  responses. The MCP client previously surfaced this field verbatim in tool
55
73
  results. The api-client now drops `RequestURI` from parsed responses and
56
74
  redacts `apikey`/`token`/`signature` from any error message before it reaches
57
- the model. ([BOO-52], [BOO-56])
75
+ the model.
58
76
  - **Tool-result content redaction.** A defence-in-depth pass also scrubs
59
77
  `apikey`, `token`, and `signature` query parameters from any string the
60
78
  server returns to the client — even if the upstream API surfaces them in a
@@ -71,71 +89,47 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
71
89
  ### Added
72
90
 
73
91
  - **CI auto-publish on `v*` tags.** Pushing a tag matching `v\d+.\d+.\d+(-…)?`
74
- to `boomstream-ai/boomstream-mcp` now triggers the `npm-publish` GitLab CI
75
- job, which builds and runs `pnpm publish --access public` against the npm
76
- registry using a protected, masked `NPM_TOKEN`. Tag-pattern `v*` is a
77
- protected tag (Maintainer+ push only). ([BOO-23])
78
- - **Self-hosted GitLab runner** registered for `boomstream-ai/boomstream-mcp`
79
- so the publish job can reach the npm registry. ([BOO-41])
92
+ now triggers the `npm-publish` GitLab CI job, which builds and runs
93
+ `pnpm publish --access public` against the npm registry using a protected,
94
+ masked `NPM_TOKEN`. Tag-pattern `v*` is a protected tag (Maintainer+ push
95
+ only).
96
+ - **Self-hosted CI runner** registered so the publish job can reach the npm
97
+ registry.
80
98
  - README expanded with Available-tools table generator (`pnpm
81
99
  build-readme-tools`), `claude_desktop_config.json` example, and end-to-end
82
- smoke cycle for `media → ppv` flows. ([BOO-18])
100
+ smoke cycle for `media → ppv` flows.
83
101
 
84
102
  ### Changed
85
103
 
86
104
  - **pnpm pinned to 10.34.1** via `packageManager` in `package.json` to match
87
- the Node 20 runtime used in CI and Docker. ([BOO-48])
105
+ the Node 20 runtime used in CI and Docker.
88
106
  - `.gitignore` now excludes `.npmrc` everywhere in the worktree to prevent
89
- accidental token commits during local dev. ([BOO-22])
107
+ accidental token commits during local dev.
90
108
  - Polished `transports/stdio.ts` help text, CI rules guard against fork
91
- pipelines, and added `CODEOWNERS` for security-sensitive files. ([BOO-17])
109
+ pipelines, and added `CODEOWNERS` for security-sensitive files.
92
110
 
93
111
  ## [0.1.0] - 2026-05-29
94
112
 
95
113
  ### Added
96
114
 
97
115
  - **Initial stdio release.** Manual `npm publish @boomstream/mcp@0.1.0`
98
- performed by the Release Engineer following the CSO publish recipe
116
+ performed by the Release Engineer following the publish recipe
99
117
  (env-file-floor `.npmrc` via `NPM_CONFIG_USERCONFIG=$(mktemp)`,
100
- `--access public`). ([BOO-16])
101
- - **101 tools auto-generated** from the Boomstream API documentation corpus
102
- (`hwdmedia.documents`, RU `language_id=1`) covering 17 sections: media,
103
- live, ppv, conference, folder, playlist, stats, chat, screenshot,
104
- subtitles, timecodes, webhooks, project, record-live, live-ipcamera,
105
- player-api, general. Tool naming follows
106
- `boomstream_<section>_<method>` snake_case convention. ([BOO-9])
107
- - **MCP core (Slice 3).** `src/core/server.ts` implements `tools/list` and
118
+ `--access public`).
119
+ - **101 tools auto-generated** from the Boomstream API documentation corpus,
120
+ covering 17 sections: media, live, ppv, conference, folder, playlist,
121
+ stats, chat, screenshot, subtitles, timecodes, webhooks, project,
122
+ record-live, live-ipcamera, player-api, general. Tool naming follows
123
+ `boomstream_<section>_<method>` snake_case convention.
124
+ - **MCP core.** `src/core/server.ts` implements `tools/list` and
108
125
  `tools/call` handlers, `src/core/schema.ts` loads
109
126
  `schemas/boomstream.json` once at boot, `src/core/api-client.ts` is the
110
- fetch wrapper (`format=json`, `ver=1.2` default, exponential-backoff retry
111
- on 5xx, 30 s timeout), `src/core/auth.ts` reads
112
- `BOOMSTREAM_API_KEY` from env (Phase A). `src/tools/registry.ts` is the
113
- single generic handler that dispatches every tool through one
114
- zod-validated path. ([BOO-11])
115
- - **stdio transport (Slice 4).** `src/transports/stdio.ts` is the
116
- `boomstream-mcp` bin entry point, wired through
117
- `StdioServerTransport`. The package ships as a public scoped npm package
118
- with `bin: "dist/transports/stdio.js"`, a post-build shebang/chmod step,
119
- and a CLI surface (`--help`, `--version`, `stdio` subcommand). ([BOO-12])
120
-
121
- [Unreleased]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/compare/v0.2.1...HEAD
122
- [0.2.1]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/compare/v0.2.0...v0.2.1
123
- [0.2.0]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/compare/v0.1.2...v0.2.0
124
- [0.1.2]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/compare/v0.1.1...v0.1.2
125
- [0.1.1]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/compare/v0.1.0...v0.1.1
126
- [0.1.0]: https://gitlab.boomstream.com/boomstream-ai/boomstream-mcp/-/tags/v0.1.0
127
- [BOO-9]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
128
- [BOO-11]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
129
- [BOO-12]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
130
- [BOO-16]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
131
- [BOO-17]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
132
- [BOO-18]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
133
- [BOO-22]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
134
- [BOO-23]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
135
- [BOO-41]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
136
- [BOO-48]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
137
- [BOO-50]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
138
- [BOO-52]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
139
- [BOO-56]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
140
- [BOO-64]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
141
- [BOO-67]: https://gitlab.boomstream.com/boomstream-ai/boomstream-paperclip/-/issues
127
+ fetch wrapper (`ver=1.2` default, exponential-backoff retry on 5xx, 30 s
128
+ timeout), `src/core/auth.ts` reads `BOOMSTREAM_API_KEY` from env (Phase
129
+ A). `src/tools/registry.ts` is the single generic handler that dispatches
130
+ every tool through one zod-validated path.
131
+ - **stdio transport.** `src/transports/stdio.ts` is the `boomstream-mcp`
132
+ bin entry point, wired through `StdioServerTransport`. The package ships
133
+ as a public scoped npm package with `bin: "dist/transports/stdio.js"`, a
134
+ post-build shebang/chmod step, and a CLI surface (`--help`, `--version`,
135
+ `stdio` subcommand).
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  MCP server (Model Context Protocol) providing **Boomstream API as tools** for LLM agents: Claude Desktop, claude.ai, VS Code MCP extension, and any compatible client.
4
4
 
5
- > **Status:** stdio transport is live on npm (`@boomstream/mcp@latest`, currently `0.1.3`). SSE transport (remote hosting at `mcp.boomstream.com`) is the next stage; per-user OAuth comes after that. Release history [CHANGELOG.md](CHANGELOG.md).
5
+ > **Status:** stdio transport is live on npm (`@boomstream/mcp@latest`). SSE transport (remote hosting at `mcp.boomstream.com`) is the next stage; per-user OAuth comes after that. Release history is in the `CHANGELOG.md` file bundled with the npm package.
6
6
 
7
7
  ## What it does
8
8
 
@@ -25,7 +25,7 @@ npm install -g @boomstream/mcp@latest
25
25
  BOOMSTREAM_API_KEY=your-key boomstream-mcp
26
26
  ```
27
27
 
28
- `@latest` always resolves to the newest published version. Pin a specific version (e.g. `@boomstream/mcp@0.1.3`) if you need reproducible installs.
28
+ `@latest` always resolves to the newest published version. Pin a specific version (e.g., `@boomstream/mcp@0.2.1`) if you need reproducible installs.
29
29
 
30
30
  ## Available tools
31
31
 
@@ -149,17 +149,12 @@ Verify your key in Boomstream project settings → API. Keys are project-scoped;
149
149
 
150
150
  ## Releases
151
151
 
152
- Full release notes are in [CHANGELOG.md](CHANGELOG.md). Latest highlights:
153
-
154
- - **0.1.3** api-client switched to `POST + Content-Type: application/json`
155
- for all tools; `apikey` now sent in the JSON body (never in the URL).
156
- Array params sent as real JSON arrays. Closes BOO-52/56 root cause.
157
- - **0.1.2** — security fix: `apikey` is no longer echoed back through
158
- `RequestURI` on error responses; tool-result content is additionally
159
- scrubbed of `apikey`/`token`/`signature` query parameters.
160
- - **0.1.1** — CI auto-publish on `v*` tags, pnpm pinned to 10.34.1.
161
- - **0.1.0** — initial stdio release, 101 tools auto-generated from the
162
- Boomstream API docs corpus.
152
+ Full release notes are in the `CHANGELOG.md` file bundled with the npm
153
+ package. Recent changes include POST+JSON transport (`apikey` sent in the
154
+ request body, never in the URL), defence-in-depth scrubs for
155
+ `apikey`/`token`/`signature` in tool-result content, and automated CI
156
+ publish on `v*` tags. The full release timeline is available via
157
+ `npm view @boomstream/mcp time --json`.
163
158
 
164
159
  GitLab CI publishes to npm automatically when a maintainer pushes a tag of
165
160
  the form `v\d+.\d+.\d+(-…)?` (protected tag, Maintainer+ only). The job
@@ -1,10 +1,12 @@
1
+ import { readFileSync } from 'node:fs';
1
2
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
3
  import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
3
4
  import { loadSchemas } from './schema.js';
4
5
  import { handleToolCall } from '../tools/registry.js';
5
6
  import { defaultAuth } from './auth.js';
7
+ const { version } = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
6
8
  export function createServer(auth = defaultAuth) {
7
- const server = new Server({ name: 'boomstream-mcp', version: '1.0.0' }, { capabilities: { tools: {} } });
9
+ const server = new Server({ name: 'boomstream-mcp', version }, { capabilities: { tools: {} } });
8
10
  server.setRequestHandler(ListToolsRequestSchema, async () => {
9
11
  const schemas = loadSchemas();
10
12
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,MAAM,UAAU,YAAY,CAAC,OAAoB,WAAW;IAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC5C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAEnG,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAoB,WAAW;IAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EACnC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boomstream/mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "MCP server providing Boomstream API as tools for LLM agents",
5
5
  "type": "module",
6
6
  "license": "MIT",