@orq-ai/node 3.2.6 → 3.3.0-rc.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/bin/mcp-server.js +33 -36
- package/bin/mcp-server.js.map +20 -20
- package/jsr.json +1 -1
- package/lib/config.d.ts +3 -3
- package/lib/config.js +3 -3
- package/lib/config.js.map +1 -1
- package/mcp-server/mcp-server.js +1 -1
- package/mcp-server/mcp-server.js.map +1 -1
- package/mcp-server/server.js +1 -1
- package/mcp-server/server.js.map +1 -1
- package/models/operations/bulkcreatedatapoints.js +2 -2
- package/models/operations/createcontact.js +2 -2
- package/models/operations/createdataset.js +2 -2
- package/models/operations/createdatasetitem.js +2 -2
- package/models/operations/fileget.js +2 -2
- package/models/operations/filelist.js +2 -2
- package/models/operations/fileupload.js +2 -2
- package/models/operations/listdatasetdatapoints.js +2 -2
- package/models/operations/listdatasets.js +2 -2
- package/models/operations/retrievedatapoint.js +2 -2
- package/models/operations/retrievedataset.js +2 -2
- package/models/operations/updatedatapoint.js +2 -2
- package/models/operations/updatedataset.js +2 -2
- package/package.json +3 -2
- package/src/lib/config.ts +3 -3
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +1 -1
- package/src/models/operations/bulkcreatedatapoints.ts +2 -2
- package/src/models/operations/createcontact.ts +2 -2
- package/src/models/operations/createdataset.ts +2 -2
- package/src/models/operations/createdatasetitem.ts +2 -2
- package/src/models/operations/fileget.ts +2 -2
- package/src/models/operations/filelist.ts +2 -2
- package/src/models/operations/fileupload.ts +2 -2
- package/src/models/operations/listdatasetdatapoints.ts +2 -2
- package/src/models/operations/listdatasets.ts +2 -2
- package/src/models/operations/retrievedatapoint.ts +2 -2
- package/src/models/operations/retrievedataset.ts +2 -2
- package/src/models/operations/updatedatapoint.ts +2 -2
- package/src/models/operations/updatedataset.ts +2 -2
- package/packages/orq-rc/FUNCTIONS.md +0 -106
- package/packages/orq-rc/README.md +0 -622
- package/packages/orq-rc/RUNTIMES.md +0 -48
- package/packages/orq-rc/docs/sdks/contacts/README.md +0 -84
- package/packages/orq-rc/docs/sdks/datasets/README.md +0 -934
- package/packages/orq-rc/docs/sdks/deployments/README.md +0 -235
- package/packages/orq-rc/docs/sdks/feedback/README.md +0 -92
- package/packages/orq-rc/docs/sdks/files/README.md +0 -305
- package/packages/orq-rc/docs/sdks/metrics/README.md +0 -86
- package/packages/orq-rc/docs/sdks/orq/README.md +0 -10
- package/packages/orq-rc/docs/sdks/prompts/README.md +0 -608
- package/packages/orq-rc/docs/sdks/remoteconfigs/README.md +0 -80
- package/packages/orq-rc/jsr.json +0 -27
- package/packages/orq-rc/package-lock.json +0 -3217
- package/packages/orq-rc/package.json +0 -45
- package/packages/orq-rc/src/core.ts +0 -13
- package/packages/orq-rc/src/funcs/contactsCreate.ts +0 -154
- package/packages/orq-rc/src/funcs/datasetsClear.ts +0 -161
- package/packages/orq-rc/src/funcs/datasetsCreate.ts +0 -159
- package/packages/orq-rc/src/funcs/datasetsCreateDatapoint.ts +0 -161
- package/packages/orq-rc/src/funcs/datasetsCreateDatapoints.ts +0 -165
- package/packages/orq-rc/src/funcs/datasetsDelete.ts +0 -161
- package/packages/orq-rc/src/funcs/datasetsDeleteDatapoint.ts +0 -176
- package/packages/orq-rc/src/funcs/datasetsList.ts +0 -162
- package/packages/orq-rc/src/funcs/datasetsListDatapoints.ts +0 -169
- package/packages/orq-rc/src/funcs/datasetsRetrieve.ts +0 -169
- package/packages/orq-rc/src/funcs/datasetsRetrieveDatapoint.ts +0 -175
- package/packages/orq-rc/src/funcs/datasetsUpdate.ts +0 -170
- package/packages/orq-rc/src/funcs/datasetsUpdateDatapoint.ts +0 -173
- package/packages/orq-rc/src/funcs/deploymentsGetConfig.ts +0 -162
- package/packages/orq-rc/src/funcs/deploymentsInvoke.ts +0 -170
- package/packages/orq-rc/src/funcs/deploymentsList.ts +0 -171
- package/packages/orq-rc/src/funcs/deploymentsMetricsCreate.ts +0 -162
- package/packages/orq-rc/src/funcs/feedbackCreate.ts +0 -154
- package/packages/orq-rc/src/funcs/filesCreate.ts +0 -177
- package/packages/orq-rc/src/funcs/filesDelete.ts +0 -158
- package/packages/orq-rc/src/funcs/filesGet.ts +0 -160
- package/packages/orq-rc/src/funcs/filesList.ts +0 -162
- package/packages/orq-rc/src/funcs/promptsCreate.ts +0 -154
- package/packages/orq-rc/src/funcs/promptsDelete.ts +0 -158
- package/packages/orq-rc/src/funcs/promptsGetVersion.ts +0 -175
- package/packages/orq-rc/src/funcs/promptsList.ts +0 -162
- package/packages/orq-rc/src/funcs/promptsListVersions.ts +0 -168
- package/packages/orq-rc/src/funcs/promptsRetrieve.ts +0 -160
- package/packages/orq-rc/src/funcs/promptsUpdate.ts +0 -167
- package/packages/orq-rc/src/funcs/remoteconfigsRetrieve.ts +0 -155
- package/packages/orq-rc/src/hooks/global.ts +0 -44
- package/packages/orq-rc/src/hooks/hooks.ts +0 -132
- package/packages/orq-rc/src/hooks/index.ts +0 -6
- package/packages/orq-rc/src/hooks/registration.ts +0 -15
- package/packages/orq-rc/src/hooks/types.ts +0 -110
- package/packages/orq-rc/src/index.ts +0 -7
- package/packages/orq-rc/src/lib/base64.ts +0 -37
- package/packages/orq-rc/src/lib/config.ts +0 -70
- package/packages/orq-rc/src/lib/dlv.ts +0 -53
- package/packages/orq-rc/src/lib/encodings.ts +0 -483
- package/packages/orq-rc/src/lib/env.ts +0 -73
- package/packages/orq-rc/src/lib/files.ts +0 -40
- package/packages/orq-rc/src/lib/http.ts +0 -323
- package/packages/orq-rc/src/lib/is-plain-object.ts +0 -43
- package/packages/orq-rc/src/lib/logger.ts +0 -9
- package/packages/orq-rc/src/lib/matchers.ts +0 -322
- package/packages/orq-rc/src/lib/primitives.ts +0 -150
- package/packages/orq-rc/src/lib/retries.ts +0 -218
- package/packages/orq-rc/src/lib/schemas.ts +0 -91
- package/packages/orq-rc/src/lib/sdks.ts +0 -395
- package/packages/orq-rc/src/lib/security.ts +0 -253
- package/packages/orq-rc/src/lib/url.ts +0 -33
- package/packages/orq-rc/src/mcp-server/cli/start/command.ts +0 -125
- package/packages/orq-rc/src/mcp-server/cli/start/impl.ts +0 -140
- package/packages/orq-rc/src/mcp-server/cli.ts +0 -13
- package/packages/orq-rc/src/mcp-server/console-logger.ts +0 -71
- package/packages/orq-rc/src/mcp-server/extensions.ts +0 -17
- package/packages/orq-rc/src/mcp-server/mcp-server.ts +0 -26
- package/packages/orq-rc/src/mcp-server/prompts.ts +0 -110
- package/packages/orq-rc/src/mcp-server/resources.ts +0 -158
- package/packages/orq-rc/src/mcp-server/scopes.ts +0 -7
- package/packages/orq-rc/src/mcp-server/server.ts +0 -123
- package/packages/orq-rc/src/mcp-server/shared.ts +0 -75
- package/packages/orq-rc/src/mcp-server/tools/contactsCreate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsClear.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/datasetsCreate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoint.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoints.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsDelete.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/datasetsDeleteDatapoint.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/datasetsList.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsListDatapoints.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieve.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieveDatapoint.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsUpdate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/datasetsUpdateDatapoint.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/deploymentsGetConfig.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/deploymentsInvoke.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/deploymentsList.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/deploymentsMetricsCreate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/feedbackCreate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/filesCreate.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/filesDelete.ts +0 -33
- package/packages/orq-rc/src/mcp-server/tools/filesGet.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/filesList.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/promptsCreate.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/promptsDelete.ts +0 -33
- package/packages/orq-rc/src/mcp-server/tools/promptsGetVersion.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/promptsList.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/promptsListVersions.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/promptsRetrieve.ts +0 -37
- package/packages/orq-rc/src/mcp-server/tools/promptsUpdate.ts +0 -35
- package/packages/orq-rc/src/mcp-server/tools/remoteconfigsRetrieve.ts +0 -36
- package/packages/orq-rc/src/mcp-server/tools.ts +0 -126
- package/packages/orq-rc/src/models/components/deployments.ts +0 -4164
- package/packages/orq-rc/src/models/components/index.ts +0 -6
- package/packages/orq-rc/src/models/components/security.ts +0 -71
- package/packages/orq-rc/src/models/errors/apierror.ts +0 -27
- package/packages/orq-rc/src/models/errors/getpromptversion.ts +0 -71
- package/packages/orq-rc/src/models/errors/honoapierror.ts +0 -82
- package/packages/orq-rc/src/models/errors/httpclienterrors.ts +0 -62
- package/packages/orq-rc/src/models/errors/index.ts +0 -10
- package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +0 -97
- package/packages/orq-rc/src/models/errors/updateprompt.ts +0 -71
- package/packages/orq-rc/src/models/operations/bulkcreatedatapoints.ts +0 -1816
- package/packages/orq-rc/src/models/operations/cleardataset.ts +0 -75
- package/packages/orq-rc/src/models/operations/createcontact.ts +0 -256
- package/packages/orq-rc/src/models/operations/createdataset.ts +0 -296
- package/packages/orq-rc/src/models/operations/createdatasetitem.ts +0 -1740
- package/packages/orq-rc/src/models/operations/createfeedback.ts +0 -286
- package/packages/orq-rc/src/models/operations/createprompt.ts +0 -3816
- package/packages/orq-rc/src/models/operations/deletedatapoint.ts +0 -81
- package/packages/orq-rc/src/models/operations/deletedataset.ts +0 -75
- package/packages/orq-rc/src/models/operations/deleteprompt.ts +0 -69
- package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +0 -4936
- package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +0 -6090
- package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +0 -1199
- package/packages/orq-rc/src/models/operations/deployments.ts +0 -2194
- package/packages/orq-rc/src/models/operations/filedelete.ts +0 -78
- package/packages/orq-rc/src/models/operations/fileget.ts +0 -223
- package/packages/orq-rc/src/models/operations/filelist.ts +0 -377
- package/packages/orq-rc/src/models/operations/fileupload.ts +0 -324
- package/packages/orq-rc/src/models/operations/getallprompts.ts +0 -2165
- package/packages/orq-rc/src/models/operations/getoneprompt.ts +0 -1989
- package/packages/orq-rc/src/models/operations/getpromptversion.ts +0 -1987
- package/packages/orq-rc/src/models/operations/index.ts +0 -34
- package/packages/orq-rc/src/models/operations/listdatasetdatapoints.ts +0 -1115
- package/packages/orq-rc/src/models/operations/listdatasets.ts +0 -448
- package/packages/orq-rc/src/models/operations/listpromptversions.ts +0 -2163
- package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +0 -190
- package/packages/orq-rc/src/models/operations/retrievedatapoint.ts +0 -924
- package/packages/orq-rc/src/models/operations/retrievedataset.ts +0 -288
- package/packages/orq-rc/src/models/operations/updatedatapoint.ts +0 -1729
- package/packages/orq-rc/src/models/operations/updatedataset.ts +0 -374
- package/packages/orq-rc/src/models/operations/updateprompt.ts +0 -3831
- package/packages/orq-rc/src/sdk/contacts.ts +0 -27
- package/packages/orq-rc/src/sdk/datasets.ts +0 -222
- package/packages/orq-rc/src/sdk/deployments.ts +0 -70
- package/packages/orq-rc/src/sdk/feedback.ts +0 -27
- package/packages/orq-rc/src/sdk/files.ts +0 -78
- package/packages/orq-rc/src/sdk/index.ts +0 -5
- package/packages/orq-rc/src/sdk/metrics.ts +0 -27
- package/packages/orq-rc/src/sdk/prompts.ts +0 -126
- package/packages/orq-rc/src/sdk/remoteconfigs.ts +0 -24
- package/packages/orq-rc/src/sdk/sdk.ts +0 -49
- package/packages/orq-rc/src/types/async.ts +0 -68
- package/packages/orq-rc/src/types/blobs.ts +0 -31
- package/packages/orq-rc/src/types/constdatetime.ts +0 -15
- package/packages/orq-rc/src/types/enums.ts +0 -16
- package/packages/orq-rc/src/types/fp.ts +0 -50
- package/packages/orq-rc/src/types/index.ts +0 -11
- package/packages/orq-rc/src/types/operations.ts +0 -105
- package/packages/orq-rc/src/types/rfcdate.ts +0 -54
- package/packages/orq-rc/src/types/streams.ts +0 -21
- package/packages/orq-rc/tsconfig.json +0 -41
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { buildCommand } from "@stricli/core";
|
|
6
|
-
import { numberParser } from "@stricli/core";
|
|
7
|
-
import * as z from "zod";
|
|
8
|
-
import { consoleLoggerLevels } from "../../console-logger.js";
|
|
9
|
-
import { mcpScopes } from "../../scopes.js";
|
|
10
|
-
|
|
11
|
-
export const startCommand = buildCommand({
|
|
12
|
-
loader: async () => {
|
|
13
|
-
const { main } = await import("./impl.js");
|
|
14
|
-
return main;
|
|
15
|
-
},
|
|
16
|
-
parameters: {
|
|
17
|
-
flags: {
|
|
18
|
-
transport: {
|
|
19
|
-
kind: "enum",
|
|
20
|
-
brief: "The transport to use for communicating with the server",
|
|
21
|
-
default: "stdio",
|
|
22
|
-
values: ["stdio", "sse"],
|
|
23
|
-
},
|
|
24
|
-
port: {
|
|
25
|
-
kind: "parsed",
|
|
26
|
-
brief: "The port to use when the SSE transport is enabled",
|
|
27
|
-
default: "2718",
|
|
28
|
-
parse: (val: string) =>
|
|
29
|
-
z.coerce.number().int().gte(0).lt(65536).parse(val),
|
|
30
|
-
},
|
|
31
|
-
tool: {
|
|
32
|
-
kind: "parsed",
|
|
33
|
-
brief: "Specify tools to mount on the server",
|
|
34
|
-
optional: true,
|
|
35
|
-
variadic: true,
|
|
36
|
-
parse: (value) => {
|
|
37
|
-
return z.string().parse(value);
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
...(mcpScopes.length
|
|
41
|
-
? {
|
|
42
|
-
scope: {
|
|
43
|
-
kind: "enum",
|
|
44
|
-
brief:
|
|
45
|
-
"Mount tools/resources that match given scope (repeatable flag)",
|
|
46
|
-
values: mcpScopes,
|
|
47
|
-
variadic: true,
|
|
48
|
-
optional: true,
|
|
49
|
-
},
|
|
50
|
-
}
|
|
51
|
-
: {}),
|
|
52
|
-
"api-key": {
|
|
53
|
-
kind: "parsed",
|
|
54
|
-
brief: "Sets the apiKey auth field for the API",
|
|
55
|
-
optional: true,
|
|
56
|
-
parse: (value) => {
|
|
57
|
-
return z.string().parse(value);
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
"contact-id": {
|
|
61
|
-
kind: "parsed",
|
|
62
|
-
brief:
|
|
63
|
-
"Allows setting the contactId parameter for all supported operations",
|
|
64
|
-
optional: true,
|
|
65
|
-
parse: (value) => {
|
|
66
|
-
return z.string().parse(value);
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
environment: {
|
|
70
|
-
kind: "parsed",
|
|
71
|
-
brief:
|
|
72
|
-
"Allows setting the environment parameter for all supported operations",
|
|
73
|
-
optional: true,
|
|
74
|
-
parse: (value) => {
|
|
75
|
-
return z.string().parse(value);
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
"server-url": {
|
|
79
|
-
kind: "parsed",
|
|
80
|
-
brief: "Overrides the default server URL used by the SDK",
|
|
81
|
-
optional: true,
|
|
82
|
-
parse: (value) => new URL(value).toString(),
|
|
83
|
-
},
|
|
84
|
-
"server-index": {
|
|
85
|
-
kind: "parsed",
|
|
86
|
-
brief: "Selects a predefined server used by the SDK",
|
|
87
|
-
optional: true,
|
|
88
|
-
parse: numberParser,
|
|
89
|
-
},
|
|
90
|
-
"log-level": {
|
|
91
|
-
kind: "enum",
|
|
92
|
-
brief: "The log level to use for the server",
|
|
93
|
-
default: "info",
|
|
94
|
-
values: consoleLoggerLevels,
|
|
95
|
-
},
|
|
96
|
-
env: {
|
|
97
|
-
kind: "parsed",
|
|
98
|
-
brief: "Environment variables made available to the server",
|
|
99
|
-
optional: true,
|
|
100
|
-
variadic: true,
|
|
101
|
-
parse: (val: string) => {
|
|
102
|
-
const sepIdx = val.indexOf("=");
|
|
103
|
-
if (sepIdx === -1) {
|
|
104
|
-
throw new Error("Invalid environment variable format");
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const key = val.slice(0, sepIdx);
|
|
108
|
-
const value = val.slice(sepIdx + 1);
|
|
109
|
-
|
|
110
|
-
return [
|
|
111
|
-
z.string().nonempty({
|
|
112
|
-
message: "Environment variable key must be a non-empty string",
|
|
113
|
-
}).parse(key),
|
|
114
|
-
z.string().nonempty({
|
|
115
|
-
message: "Environment variable value must be a non-empty string",
|
|
116
|
-
}).parse(value),
|
|
117
|
-
] satisfies [string, string];
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
docs: {
|
|
123
|
-
brief: "Run the Model Context Protocol server",
|
|
124
|
-
},
|
|
125
|
-
});
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
6
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
-
import express from "express";
|
|
8
|
-
import { SDKOptions } from "../../../lib/config.js";
|
|
9
|
-
import { LocalContext } from "../../cli.js";
|
|
10
|
-
import {
|
|
11
|
-
ConsoleLoggerLevel,
|
|
12
|
-
createConsoleLogger,
|
|
13
|
-
} from "../../console-logger.js";
|
|
14
|
-
import { MCPScope } from "../../scopes.js";
|
|
15
|
-
import { createMCPServer } from "../../server.js";
|
|
16
|
-
|
|
17
|
-
interface StartCommandFlags {
|
|
18
|
-
readonly transport: "stdio" | "sse";
|
|
19
|
-
readonly port: number;
|
|
20
|
-
readonly tool?: string[];
|
|
21
|
-
readonly scope?: MCPScope[];
|
|
22
|
-
readonly "api-key"?: string | undefined;
|
|
23
|
-
readonly "contact-id"?: SDKOptions["contactId"] | undefined;
|
|
24
|
-
readonly environment?: SDKOptions["environment"] | undefined;
|
|
25
|
-
readonly "server-url"?: string;
|
|
26
|
-
readonly "server-index"?: SDKOptions["serverIdx"];
|
|
27
|
-
readonly "log-level": ConsoleLoggerLevel;
|
|
28
|
-
readonly env?: [string, string][];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export async function main(this: LocalContext, flags: StartCommandFlags) {
|
|
32
|
-
flags.env?.forEach(([key, value]) => {
|
|
33
|
-
process.env[key] = value;
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
switch (flags.transport) {
|
|
37
|
-
case "stdio":
|
|
38
|
-
await startStdio(flags);
|
|
39
|
-
break;
|
|
40
|
-
case "sse":
|
|
41
|
-
await startSSE(flags);
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
throw new Error(`Invalid transport: ${flags.transport}`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async function startStdio(flags: StartCommandFlags) {
|
|
49
|
-
const logger = createConsoleLogger(flags["log-level"]);
|
|
50
|
-
const transport = new StdioServerTransport();
|
|
51
|
-
const server = createMCPServer({
|
|
52
|
-
logger,
|
|
53
|
-
allowedTools: flags.tool,
|
|
54
|
-
scopes: flags.scope,
|
|
55
|
-
...{ apiKey: flags["api-key"] },
|
|
56
|
-
contactId: flags["contact-id"],
|
|
57
|
-
environment: flags.environment,
|
|
58
|
-
serverURL: flags["server-url"],
|
|
59
|
-
serverIdx: flags["server-index"],
|
|
60
|
-
});
|
|
61
|
-
await server.connect(transport);
|
|
62
|
-
|
|
63
|
-
const abort = async () => {
|
|
64
|
-
await server.close();
|
|
65
|
-
process.exit(0);
|
|
66
|
-
};
|
|
67
|
-
process.on("SIGTERM", abort);
|
|
68
|
-
process.on("SIGINT", abort);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async function startSSE(flags: StartCommandFlags) {
|
|
72
|
-
const logger = createConsoleLogger(flags["log-level"]);
|
|
73
|
-
const app = express();
|
|
74
|
-
const mcpServer = createMCPServer({
|
|
75
|
-
logger,
|
|
76
|
-
allowedTools: flags.tool,
|
|
77
|
-
scopes: flags.scope,
|
|
78
|
-
...{ apiKey: flags["api-key"] },
|
|
79
|
-
contactId: flags["contact-id"],
|
|
80
|
-
environment: flags.environment,
|
|
81
|
-
serverURL: flags["server-url"],
|
|
82
|
-
serverIdx: flags["server-index"],
|
|
83
|
-
});
|
|
84
|
-
let transport: SSEServerTransport | undefined;
|
|
85
|
-
const controller = new AbortController();
|
|
86
|
-
|
|
87
|
-
app.get("/sse", async (_req, res) => {
|
|
88
|
-
transport = new SSEServerTransport("/message", res);
|
|
89
|
-
|
|
90
|
-
await mcpServer.connect(transport);
|
|
91
|
-
|
|
92
|
-
mcpServer.server.onclose = async () => {
|
|
93
|
-
res.end();
|
|
94
|
-
};
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
app.post("/message", async (req, res) => {
|
|
98
|
-
if (!transport) {
|
|
99
|
-
throw new Error("Server transport not initialized");
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
await transport.handlePostMessage(req, res);
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
const httpServer = app.listen(flags.port, "0.0.0.0", () => {
|
|
106
|
-
const ha = httpServer.address();
|
|
107
|
-
const host = typeof ha === "string" ? ha : `${ha?.address}:${ha?.port}`;
|
|
108
|
-
logger.info("MCP HTTP server started", { host });
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
let closing = false;
|
|
112
|
-
controller.signal.addEventListener("abort", async () => {
|
|
113
|
-
if (closing) {
|
|
114
|
-
logger.info("Received second signal. Forcing shutdown.");
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
117
|
-
closing = true;
|
|
118
|
-
|
|
119
|
-
logger.info("Shutting down MCP server");
|
|
120
|
-
|
|
121
|
-
await mcpServer.close();
|
|
122
|
-
|
|
123
|
-
logger.info("Shutting down HTTP server");
|
|
124
|
-
|
|
125
|
-
const timer = setTimeout(() => {
|
|
126
|
-
logger.info("Forcing shutdown");
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}, 5000);
|
|
129
|
-
|
|
130
|
-
httpServer.close(() => {
|
|
131
|
-
clearTimeout(timer);
|
|
132
|
-
logger.info("Graceful shutdown complete");
|
|
133
|
-
process.exit(0);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
const abort = () => controller.abort();
|
|
138
|
-
process.on("SIGTERM", abort);
|
|
139
|
-
process.on("SIGINT", abort);
|
|
140
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { CommandContext, StricliProcess } from "@stricli/core";
|
|
6
|
-
|
|
7
|
-
export interface LocalContext extends CommandContext {
|
|
8
|
-
readonly process: StricliProcess;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function buildContext(process: NodeJS.Process): LocalContext {
|
|
12
|
-
return { process: process as StricliProcess };
|
|
13
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export const consoleLoggerLevels = [
|
|
6
|
-
"debug",
|
|
7
|
-
"warning",
|
|
8
|
-
"info",
|
|
9
|
-
"error",
|
|
10
|
-
] as const;
|
|
11
|
-
|
|
12
|
-
export type ConsoleLoggerLevel = (typeof consoleLoggerLevels)[number];
|
|
13
|
-
|
|
14
|
-
export type ConsoleLogger = {
|
|
15
|
-
[key in ConsoleLoggerLevel]: (
|
|
16
|
-
message: string,
|
|
17
|
-
data?: Record<string, unknown>,
|
|
18
|
-
) => void;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export function createConsoleLogger(level: ConsoleLoggerLevel): ConsoleLogger {
|
|
22
|
-
const min = consoleLoggerLevels.indexOf(level);
|
|
23
|
-
const noop = () => {};
|
|
24
|
-
|
|
25
|
-
const logger: ConsoleLogger = {
|
|
26
|
-
debug: noop,
|
|
27
|
-
warning: noop,
|
|
28
|
-
info: noop,
|
|
29
|
-
error: noop,
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
return consoleLoggerLevels.reduce((logger, level, i) => {
|
|
33
|
-
if (i < min) {
|
|
34
|
-
return logger;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
logger[level] = log.bind(null, level);
|
|
38
|
-
|
|
39
|
-
return logger;
|
|
40
|
-
}, logger);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function log(
|
|
44
|
-
level: ConsoleLoggerLevel,
|
|
45
|
-
message: string,
|
|
46
|
-
data?: Record<string, unknown>,
|
|
47
|
-
) {
|
|
48
|
-
let line = "";
|
|
49
|
-
const allData = [{ msg: message, l: level }, data];
|
|
50
|
-
|
|
51
|
-
for (const ctx of allData) {
|
|
52
|
-
for (const [key, value] of Object.entries(ctx || {})) {
|
|
53
|
-
if (value == null) {
|
|
54
|
-
line += ` ${key}=<${value}>`;
|
|
55
|
-
} else if (typeof value === "function") {
|
|
56
|
-
line += ` ${key}=<function>`;
|
|
57
|
-
} else if (typeof value === "symbol") {
|
|
58
|
-
line += ` ${key}=${value.toString()}`;
|
|
59
|
-
} else if (typeof value === "string") {
|
|
60
|
-
const v = value.search(/\s/g) >= 0 ? JSON.stringify(value) : value;
|
|
61
|
-
line += ` ${key}=${v}`;
|
|
62
|
-
} else if (typeof value !== "object") {
|
|
63
|
-
line += ` ${key}=${value}`;
|
|
64
|
-
} else {
|
|
65
|
-
line += ` ${key}="${JSON.stringify(value)}"`;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
console.error(line);
|
|
71
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { ZodRawShape } from "zod";
|
|
6
|
-
import { PromptArgsRawShape, PromptDefinition } from "./prompts.js";
|
|
7
|
-
import { ResourceDefinition, ResourceTemplateDefinition } from "./resources.js";
|
|
8
|
-
import { ToolDefinition } from "./tools.js";
|
|
9
|
-
|
|
10
|
-
export type Register = {
|
|
11
|
-
tool: <A extends ZodRawShape | undefined>(def: ToolDefinition<A>) => void;
|
|
12
|
-
resource: (def: ResourceDefinition) => void;
|
|
13
|
-
resourceTemplate: (def: ResourceTemplateDefinition) => void;
|
|
14
|
-
prompt: <A extends PromptArgsRawShape | undefined>(
|
|
15
|
-
prompt: PromptDefinition<A>,
|
|
16
|
-
) => void;
|
|
17
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { buildApplication, buildRouteMap, run } from "@stricli/core";
|
|
6
|
-
import process from "node:process";
|
|
7
|
-
import { buildContext } from "./cli.js";
|
|
8
|
-
import { startCommand } from "./cli/start/command.js";
|
|
9
|
-
|
|
10
|
-
const routes = buildRouteMap({
|
|
11
|
-
routes: {
|
|
12
|
-
start: startCommand,
|
|
13
|
-
},
|
|
14
|
-
docs: {
|
|
15
|
-
brief: "MCP server CLI",
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export const app = buildApplication(routes, {
|
|
20
|
-
name: "mcp",
|
|
21
|
-
versionInfo: {
|
|
22
|
-
currentVersion: "3.2.0-rc.62",
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
run(app, process.argv.slice(2), buildContext(process));
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
-
import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
7
|
-
import { GetPromptResult } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
-
import {
|
|
9
|
-
objectOutputType,
|
|
10
|
-
ZodOptional,
|
|
11
|
-
ZodType,
|
|
12
|
-
ZodTypeAny,
|
|
13
|
-
ZodTypeDef,
|
|
14
|
-
} from "zod";
|
|
15
|
-
import { OrqCore } from "../core.js";
|
|
16
|
-
import { ConsoleLogger } from "./console-logger.js";
|
|
17
|
-
import { MCPScope } from "./scopes.js";
|
|
18
|
-
|
|
19
|
-
// '@modelcontextprotocol/sdk' currently does not export this type
|
|
20
|
-
export type PromptArgsRawShape = {
|
|
21
|
-
[k: string]:
|
|
22
|
-
| ZodType<string, ZodTypeDef, string>
|
|
23
|
-
| ZodOptional<ZodType<string, ZodTypeDef, string>>;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export type PromptDefinition<
|
|
27
|
-
Args extends undefined | PromptArgsRawShape = undefined,
|
|
28
|
-
> = Args extends PromptArgsRawShape ? {
|
|
29
|
-
name: string;
|
|
30
|
-
description?: string;
|
|
31
|
-
scopes?: MCPScope[];
|
|
32
|
-
args: Args;
|
|
33
|
-
prompt: (
|
|
34
|
-
client: OrqCore,
|
|
35
|
-
args: objectOutputType<Args, ZodTypeAny>,
|
|
36
|
-
extra: RequestHandlerExtra,
|
|
37
|
-
) => GetPromptResult | Promise<GetPromptResult>;
|
|
38
|
-
}
|
|
39
|
-
: {
|
|
40
|
-
name: string;
|
|
41
|
-
description?: string;
|
|
42
|
-
scopes?: MCPScope[];
|
|
43
|
-
args?: undefined;
|
|
44
|
-
prompt: (
|
|
45
|
-
client: OrqCore,
|
|
46
|
-
extra: RequestHandlerExtra,
|
|
47
|
-
) => GetPromptResult | Promise<GetPromptResult>;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// Optional function to assist with formatting prompt results
|
|
51
|
-
export async function formatResult(value: string): Promise<GetPromptResult> {
|
|
52
|
-
return {
|
|
53
|
-
messages: [
|
|
54
|
-
{
|
|
55
|
-
role: "user",
|
|
56
|
-
content: {
|
|
57
|
-
type: "text",
|
|
58
|
-
text: value,
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function createRegisterPrompt(
|
|
66
|
-
logger: ConsoleLogger,
|
|
67
|
-
server: McpServer,
|
|
68
|
-
sdk: OrqCore,
|
|
69
|
-
allowedScopes: Set<MCPScope>,
|
|
70
|
-
): <A extends PromptArgsRawShape | undefined>(
|
|
71
|
-
prompt: PromptDefinition<A>,
|
|
72
|
-
) => void {
|
|
73
|
-
return <A extends PromptArgsRawShape | undefined>(
|
|
74
|
-
prompt: PromptDefinition<A>,
|
|
75
|
-
): void => {
|
|
76
|
-
const scopes = prompt.scopes ?? [];
|
|
77
|
-
if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (prompt.args) {
|
|
82
|
-
if (prompt.description) {
|
|
83
|
-
server.prompt(
|
|
84
|
-
prompt.name,
|
|
85
|
-
prompt.description,
|
|
86
|
-
prompt.args,
|
|
87
|
-
async (args, ctx) => prompt.prompt(sdk, args, ctx),
|
|
88
|
-
);
|
|
89
|
-
} else {
|
|
90
|
-
server.prompt(
|
|
91
|
-
prompt.name,
|
|
92
|
-
prompt.args,
|
|
93
|
-
async (args, ctx) => prompt.prompt(sdk, args, ctx),
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
} else {
|
|
97
|
-
if (prompt.description) {
|
|
98
|
-
server.prompt(
|
|
99
|
-
prompt.name,
|
|
100
|
-
prompt.description,
|
|
101
|
-
async (ctx) => prompt.prompt(sdk, ctx),
|
|
102
|
-
);
|
|
103
|
-
} else {
|
|
104
|
-
server.prompt(prompt.name, async (ctx) => prompt.prompt(sdk, ctx));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
logger.debug("Registered prompt", { name: prompt.name });
|
|
109
|
-
};
|
|
110
|
-
}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
McpServer,
|
|
7
|
-
ResourceMetadata,
|
|
8
|
-
ResourceTemplate,
|
|
9
|
-
} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
10
|
-
import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
11
|
-
import { Variables } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
|
|
12
|
-
import { ReadResourceResult } from "@modelcontextprotocol/sdk/types.js";
|
|
13
|
-
import { OrqCore } from "../core.js";
|
|
14
|
-
import { ConsoleLogger } from "./console-logger.js";
|
|
15
|
-
import { MCPScope } from "./scopes.js";
|
|
16
|
-
import { isAsyncIterable, isBinaryData, valueToBase64 } from "./shared.js";
|
|
17
|
-
|
|
18
|
-
export type ReadResourceCallback = (
|
|
19
|
-
client: OrqCore,
|
|
20
|
-
uri: URL,
|
|
21
|
-
extra: RequestHandlerExtra,
|
|
22
|
-
) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
23
|
-
|
|
24
|
-
export type ResourceDefinition = {
|
|
25
|
-
name: string;
|
|
26
|
-
description?: string;
|
|
27
|
-
metadata?: ResourceMetadata;
|
|
28
|
-
scopes?: MCPScope[];
|
|
29
|
-
resource: string;
|
|
30
|
-
read: ReadResourceCallback;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export type ReadResourceTemplateCallback = (
|
|
34
|
-
client: OrqCore,
|
|
35
|
-
uri: URL,
|
|
36
|
-
vars: Variables,
|
|
37
|
-
extra: RequestHandlerExtra,
|
|
38
|
-
) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
39
|
-
|
|
40
|
-
export type ResourceTemplateDefinition = {
|
|
41
|
-
name: string;
|
|
42
|
-
description: string;
|
|
43
|
-
metadata?: ResourceMetadata;
|
|
44
|
-
scopes?: MCPScope[];
|
|
45
|
-
resource: ResourceTemplate;
|
|
46
|
-
read: ReadResourceTemplateCallback;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// Optional function to assist with formatting resource results
|
|
50
|
-
export async function formatResult(
|
|
51
|
-
value: unknown,
|
|
52
|
-
uri: URL,
|
|
53
|
-
init: { mimeType?: string | undefined; response?: Response | undefined },
|
|
54
|
-
): Promise<ReadResourceResult> {
|
|
55
|
-
if (typeof value === "undefined") {
|
|
56
|
-
return { contents: [] };
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
let contents: ReadResourceResult["contents"] = [];
|
|
60
|
-
|
|
61
|
-
const mimeType = init.mimeType ?? init.response?.headers.get("content-type")
|
|
62
|
-
?? "";
|
|
63
|
-
|
|
64
|
-
if (mimeType.search(/\bjson\b/g) !== -1) {
|
|
65
|
-
contents = [{ uri: uri.toString(), mimeType, text: JSON.stringify(value) }];
|
|
66
|
-
} else if (
|
|
67
|
-
mimeType.startsWith("text/event-stream")
|
|
68
|
-
&& isAsyncIterable(value)
|
|
69
|
-
) {
|
|
70
|
-
contents = [
|
|
71
|
-
{
|
|
72
|
-
uri: uri.toString(),
|
|
73
|
-
mimeType: "application/json",
|
|
74
|
-
text: await stringifySSEToJSON(value),
|
|
75
|
-
},
|
|
76
|
-
];
|
|
77
|
-
} else if (
|
|
78
|
-
(mimeType.startsWith("text/") || mimeType.startsWith("application/"))
|
|
79
|
-
&& typeof value === "string"
|
|
80
|
-
) {
|
|
81
|
-
contents = [{ uri: uri.toString(), mimeType, text: value }];
|
|
82
|
-
} else if (isBinaryData(value)) {
|
|
83
|
-
const blob = await valueToBase64(value);
|
|
84
|
-
contents = blob == null ? [] : [{ uri: uri.toString(), blob, mimeType }];
|
|
85
|
-
} else {
|
|
86
|
-
throw new Error(`Unsupported content type: "${mimeType}"`);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return { contents };
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
async function stringifySSEToJSON(
|
|
93
|
-
value: AsyncIterable<unknown>,
|
|
94
|
-
): Promise<string> {
|
|
95
|
-
const payloads = [];
|
|
96
|
-
|
|
97
|
-
for await (const chunk of value) {
|
|
98
|
-
payloads.push(chunk);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return JSON.stringify(payloads);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export function createRegisterResource(
|
|
105
|
-
logger: ConsoleLogger,
|
|
106
|
-
server: McpServer,
|
|
107
|
-
sdk: OrqCore,
|
|
108
|
-
allowedScopes: Set<MCPScope>,
|
|
109
|
-
): (resource: ResourceDefinition) => void {
|
|
110
|
-
return (resource: ResourceDefinition): void => {
|
|
111
|
-
const scopes = resource.scopes ?? [];
|
|
112
|
-
if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const metadata: ResourceMetadata = {
|
|
117
|
-
...resource.metadata,
|
|
118
|
-
description: resource.description,
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
server.resource(
|
|
122
|
-
resource.name,
|
|
123
|
-
resource.resource,
|
|
124
|
-
metadata,
|
|
125
|
-
async (uri, ctx) => resource.read(sdk, uri, ctx),
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
logger.debug("Registered resource", { name: resource.name });
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export function createRegisterResourceTemplate(
|
|
133
|
-
logger: ConsoleLogger,
|
|
134
|
-
server: McpServer,
|
|
135
|
-
sdk: OrqCore,
|
|
136
|
-
allowedScopes: Set<MCPScope>,
|
|
137
|
-
): (resource: ResourceTemplateDefinition) => void {
|
|
138
|
-
return (resource: ResourceTemplateDefinition): void => {
|
|
139
|
-
const scopes = resource.scopes ?? [];
|
|
140
|
-
if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const metadata: ResourceMetadata = {
|
|
145
|
-
...resource.metadata,
|
|
146
|
-
description: resource.description,
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
server.resource(
|
|
150
|
-
resource.name,
|
|
151
|
-
resource.resource,
|
|
152
|
-
metadata,
|
|
153
|
-
async (uri, vars, ctx) => resource.read(sdk, uri, vars, ctx),
|
|
154
|
-
);
|
|
155
|
-
|
|
156
|
-
logger.debug("Registered resource template", { name: resource.name });
|
|
157
|
-
};
|
|
158
|
-
}
|