mcp-use 2.0.0-beta.7 → 2.0.0-beta.8

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.
@@ -0,0 +1,38 @@
1
+ // src/completable.ts
2
+ import {
3
+ completable as sdkCompletable
4
+ } from "@modelcontextprotocol/server";
5
+ function createPrefixCompletion(values) {
6
+ const strings = values.map(String);
7
+ return (value) => {
8
+ const prefix = String(value ?? "").toLowerCase();
9
+ return strings.filter(
10
+ (candidate) => candidate.toLowerCase().startsWith(prefix)
11
+ );
12
+ };
13
+ }
14
+ function completable(schema, complete) {
15
+ if (typeof complete === "function") {
16
+ return sdkCompletable(
17
+ schema,
18
+ (value, context) => complete(String(value ?? ""), context)
19
+ );
20
+ }
21
+ return sdkCompletable(schema, createPrefixCompletion(complete));
22
+ }
23
+
24
+ // src/resource-completion.ts
25
+ function normalizeCompletions(completions) {
26
+ const normalized = /* @__PURE__ */ Object.create(null);
27
+ for (const [variable, completer] of Object.entries(completions)) {
28
+ if (completer === void 0) continue;
29
+ normalized[variable] = Array.isArray(completer) ? createPrefixCompletion(completer) : completer;
30
+ }
31
+ return normalized;
32
+ }
33
+
34
+ export {
35
+ completable,
36
+ normalizeCompletions
37
+ };
38
+ //# sourceMappingURL=chunk-KIZ72TIK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/completable.ts","../src/resource-completion.ts"],"sourcesContent":["import {\n completable as sdkCompletable,\n type StandardSchemaV1,\n} from \"@modelcontextprotocol/server\";\n\n/** Context passed to completion callbacks. */\nexport interface CompletionContext {\n /** Other argument values from the same prompt, for contextual suggestions. */\n arguments?: Record<string, unknown>;\n}\n\n/** Callback form: return suggestions for the current (partial) value. */\nexport type CompletionCallback = (\n value: string,\n context?: CompletionContext\n) => string[] | Promise<string[]>;\n\n/**\n * Build the shared case-insensitive prefix completer used by static values.\n *\n * @param values - Values retained in declaration order and stringified once.\n * @returns A callback that filters the values against an untrimmed prefix.\n *\n * @internal\n */\nexport function createPrefixCompletion(\n values: ReadonlyArray<string | number | boolean>\n): (value: unknown) => string[] {\n const strings = values.map(String);\n return (value) => {\n const prefix = String(value ?? \"\").toLowerCase();\n return strings.filter((candidate) =>\n candidate.toLowerCase().startsWith(prefix)\n );\n };\n}\n\n/**\n * Make a schema field completable so clients can request autocomplete\n * suggestions via `completion/complete`.\n *\n * Pass an array of allowed values for case-insensitive prefix matching, or a\n * callback for dynamic/contextual suggestions.\n *\n * Accepts any Standard Schema field ({@link StandardSchemaV1}); zod shown in\n * the example. Apply refinements like `.describe()` to the schema *argument*,\n * not to the completable result: refinements that clone the schema (as zod's\n * do) silently drop the SDK's completion marker. `.optional()` is the one\n * exception — the SDK unwraps optionals when looking for completions.\n *\n * @example\n * ```ts\n * schema: z.object({\n * language: completable(\n * z.string().describe(\"The programming language\"),\n * [\"python\", \"typescript\", \"go\"]\n * ),\n * })\n * ```\n */\nexport function completable<T extends StandardSchemaV1>(\n schema: T,\n complete: ReadonlyArray<string | number | boolean> | CompletionCallback\n): ReturnType<typeof sdkCompletable<T>> {\n if (typeof complete === \"function\") {\n return sdkCompletable(schema, (value, context) =>\n complete(String(value ?? \"\"), context)\n );\n }\n return sdkCompletable(schema, createPrefixCompletion(complete));\n}\n","import type { CompleteResourceTemplateCallback } from \"@modelcontextprotocol/server\";\n\nimport { createPrefixCompletion } from \"./completable.js\";\nimport type { ResourceTemplateCompleter } from \"./resources.js\";\n\n/**\n * Convert public static and callback completions to the SDK callback map.\n *\n * @param completions - Public completion providers keyed by template variable.\n * @returns The callback-only map required by the official SDK.\n *\n * @internal\n */\nexport function normalizeCompletions(\n completions: Readonly<Record<string, ResourceTemplateCompleter | undefined>>\n): Record<string, CompleteResourceTemplateCallback> {\n const normalized = Object.create(null) as Record<\n string,\n CompleteResourceTemplateCallback\n >;\n for (const [variable, completer] of Object.entries(completions)) {\n if (completer === undefined) continue;\n normalized[variable] = Array.isArray(completer)\n ? createPrefixCompletion(completer)\n : (completer as CompleteResourceTemplateCallback);\n }\n return normalized;\n}\n"],"mappings":";AAAA;AAAA,EACE,eAAe;AAAA,OAEV;AAsBA,SAAS,uBACd,QAC8B;AAC9B,QAAM,UAAU,OAAO,IAAI,MAAM;AACjC,SAAO,CAAC,UAAU;AAChB,UAAM,SAAS,OAAO,SAAS,EAAE,EAAE,YAAY;AAC/C,WAAO,QAAQ;AAAA,MAAO,CAAC,cACrB,UAAU,YAAY,EAAE,WAAW,MAAM;AAAA,IAC3C;AAAA,EACF;AACF;AAyBO,SAAS,YACd,QACA,UACsC;AACtC,MAAI,OAAO,aAAa,YAAY;AAClC,WAAO;AAAA,MAAe;AAAA,MAAQ,CAAC,OAAO,YACpC,SAAS,OAAO,SAAS,EAAE,GAAG,OAAO;AAAA,IACvC;AAAA,EACF;AACA,SAAO,eAAe,QAAQ,uBAAuB,QAAQ,CAAC;AAChE;;;ACzDO,SAAS,qBACd,aACkD;AAClD,QAAM,aAAa,uBAAO,OAAO,IAAI;AAIrC,aAAW,CAAC,UAAU,SAAS,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC/D,QAAI,cAAc,OAAW;AAC7B,eAAW,QAAQ,IAAI,MAAM,QAAQ,SAAS,IAC1C,uBAAuB,SAAS,IAC/B;AAAA,EACP;AACA,SAAO;AACT;","names":[]}
@@ -6,6 +6,15 @@ export interface CompletionContext {
6
6
  }
