@s2-dev/streamstore 0.8.3 → 0.9.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.
Files changed (83) hide show
  1. package/README.md +40 -7
  2. package/bin/mcp-server.js +38 -8
  3. package/bin/mcp-server.js.map +13 -12
  4. package/dist/commonjs/hooks/types.d.ts +1 -1
  5. package/dist/commonjs/hooks/types.d.ts.map +1 -1
  6. package/dist/commonjs/lib/config.d.ts +3 -3
  7. package/dist/commonjs/lib/config.js +3 -3
  8. package/dist/commonjs/lib/security.d.ts +4 -3
  9. package/dist/commonjs/lib/security.d.ts.map +1 -1
  10. package/dist/commonjs/lib/security.js +6 -1
  11. package/dist/commonjs/lib/security.js.map +1 -1
  12. package/dist/commonjs/mcp-server/extensions.d.ts +2 -0
  13. package/dist/commonjs/mcp-server/extensions.d.ts.map +1 -1
  14. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  15. package/dist/commonjs/mcp-server/prompts.d.ts +26 -0
  16. package/dist/commonjs/mcp-server/prompts.d.ts.map +1 -0
  17. package/dist/commonjs/mcp-server/prompts.js +47 -0
  18. package/dist/commonjs/mcp-server/prompts.js.map +1 -0
  19. package/dist/commonjs/mcp-server/resources.d.ts.map +1 -1
  20. package/dist/commonjs/mcp-server/resources.js +1 -0
  21. package/dist/commonjs/mcp-server/resources.js.map +1 -1
  22. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  23. package/dist/commonjs/mcp-server/server.js +4 -2
  24. package/dist/commonjs/mcp-server/server.js.map +1 -1
  25. package/dist/commonjs/mcp-server/tools.d.ts.map +1 -1
  26. package/dist/commonjs/mcp-server/tools.js +1 -0
  27. package/dist/commonjs/mcp-server/tools.js.map +1 -1
  28. package/dist/commonjs/models/components/output.d.ts +18 -13
  29. package/dist/commonjs/models/components/output.d.ts.map +1 -1
  30. package/dist/commonjs/models/components/output.js.map +1 -1
  31. package/dist/commonjs/models/components/readresponse.d.ts +4 -1
  32. package/dist/commonjs/models/components/readresponse.d.ts.map +1 -1
  33. package/dist/commonjs/models/components/readresponse.js.map +1 -1
  34. package/dist/commonjs/models/operations/read.d.ts +10 -2
  35. package/dist/commonjs/models/operations/read.d.ts.map +1 -1
  36. package/dist/commonjs/models/operations/read.js.map +1 -1
  37. package/dist/esm/hooks/types.d.ts +1 -1
  38. package/dist/esm/hooks/types.d.ts.map +1 -1
  39. package/dist/esm/lib/config.d.ts +3 -3
  40. package/dist/esm/lib/config.js +3 -3
  41. package/dist/esm/lib/security.d.ts +4 -3
  42. package/dist/esm/lib/security.d.ts.map +1 -1
  43. package/dist/esm/lib/security.js +6 -1
  44. package/dist/esm/lib/security.js.map +1 -1
  45. package/dist/esm/mcp-server/extensions.d.ts +2 -0
  46. package/dist/esm/mcp-server/extensions.d.ts.map +1 -1
  47. package/dist/esm/mcp-server/mcp-server.js +1 -1
  48. package/dist/esm/mcp-server/prompts.d.ts +26 -0
  49. package/dist/esm/mcp-server/prompts.d.ts.map +1 -0
  50. package/dist/esm/mcp-server/prompts.js +43 -0
  51. package/dist/esm/mcp-server/prompts.js.map +1 -0
  52. package/dist/esm/mcp-server/resources.d.ts.map +1 -1
  53. package/dist/esm/mcp-server/resources.js +1 -0
  54. package/dist/esm/mcp-server/resources.js.map +1 -1
  55. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  56. package/dist/esm/mcp-server/server.js +4 -2
  57. package/dist/esm/mcp-server/server.js.map +1 -1
  58. package/dist/esm/mcp-server/tools.d.ts.map +1 -1
  59. package/dist/esm/mcp-server/tools.js +1 -0
  60. package/dist/esm/mcp-server/tools.js.map +1 -1
  61. package/dist/esm/models/components/output.d.ts +18 -13
  62. package/dist/esm/models/components/output.d.ts.map +1 -1
  63. package/dist/esm/models/components/output.js.map +1 -1
  64. package/dist/esm/models/components/readresponse.d.ts +4 -1
  65. package/dist/esm/models/components/readresponse.d.ts.map +1 -1
  66. package/dist/esm/models/components/readresponse.js.map +1 -1
  67. package/dist/esm/models/operations/read.d.ts +10 -2
  68. package/dist/esm/models/operations/read.d.ts.map +1 -1
  69. package/dist/esm/models/operations/read.js.map +1 -1
  70. package/jsr.json +1 -1
  71. package/package.json +1 -1
  72. package/src/hooks/types.ts +1 -1
  73. package/src/lib/config.ts +3 -3
  74. package/src/lib/security.ts +11 -3
  75. package/src/mcp-server/extensions.ts +4 -0
  76. package/src/mcp-server/mcp-server.ts +1 -1
  77. package/src/mcp-server/prompts.ts +110 -0
  78. package/src/mcp-server/resources.ts +1 -0
  79. package/src/mcp-server/server.ts +4 -2
  80. package/src/mcp-server/tools.ts +1 -0
  81. package/src/models/components/output.ts +18 -13
  82. package/src/models/components/readresponse.ts +4 -1
  83. package/src/models/operations/read.ts +10 -2
