@s2-dev/streamstore 0.8.3 → 0.10.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 +40 -7
- package/bin/mcp-server.js +41 -11
- package/bin/mcp-server.js.map +16 -15
- package/dist/commonjs/hooks/types.d.ts +1 -1
- package/dist/commonjs/hooks/types.d.ts.map +1 -1
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.d.ts.map +1 -1
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/lib/config.js.map +1 -1
- package/dist/commonjs/lib/security.d.ts +4 -3
- package/dist/commonjs/lib/security.d.ts.map +1 -1
- package/dist/commonjs/lib/security.js +6 -1
- package/dist/commonjs/lib/security.js.map +1 -1
- package/dist/commonjs/mcp-server/extensions.d.ts +2 -0
- package/dist/commonjs/mcp-server/extensions.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/mcp-server.js +1 -1
- package/dist/commonjs/mcp-server/mcp-server.js.map +1 -1
- package/dist/commonjs/mcp-server/prompts.d.ts +26 -0
- package/dist/commonjs/mcp-server/prompts.d.ts.map +1 -0
- package/dist/commonjs/mcp-server/prompts.js +47 -0
- package/dist/commonjs/mcp-server/prompts.js.map +1 -0
- package/dist/commonjs/mcp-server/resources.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/resources.js +1 -0
- package/dist/commonjs/mcp-server/resources.js.map +1 -1
- package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/server.js +4 -2
- package/dist/commonjs/mcp-server/server.js.map +1 -1
- package/dist/commonjs/mcp-server/tools.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/tools.js +1 -0
- package/dist/commonjs/mcp-server/tools.js.map +1 -1
- package/dist/commonjs/models/components/output.d.ts +18 -13
- package/dist/commonjs/models/components/output.d.ts.map +1 -1
- package/dist/commonjs/models/components/output.js.map +1 -1
- package/dist/commonjs/models/components/readresponse.d.ts +4 -1
- package/dist/commonjs/models/components/readresponse.d.ts.map +1 -1
- package/dist/commonjs/models/components/readresponse.js.map +1 -1
- package/dist/commonjs/models/errors/errorresponse.d.ts.map +1 -1
- package/dist/commonjs/models/errors/errorresponse.js +1 -3
- package/dist/commonjs/models/errors/errorresponse.js.map +1 -1
- package/dist/commonjs/models/errors/notfounderror.d.ts.map +1 -1
- package/dist/commonjs/models/errors/notfounderror.js +1 -3
- package/dist/commonjs/models/errors/notfounderror.js.map +1 -1
- package/dist/commonjs/models/errors/retryableerror.d.ts.map +1 -1
- package/dist/commonjs/models/errors/retryableerror.js +1 -3
- package/dist/commonjs/models/errors/retryableerror.js.map +1 -1
- package/dist/commonjs/models/operations/read.d.ts +10 -2
- package/dist/commonjs/models/operations/read.d.ts.map +1 -1
- package/dist/commonjs/models/operations/read.js.map +1 -1
- package/dist/esm/hooks/types.d.ts +1 -1
- package/dist/esm/hooks/types.d.ts.map +1 -1
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.d.ts.map +1 -1
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/lib/config.js.map +1 -1
- package/dist/esm/lib/security.d.ts +4 -3
- package/dist/esm/lib/security.d.ts.map +1 -1
- package/dist/esm/lib/security.js +6 -1
- package/dist/esm/lib/security.js.map +1 -1
- package/dist/esm/mcp-server/extensions.d.ts +2 -0
- package/dist/esm/mcp-server/extensions.d.ts.map +1 -1
- package/dist/esm/mcp-server/mcp-server.js +1 -1
- package/dist/esm/mcp-server/mcp-server.js.map +1 -1
- package/dist/esm/mcp-server/prompts.d.ts +26 -0
- package/dist/esm/mcp-server/prompts.d.ts.map +1 -0
- package/dist/esm/mcp-server/prompts.js +43 -0
- package/dist/esm/mcp-server/prompts.js.map +1 -0
- package/dist/esm/mcp-server/resources.d.ts.map +1 -1
- package/dist/esm/mcp-server/resources.js +1 -0
- package/dist/esm/mcp-server/resources.js.map +1 -1
- package/dist/esm/mcp-server/server.d.ts.map +1 -1
- package/dist/esm/mcp-server/server.js +4 -2
- package/dist/esm/mcp-server/server.js.map +1 -1
- package/dist/esm/mcp-server/tools.d.ts.map +1 -1
- package/dist/esm/mcp-server/tools.js +1 -0
- package/dist/esm/mcp-server/tools.js.map +1 -1
- package/dist/esm/models/components/output.d.ts +18 -13
- package/dist/esm/models/components/output.d.ts.map +1 -1
- package/dist/esm/models/components/output.js.map +1 -1
- package/dist/esm/models/components/readresponse.d.ts +4 -1
- package/dist/esm/models/components/readresponse.d.ts.map +1 -1
- package/dist/esm/models/components/readresponse.js.map +1 -1
- package/dist/esm/models/errors/errorresponse.d.ts.map +1 -1
- package/dist/esm/models/errors/errorresponse.js +1 -3
- package/dist/esm/models/errors/errorresponse.js.map +1 -1
- package/dist/esm/models/errors/notfounderror.d.ts.map +1 -1
- package/dist/esm/models/errors/notfounderror.js +1 -3
- package/dist/esm/models/errors/notfounderror.js.map +1 -1
- package/dist/esm/models/errors/retryableerror.d.ts.map +1 -1
- package/dist/esm/models/errors/retryableerror.js +1 -3
- package/dist/esm/models/errors/retryableerror.js.map +1 -1
- package/dist/esm/models/operations/read.d.ts +10 -2
- package/dist/esm/models/operations/read.d.ts.map +1 -1
- package/dist/esm/models/operations/read.js.map +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/hooks/types.ts +1 -1
- package/src/lib/config.ts +4 -3
- package/src/lib/security.ts +11 -3
- package/src/mcp-server/extensions.ts +4 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/prompts.ts +110 -0
- package/src/mcp-server/resources.ts +1 -0
- package/src/mcp-server/server.ts +4 -2
- package/src/mcp-server/tools.ts +1 -0
- package/src/models/components/output.ts +18 -13
- package/src/models/components/readresponse.ts +4 -1
- package/src/models/errors/errorresponse.ts +1 -3
- package/src/models/errors/notfounderror.ts +1 -3
- package/src/models/errors/retryableerror.ts +1 -3
- 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
|
-
|
|
113
|
+
Create a `.cursor/mcp.json` file in your project root with the following content:
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
npx
|
|
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.
|
|
34186
|
-
genVersion: "2.
|
|
34187
|
-
userAgent: "speakeasy-sdk/typescript 0.
|
|
34185
|
+
sdkVersion: "0.10.0",
|
|
34186
|
+
genVersion: "2.563.0",
|
|
34187
|
+
userAgent: "speakeasy-sdk/typescript 0.10.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
|
-
|
|
35731
|
+
if (spec.fieldName !== undefined) {
|
|
35732
|
+
state.headers[spec.fieldName] = value;
|
|
35733
|
+
}
|
|
35705
35734
|
}
|
|
35706
35735
|
function resolveGlobalSecurity(security) {
|
|
35707
35736
|
return resolveSecurity([
|
|
@@ -36427,7 +36456,7 @@ var init_errorresponse = __esm(() => {
|
|
|
36427
36456
|
error;
|
|
36428
36457
|
data$;
|
|
36429
36458
|
constructor(err) {
|
|
36430
|
-
const message =
|
|
36459
|
+
const message = err.error || "API error occurred";
|
|
36431
36460
|
super(message);
|
|
36432
36461
|
this.data$ = err;
|
|
36433
36462
|
this.error = err.error;
|
|
@@ -36456,7 +36485,7 @@ var init_notfounderror = __esm(() => {
|
|
|
36456
36485
|
error;
|
|
36457
36486
|
data$;
|
|
36458
36487
|
constructor(err) {
|
|
36459
|
-
const message =
|
|
36488
|
+
const message = err.error || "API error occurred";
|
|
36460
36489
|
super(message);
|
|
36461
36490
|
this.data$ = err;
|
|
36462
36491
|
this.error = err.error;
|
|
@@ -36485,7 +36514,7 @@ var init_retryableerror = __esm(() => {
|
|
|
36485
36514
|
error;
|
|
36486
36515
|
data$;
|
|
36487
36516
|
constructor(err) {
|
|
36488
|
-
const message =
|
|
36517
|
+
const message = err.error || "API error occurred";
|
|
36489
36518
|
super(message);
|
|
36490
36519
|
this.data$ = err;
|
|
36491
36520
|
this.error = err.error;
|
|
@@ -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.
|
|
42334
|
+
version: "0.10.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
|
|
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.
|
|
43571
|
+
currentVersion: "0.10.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=
|
|
43579
|
+
//# debugId=9F91D10D6ABC48EB64756E2164756E21
|
|
43550
43580
|
//# sourceMappingURL=mcp-server.js.map
|