7
7
  /** Callback form: return suggestions for the current (partial) value. */
8
8
  export type CompletionCallback = (value: string, context?: CompletionContext) => string[] | Promise<string[]>;
9
+ /**
10
+ * Build the shared case-insensitive prefix completer used by static values.
11
+ *
12
+ * @param values - Values retained in declaration order and stringified once.
13
+ * @returns A callback that filters the values against an untrimmed prefix.
14
+ *
15
+ * @internal
16
+ */
17
+ export declare function createPrefixCompletion(values: ReadonlyArray<string | number | boolean>): (value: unknown) => string[];
9
18
  /**
10
19
  * Make a schema field completable so clients can request autocomplete
11
20
  * suggestions via `completion/complete`.
@@ -1 +1 @@
1
- {"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../src/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAC7B,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,KACxB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,gBAAgB,EACpD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,kBAAkB,GACtE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAWtC"}
1
+ {"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../src/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAC7B,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,KACxB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAC/C,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EAAE,CAQ9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,gBAAgB,EACpD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,kBAAkB,GACtE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAOtC"}
package/dist/index.d.ts CHANGED
@@ -49,6 +49,6 @@ export type { FromOpenAPIOptions, OpenAPIAuth, OpenAPIDocument, OpenAPIExcludeRu
49
49
  export type { Elicit, ElicitationResult, OAuthAuth, RequestClientContext, RequestContext, } from "./context.js";
50
50
  export type { InferToolInput, InferToolName, InferToolOutput, ToolCallback, ToolDefinition, ToolRef, ToolResult, ToolViewConfig, } from "./tools.js";
51
51
  export type { ExternalViewManifestEntry, InlineViewManifestEntry, UiPermissions, ViewManifestEntry, ViewsManifest, } from "./views/index.js";
52
- export type { InferTemplateParams, ResourceCallback, ResourceDefinition, ResourceTemplateCallback, ResourceTemplateDefinition, TemplateVariableValue, } from "./resources.js";
52
+ export type { InferTemplateParams, ResourceCallback, ResourceDefinition, ResourceTemplateCallback, ResourceTemplateCompleter, ResourceTemplateCompletions, ResourceTemplateDefinition, TemplateVariableValue, } from "./resources.js";
53
53
  export type { InferPromptInput, PromptCallback, PromptDefinition, } from "./prompts.js";
54
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC;;;;;GAKG;AACH,YAAY,EACV,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;GAKG;AACH,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,OAAO,EACP,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC;;;;;GAKG;AACH,YAAY,EACV,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;GAKG;AACH,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,OAAO,EACP,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import {
2
2
  registerOpenAPITools
3
3
  } from "./chunk-AATFAERC.js";
4
+ import {
5
+ completable,
6
+ normalizeCompletions
7
+ } from "./chunk-KIZ72TIK.js";
4
8
  import {
5
9
  synthesizeViewDocument
6
10
  } from "./chunk-STCR3P5O.js";
@@ -1325,8 +1329,10 @@ var MCPServer = class _MCPServer {
1325
1329
  */