package/README.md CHANGED
@@ -82,7 +82,7 @@ yarn add @s2-dev/streamstore zod
82
82
  This SDK is also an installable MCP server where the various SDK methods are
83
83
  exposed as tools that can be invoked by AI applications.
84
84
 
85
- > Node.js v20 or greater is required to run the MCP server.
85
+ > Node.js v20 or greater is required to run the MCP server from npm.
86
86
 
87
87
  <details>
88
88
  <summary>Claude installation steps</summary>
@@ -110,17 +110,50 @@ Add the following server definition to your `claude_desktop_config.json` file:
110
110
  <details>
111
111
  <summary>Cursor installation steps</summary>
112
112
 
113
- Go to `Cursor Settings > Features > MCP Servers > Add new MCP server` and use the following settings:
113
+ Create a `.cursor/mcp.json` file in your project root with the following content:
114
114
 
115
- - Name: S2
116
- - Type: `command`
117
- - Command:
118
- ```sh
119
- npx -y --package @s2-dev/streamstore -- mcp start --bearer-auth ...
115
+ ```json
116
+ {
117
+ "mcpServers": {
118
+ "S2": {
119
+ "command": "npx",
120
+ "args": [
121
+ "-y", "--package", "@s2-dev/streamstore",
122
+ "--",
123
+ "mcp", "start",
124
+ "--bearer-auth", "..."
125
+ ]
126
+ }
127
+ }
128
+ }
120
129
  ```
121
130
 
122
131
  </details>
123
132
 
133
+ You can also run MCP servers as a standalone binary with no additional dependencies. You must pull these binaries from available Github releases:
134
+
135
+ ```bash
136
+ curl -L -o mcp-server \
137
+ https://github.com/{org}/{repo}/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \
138
+ chmod +x mcp-server
139
+ ```
140
+
141
+ If the repo is a private repo you must add your Github PAT to download a release `-H "Authorization: Bearer {GITHUB_PAT}"`.
142
+
143
+
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "Todos": {
148
+ "command": "./DOWNLOAD/PATH/mcp-server",
149
+ "args": [
150
+ "start"
151
+ ]
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
124
157
  For a full list of server arguments, run:
125
158
 
126
159
  ```sh
package/bin/mcp-server.js CHANGED
@@ -34182,9 +34182,9 @@ var init_config = __esm(() => {
34182
34182
  SDK_METADATA = {
34183
34183
  language: "typescript",
34184
34184
  openapiDocVersion: "1.0.0",
34185
- sdkVersion: "0.8.3",
34186
- genVersion: "2.548.6",
34187
- userAgent: "speakeasy-sdk/typescript 0.8.3 2.548.6 1.0.0 @s2-dev/streamstore"
34185
+ sdkVersion: "0.9.0",
34186
+ genVersion: "2.563.0",
34187
+ userAgent: "speakeasy-sdk/typescript 0.9.0 2.563.0 1.0.0 @s2-dev/streamstore"
34188
34188
  };
34189
34189
  });
34190
34190
 
@@ -34985,6 +34985,30 @@ var init_core = __esm(() => {
34985
34985
  };
34986
34986
  });
