@mcp-b/webmcp-ts-sdk 2.0.1 → 2.0.2

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/dist/index.d.ts CHANGED
@@ -36,6 +36,13 @@ declare class BrowserMcpServer extends McpServer {
36
36
  private get _parentTools();
37
37
  private get _parentResources();
38
38
  private get _parentPrompts();
39
+ /**
40
+ * Converts a schema (Zod or plain JSON Schema) to a transport-ready JSON Schema.
41
+ * When `requireObjectType` is true (the default, for inputSchema), empty `{}` schemas
42
+ * are normalized to `{ type: "object", properties: {} }` and schemas missing a root
43
+ * `type` get `type: "object"` prepended — per MCP spec requirements.
44
+ * When false (for outputSchema), no object-type normalization is applied.
45
+ */
39
46
  private toTransportSchema;
40
47
  private isZodSchema;
41
48
  private getNativeToolsApi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/browser-server.ts","../src/no-op-validator.ts","../src/polyfill-validator.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/browser-server.ts","../src/no-op-validator.ts","../src/polyfill-validator.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4435,14 +4435,41 @@ var BrowserMcpServer = class extends McpServer {
4435
4435
  get _parentPrompts() {
4436
4436
  return this._registeredPrompts;
4437
4437
  }
4438
- toTransportSchema(schema) {
4439
- if (!schema || typeof schema !== "object") return DEFAULT_INPUT_SCHEMA;
4438
+ /**
4439
+ * Converts a schema (Zod or plain JSON Schema) to a transport-ready JSON Schema.
4440
+ * When `requireObjectType` is true (the default, for inputSchema), empty `{}` schemas
4441
+ * are normalized to `{ type: "object", properties: {} }` and schemas missing a root
4442
+ * `type` get `type: "object"` prepended — per MCP spec requirements.
4443
+ * When false (for outputSchema), no object-type normalization is applied.
4444
+ */
4445
+ toTransportSchema(schema, requireObjectType = true) {
4446
+ if (!schema || typeof schema !== "object") {
4447
+ if (requireObjectType) {
4448
+ console.warn(`[BrowserMcpServer] toTransportSchema received non-object schema (${typeof schema}), using default`);
4449
+ return DEFAULT_INPUT_SCHEMA;
4450
+ }
4451
+ return {};
4452
+ }
4440
4453
  const normalized = normalizeObjectSchema(schema);
4441
- if (normalized) return toJsonSchemaCompat(normalized, {
4454
+ const jsonSchema = normalized ? toJsonSchemaCompat(normalized, {
4442
4455
  strictUnions: true,
4443
4456
  pipeStrategy: "input"
4444
- });
4445
- return schema;
4457
+ }) : schema;
4458
+ if (Object.keys(jsonSchema).length === 0) {
4459
+ if (requireObjectType) {
4460
+ console.warn("[BrowserMcpServer] toTransportSchema received empty {} schema, normalizing to default object schema");
4461
+ return DEFAULT_INPUT_SCHEMA;
4462
+ }
4463
+ return jsonSchema;
4464
+ }
4465
+ if (requireObjectType && jsonSchema.type === void 0) {
4466
+ console.warn("[BrowserMcpServer] toTransportSchema received schema without root type, prepending type:\"object\"");
4467
+ return {
4468
+ type: "object",
4469
+ ...jsonSchema
4470
+ };
4471
+ }
4472
+ return jsonSchema;
4446
4473
  }
4447
4474
  isZodSchema(schema) {
4448
4475
  if (!schema || typeof schema !== "object") return false;
@@ -4456,10 +4483,7 @@ var BrowserMcpServer = class extends McpServer {
4456
4483
  return candidate;
4457
4484
  }
4458
4485
  registerToolInServer(tool) {
4459
- const inputSchema = tool.inputSchema ? tool.inputSchema.type === void 0 ? {
4460
- type: "object",
4461
- ...tool.inputSchema
4462
- } : tool.inputSchema : DEFAULT_INPUT_SCHEMA;
4486
+ const inputSchema = this.toTransportSchema(tool.inputSchema);
4463
4487
  super.registerTool(tool.name, {
4464
4488
  description: tool.description,
4465
4489
  inputSchema,
@@ -4584,7 +4608,7 @@ var BrowserMcpServer = class extends McpServer {
4584
4608
  description: tool.description ?? "",
4585
4609
  inputSchema: this.toTransportSchema(tool.inputSchema ?? DEFAULT_INPUT_SCHEMA)
4586
4610
  };
4587
- if (tool.outputSchema) item.outputSchema = this.toTransportSchema(tool.outputSchema);
4611
+ if (tool.outputSchema) item.outputSchema = this.toTransportSchema(tool.outputSchema, false);
4588
4612
  if (tool.annotations) item.annotations = tool.annotations;
4589
4613
  return item;
4590
4614
  });