1326
1330
  resourceTemplate(definition, callback) {
1327
1331
  this.#assertNotStarted("resourceTemplate", definition.name);
1332
+ const complete = definition.complete === void 0 ? void 0 : normalizeCompletions(definition.complete);
1328
1333
  this.#resourceTemplates.set(definition.name, {
1329
1334
  definition,
1335
+ ...complete !== void 0 && { complete },
1330
1336
  callback
1331
1337
  });
1332
1338
  return this;
@@ -2086,9 +2092,10 @@ var MCPServer = class _MCPServer {
2086
2092
  }
2087
2093
  );
2088
2094
  }
2089
- #registerResourceTemplate(server, { definition, callback }) {
2095
+ #registerResourceTemplate(server, { definition, callback, complete }) {
2090
2096
  const template = new ResourceTemplate(definition.uriTemplate, {
2091
- list: void 0
2097
+ list: void 0,
2098
+ ...complete !== void 0 && { complete }
2092
2099
  });
2093
2100
  server.registerResource(
2094
2101
  definition.name,
@@ -2195,24 +2202,6 @@ import {
2195
2202
  inputResponse as inputResponse2,
2196
2203
  isInputRequiredResult as isInputRequiredResult2
2197
2204
  } from "@modelcontextprotocol/server";
2198
-
2199
- // src/completable.ts
2200
- import {
2201
- completable as sdkCompletable
2202
- } from "@modelcontextprotocol/server";
2203
- function completable(schema, complete) {
2204
- if (typeof complete === "function") {
2205
- return sdkCompletable(
2206
- schema,
2207
- (value, context) => complete(String(value ?? ""), context)
2208
- );
2209
- }
2210
- const values = complete.map(String);
2211
- return sdkCompletable(schema, (value) => {
2212
- const prefix = String(value ?? "").toLowerCase();
2213
- return values.filter((v) => v.toLowerCase().startsWith(prefix));
2214
- });
2215
- }
2216
2205
  export {
2217
2206
  MCPServer,
2218
2207
  acceptedContent,