34987
34987
 
34988
+ // src/mcp-server/prompts.ts
34989
+ function createRegisterPrompt(logger, server, sdk, allowedScopes) {
34990
+ return (prompt) => {
34991
+ const scopes = prompt.scopes ?? [];
34992
+ if (!scopes.every((s) => allowedScopes.has(s))) {
34993
+ return;
34994
+ }
34995
+ if (prompt.args) {
34996
+ if (prompt.description) {
34997
+ server.prompt(prompt.name, prompt.description, prompt.args, async (args, ctx) => prompt.prompt(sdk, args, ctx));
34998
+ } else {
34999
+ server.prompt(prompt.name, prompt.args, async (args, ctx) => prompt.prompt(sdk, args, ctx));
35000
+ }
35001
+ } else {
35002
+ if (prompt.description) {
35003
+ server.prompt(prompt.name, prompt.description, async (ctx) => prompt.prompt(sdk, ctx));
35004
+ } else {
35005
+ server.prompt(prompt.name, async (ctx) => prompt.prompt(sdk, ctx));
35006
+ }
35007
+ }
35008
+ logger.debug("Registered prompt", { name: prompt.name });
35009
+ };
35010
+ }
35011
+
34988
35012
  // src/mcp-server/shared.ts
34989
35013
  async function consumeStream(stream) {
34990
35014
  const reader = stream.getReader();
@@ -35636,6 +35660,9 @@ function resolveSecurity(...options) {
35636
35660
  } else if (o.type === "oauth2:password") {
35637
35661
  return typeof o.value === "string" && !!o.value;
35638
35662
  } else if (o.type === "oauth2:client_credentials") {
35663
+ if (typeof o.value == "string") {
35664
+ return !!o.value;
35665
+ }
35639
35666
  return o.value.clientID != null || o.value.clientSecret != null;
35640
35667
  } else if (typeof o.value === "string") {
35641
35668
  return !!o.value;
@@ -35701,7 +35728,9 @@ function applyBearer(state, spec) {
35701
35728
  if (value.slice(0, 7).toLowerCase() !== "bearer ") {
35702
35729
  value = `Bearer ${value}`;
35703
35730
  }
35704
- state.headers[spec.fieldName] = value;
35731
+ if (spec.fieldName !== undefined) {
35732
+ state.headers[spec.fieldName] = value;
35733
+ }
35705
35734
  }
35706
35735
  function resolveGlobalSecurity(security) {
35707
35736
  return resolveSecurity([
@@ -42302,7 +42331,7 @@ Retrieve a batch of records, or set \`Accept: text/event-stream\` to stream usin
42302
42331
  function createMCPServer(deps) {
42303
42332
  const server = new McpServer({
42304
42333
  name: "S2",
42305
- version: "0.8.3"
42334
+ version: "0.9.0"
42306
42335
  });
42307
42336
  const client = new S2Core({
42308
42337
  bearerAuth: deps.bearerAuth,
@@ -42314,7 +42343,8 @@ function createMCPServer(deps) {
42314
42343
  const tool = createRegisterTool(deps.logger, server, client, scopes, allowedTools);
42315
42344
  const resource = createRegisterResource(deps.logger, server, client, scopes);
42316
42345
  const resourceTemplate = createRegisterResourceTemplate(deps.logger, server, client, scopes);
42317
- const register = { tool, resource, resourceTemplate };
42346
+ const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
42347
+ const register = { tool, resource, resourceTemplate, prompt };
42318
42348
  tool(tool$accountListBasins);
42319
42349
  tool(tool$accountGetBasinConfig);
42320
42350
  tool(tool$accountCreateBasin);
@@ -43538,7 +43568,7 @@ var routes = rn({
43538
43568
  var app = Ve(routes, {
43539
43569
  name: "mcp",
43540
43570
  versionInfo: {
43541
- currentVersion: "0.8.3"
43571
+ currentVersion: "0.9.0"
43542
43572
  }
43543
43573
  });
43544
43574
  _t(app, process3.argv.slice(2), buildContext(process3));
@@ -43546,5 +43576,5 @@ export {
43546
43576
  app
43547
43577
  };
43548
43578
 
43549
- //# debugId=2CFEAFF9CB2E504D64756E2164756E21
43579
+ //# debugId=FBBEE11F84D3BD4364756E2164756E21
43550
43580
  //# sourceMappingURL=mcp-server.js.map