tiny-stdio-mcp-server 0.1.18 → 0.1.19

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 (2) hide show
  1. package/dist/server.js +17 -1
  2. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -115,10 +115,11 @@ export function createServer(options) {
115
115
  }
116
116
  const tool = tools.get(toolName);
117
117
  if (!tool) {
118
+ const availableTools = [...tools.keys()].slice(0, 20);
118
119
  return {
119
120
  error: {
120
121
  code: JSON_RPC_ERROR_CODES.INVALID_PARAMS,
121
- message: `Tool not found: ${toolName}`
122
+ message: `Tool not found: ${toolName}${availableTools.length === 0 ? "" : `. Available: ${availableTools.join(", ")}`}`
122
123
  }
123
124
  };
124
125
  }
@@ -387,6 +388,9 @@ export function createServer(options) {
387
388
  const server = {
388
389
  tool(name, description, inputSchema, handler, outputSchema) {
389
390
  assertNonEmptyName(name, "Tool name required");
391
+ if (tools.has(name)) {
392
+ throw new Error(`Tool already registered: ${name}`);
393
+ }
390
394
  const inputValidator = jsonSchemaValidator.compile(inputSchema);
391
395
  let outputValidator;
392
396
  if (outputSchema !== undefined) {
@@ -406,6 +410,9 @@ export function createServer(options) {
406
410
  },
407
411
  registerTool(definition, handler) {
408
412
  assertNonEmptyName(definition.name, "Tool name required");
413
+ if (tools.has(definition.name)) {
414
+ throw new Error(`Tool already registered: ${definition.name}`);
415
+ }
409
416
  const inputValidator = jsonSchemaValidator.compile(definition.inputSchema);
410
417
  let outputValidator;
411
418
  if (definition.outputSchema !== undefined) {
@@ -422,6 +429,9 @@ export function createServer(options) {
422
429
  },
423
430
  prompt(definition, handler) {
424
431
  assertNonEmptyName(definition.name, "Prompt name required");
432
+ if (prompts.has(definition.name)) {
433
+ throw new Error(`Prompt already registered: ${definition.name}`);
434
+ }
425
435
  prompts.set(definition.name, { ...definition, handler });
426
436
  return server;
427
437
  },
@@ -429,12 +439,18 @@ export function createServer(options) {
429
439
  if (!isValidUri(definition.uri)) {
430
440
  throw new Error(`Invalid resource URI: ${definition.uri}`);
431
441
  }
442
+ if (resources.has(definition.uri)) {
443
+ throw new Error(`Resource already registered: ${definition.uri}`);
444
+ }
432
445
  resources.set(definition.uri, { ...definition, handler });
433
446
  return server;
434
447
  },
435
448
  resourceTemplate(definition, handler) {
436
449
  assertReadableUriTemplate(definition.uriTemplate);
437
450
  new UriTemplate(definition.uriTemplate);
451
+ if (resourceTemplates.has(definition.uriTemplate)) {
452
+ throw new Error(`Resource template already registered: ${definition.uriTemplate}`);
453
+ }
438
454
  resourceTemplates.set(definition.uriTemplate, { ...definition, handler });
439
455
  return server;
440
456
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tiny-stdio-mcp-server",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "bugs": {
5
5
  "url": "https://github.com/poe-platform/poe-code/issues"
6
6
  },