@cyanheads/mcp-ts-core 0.11.3 → 0.11.4

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 (58) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +1 -1
  4. package/changelog/0.11.x/0.11.4.md +67 -0
  5. package/dist/linter/rules/enrichment-rules.d.ts +3 -2
  6. package/dist/linter/rules/enrichment-rules.d.ts.map +1 -1
  7. package/dist/linter/rules/enrichment-rules.js +35 -7
  8. package/dist/linter/rules/enrichment-rules.js.map +1 -1
  9. package/dist/linter/rules/format-parity-rules.d.ts +8 -4
  10. package/dist/linter/rules/format-parity-rules.d.ts.map +1 -1
  11. package/dist/linter/rules/format-parity-rules.js +72 -20
  12. package/dist/linter/rules/format-parity-rules.js.map +1 -1
  13. package/dist/linter/rules/index.d.ts +1 -1
  14. package/dist/linter/rules/index.d.ts.map +1 -1
  15. package/dist/linter/rules/index.js +1 -1
  16. package/dist/linter/rules/index.js.map +1 -1
  17. package/dist/linter/rules/prompt-rules.d.ts.map +1 -1
  18. package/dist/linter/rules/prompt-rules.js +6 -3
  19. package/dist/linter/rules/prompt-rules.js.map +1 -1
  20. package/dist/linter/rules/resource-rules.d.ts.map +1 -1
  21. package/dist/linter/rules/resource-rules.js +11 -5
  22. package/dist/linter/rules/resource-rules.js.map +1 -1
  23. package/dist/linter/rules/schema-rules.d.ts +21 -2
  24. package/dist/linter/rules/schema-rules.d.ts.map +1 -1
  25. package/dist/linter/rules/schema-rules.js +110 -2
  26. package/dist/linter/rules/schema-rules.js.map +1 -1
  27. package/dist/linter/rules/tool-rules.d.ts.map +1 -1
  28. package/dist/linter/rules/tool-rules.js +11 -5
  29. package/dist/linter/rules/tool-rules.js.map +1 -1
  30. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +44 -10
  32. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  33. package/dist/testing/fuzz.d.ts.map +1 -1
  34. package/dist/testing/fuzz.js +57 -2
  35. package/dist/testing/fuzz.js.map +1 -1
  36. package/dist/utils/overflow/outlineOnOverflow.d.ts +4 -3
  37. package/dist/utils/overflow/outlineOnOverflow.d.ts.map +1 -1
  38. package/dist/utils/overflow/outlineOnOverflow.js +27 -8
  39. package/dist/utils/overflow/outlineOnOverflow.js.map +1 -1
  40. package/package.json +1 -1
  41. package/scripts/tree.ts +9 -3
  42. package/skills/api-context/SKILL.md +2 -1
  43. package/skills/api-linter/SKILL.md +59 -5
  44. package/skills/api-testing/SKILL.md +3 -1
  45. package/skills/setup/SKILL.md +6 -3
  46. package/skills/techniques/SKILL.md +1 -1
  47. package/skills/techniques/references/outline-on-overflow.md +3 -1
  48. package/templates/Dockerfile +7 -2
  49. package/templates/_tsconfig.build.json +5 -0
  50. package/templates/_tsconfig.json +4 -2
  51. package/templates/package.json +1 -0
  52. package/templates/tests/prompts/echo.prompt.test.ts +4 -3
  53. package/templates/tests/resources/echo.resource.test.ts +11 -3
  54. package/templates/tests/smoke/definitions.smoke.test.ts +8 -4
  55. package/templates/tests/tools/echo.tool.test.ts +23 -4
  56. package/dist/logs/combined.log +0 -16
  57. package/dist/logs/error.log +0 -12
  58. package/dist/logs/interactions.log +0 -0
@@ -3,22 +3,41 @@
3
3
  * @module tests/tools/echo.tool.test
4
4
  */
5
5
 
6
+ import type { HandlerContext, ReasonOf } from '@cyanheads/mcp-ts-core';
6
7
  import { describe, expect, it } from 'vitest';
7
8
  import { createMockContext } from '@cyanheads/mcp-ts-core/testing';
8
9
  import { mcpTest } from '@cyanheads/mcp-ts-core/testing/vitest';
9
10
  import { echoTool } from '@/mcp-server/tools/definitions/echo.tool.js';
10
11
 
12
+ /**
13
+ * A tool that declares `errors[]` types its handler's `ctx` against that
14
+ * contract, so tests hand it a context built the same way — `createMockContext`
15
+ * narrows its return type from the `errors` it is given. Drop this if your tool
16
+ * declares no error contract; a bare `createMockContext()` is enough then.
17
+ */
18
+ type EchoContext = HandlerContext<ReasonOf<typeof echoTool.errors>>;
19
+
20
+ const echoContext = () => createMockContext({ errors: echoTool.errors });
21
+
11
22
  // ---------------------------------------------------------------------------
12
23
  // Fixture-based tests (mcpTest) — fresh ctx per test, no manual construction
13
24
  // ---------------------------------------------------------------------------
14
25
 
15
- mcpTest('echoTool: echoes the message back (fixture)', async ({ ctx }) => {
26
+ /** Function form, not a bare value — every test gets its own context. */
27
+ const echoTest = mcpTest.extend<{ ctx: EchoContext }>({
28
+ // biome-ignore lint/correctness/noEmptyPattern: vitest's fixture API requires a destructuring pattern as the first parameter
29
+ ctx: async ({}, use) => {
30
+ await use(echoContext());
31
+ },
32
+ });
33
+
34
+ echoTest('echoTool: echoes the message back (fixture)', async ({ ctx }) => {
16
35
  const input = echoTool.input.parse({ message: 'hello world' });
17
36
  const result = await echoTool.handler(input, ctx);
18
37
  expect(result).toEqual({ message: 'hello world' });
19
38
  });
20
39
 
21
- mcpTest('echoTool: output conforms to declared schema (fixture)', async ({ ctx }) => {
40
+ echoTest('echoTool: output conforms to declared schema (fixture)', async ({ ctx }) => {
22
41
  const input = echoTool.input.parse({ message: 'hello world' });
23
42
  const result = await echoTool.handler(input, ctx);
24
43
  expect(result).toEqual(expect.schemaMatching(echoTool.output));
@@ -30,14 +49,14 @@ mcpTest('echoTool: output conforms to declared schema (fixture)', async ({ ctx }
30
49
 
31
50
  describe('echoTool', () => {
32
51
  it('echoes the message back', async () => {
33
- const ctx = createMockContext();
52
+ const ctx = echoContext();
34
53
  const input = echoTool.input.parse({ message: 'hello world' });
35
54
  const result = await echoTool.handler(input, ctx);
36
55
  expect(result).toEqual({ message: 'hello world' });
37
56
  });
38
57
 
39
58
  it('output conforms to the declared output schema', async () => {
40
- const ctx = createMockContext();
59
+ const ctx = echoContext();
41
60
  const input = echoTool.input.parse({ message: 'hello world' });
42
61
  const result = await echoTool.handler(input, ctx);
43
62
  expect(result).toEqual(expect.schemaMatching(echoTool.output));
@@ -1,16 +0,0 @@
1
- {"level":50,"time":1786355643970,"env":"testing","version":"0.0.0-test","pid":20757,"requestId":"0796ac6f-2b10-450f-a3aa-afc9e5afd9e9","timestamp":"2026-08-10T09:54:03.969Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"stdio-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"9c7cdae492bcb0a7b734086564df62e7","toolName":"auto_echo","errorData":{"taskId":"9c7cdae492bcb0a7b734086564df62e7","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: stdio-failure","originalStack":"Error: intentional task failure: stdio-failure\n at Object.handler (file:///Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:28)"},"stack":"McpError: intentional task failure: stdio-failure\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","msg":"Error in auto-task:auto_echo: intentional task failure: stdio-failure"}
2
- {"level":50,"time":1786355651067,"env":"testing","version":"0.0.0-test","pid":20757,"requestId":"85a7c8d1-5db8-40dc-9582-27d611c2610c","timestamp":"2026-08-10T09:54:11.067Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"bdba0c04c6273baac152a8d399aec106","toolName":"long_control","errorData":{"taskId":"bdba0c04c6273baac152a8d399aec106","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
3
- {"level":50,"time":1786355652529,"env":"testing","version":"0.0.0-test","pid":20811,"requestId":"21944399-9c90-4496-aad0-4d5550fc1f23","timestamp":"2026-08-10T09:54:12.529Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"http-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"ab518e67680b0878cdb570552cfd9d16","toolName":"auto_echo","errorData":{"taskId":"ab518e67680b0878cdb570552cfd9d16","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: http-failure","originalStack":"Error: intentional task failure: http-failure\n at Object.handler (file:///Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:28)"},"stack":"McpError: intentional task failure: http-failure\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","msg":"Error in auto-task:auto_echo: intentional task failure: http-failure"}
4
- {"level":50,"time":1786355659662,"env":"testing","version":"0.0.0-test","pid":20811,"requestId":"9d83cfe0-a1a3-4c19-a328-bb6647b73e6a","timestamp":"2026-08-10T09:54:19.662Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"0a7324de339d3bbca3a9e1a596fcd7b8","toolName":"long_control","errorData":{"taskId":"0a7324de339d3bbca3a9e1a596fcd7b8","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
5
- {"level":40,"time":1786355660098,"env":"testing","version":"0.11.3","pid":20858,"transport":"http","requestId":"Q706M-MJD1O","timestamp":"2026-08-10T09:54:20.097Z","operation":"TransportManager.start","component":"HttpTransportSetup","msg":"MCP_ALLOWED_ORIGINS is not set — CORS is wildcard for CLI clients; browser Origin headers are restricted to loopback. Set MCP_ALLOWED_ORIGINS for production deployments accepting remote browser origins."}
6
- {"level":40,"time":1786355662006,"env":"testing","version":"0.11.3","pid":20858,"component":"HttpTransport","requestId":"7FM6Z-PHMPW","timestamp":"2026-08-10T09:54:22.006Z","operation":"HttpRpcRequest","sessionId":"not-a-real-session-1786355662005","msg":"Session validation failed - invalid or hijacked session"}
7
- {"level":50,"time":1786355665294,"env":"testing","version":"0.0.0-test","pid":20880,"requestId":"O6XB9-51I99","timestamp":"2026-08-10T09:54:25.294Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"04f241b4702cef081f7df131653e982037492a8192bcf202fb894d8960a9f0d7","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"04f241b4702cef081f7df131653e982037492a8192bcf202fb894d8960a9f0d7","toolName":"scoped_echo","requestId":"O6XB9-51I99","timestamp":"2026-08-10T09:54:25.294Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
8
- {"level":50,"time":1786355665304,"env":"testing","version":"0.0.0-test","pid":20880,"requestId":"HNUEZ-SA801","timestamp":"2026-08-10T09:54:25.304Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"73e723222f122e782a537b6aea6696fb732c0a85bd6b2201073d04a2e429c69f","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"73e723222f122e782a537b6aea6696fb732c0a85bd6b2201073d04a2e429c69f","toolName":"scoped_echo","requestId":"HNUEZ-SA801","timestamp":"2026-08-10T09:54:25.304Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
9
- {"level":50,"time":1786355677942,"env":"testing","version":"0.0.0-test","pid":20968,"requestId":"a7b18215-0a17-4115-8166-7c2ac279ed28","timestamp":"2026-08-10T09:54:37.941Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"stdio-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"4c50acaaa49431b65435209ca290b383","toolName":"auto_echo","errorData":{"taskId":"4c50acaaa49431b65435209ca290b383","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: stdio-failure","originalStack":"Error: intentional task failure: stdio-failure\n at handler (/Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:31)\n at async runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:42)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: intentional task failure: stdio-failure\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:auto_echo: intentional task failure: stdio-failure"}
10
- {"level":50,"time":1786355685002,"env":"testing","version":"0.0.0-test","pid":20968,"requestId":"bff21d5d-7abe-4f04-9fd6-f562f82807fa","timestamp":"2026-08-10T09:54:45.002Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"d88ffd467dc756996dcbaba74238a229","toolName":"long_control","errorData":{"taskId":"d88ffd467dc756996dcbaba74238a229","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
11
- {"level":50,"time":1786355686315,"env":"testing","version":"0.0.0-test","pid":21009,"requestId":"f73e3fe3-ca14-40cf-abfa-e60923ec955b","timestamp":"2026-08-10T09:54:46.315Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"http-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"d5def97d802d98a7239ab34a402af92a","toolName":"auto_echo","errorData":{"taskId":"d5def97d802d98a7239ab34a402af92a","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: http-failure","originalStack":"Error: intentional task failure: http-failure\n at handler (/Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:31)\n at async runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:42)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: intentional task failure: http-failure\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:auto_echo: intentional task failure: http-failure"}
12
- {"level":50,"time":1786355693444,"env":"testing","version":"0.0.0-test","pid":21009,"requestId":"69c06f06-7927-4ed8-a558-bff91280b178","timestamp":"2026-08-10T09:54:53.444Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"4672f29ed8a4edf42fdd4c1bc19fd3c6","toolName":"long_control","errorData":{"taskId":"4672f29ed8a4edf42fdd4c1bc19fd3c6","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
13
- {"level":40,"time":1786355693769,"env":"testing","version":"0.11.3","pid":21047,"transport":"http","requestId":"GZDRM-Q35FL","timestamp":"2026-08-10T09:54:53.769Z","operation":"TransportManager.start","component":"HttpTransportSetup","msg":"MCP_ALLOWED_ORIGINS is not set — CORS is wildcard for CLI clients; browser Origin headers are restricted to loopback. Set MCP_ALLOWED_ORIGINS for production deployments accepting remote browser origins."}
14
- {"level":40,"time":1786355695537,"env":"testing","version":"0.11.3","pid":21047,"component":"HttpTransport","requestId":"11T81-2IUQG","timestamp":"2026-08-10T09:54:55.537Z","operation":"HttpRpcRequest","sessionId":"not-a-real-session-1786355695537","msg":"Session validation failed - invalid or hijacked session"}
15
- {"level":50,"time":1786355697700,"env":"testing","version":"0.0.0-test","pid":21065,"requestId":"4K2O5-X8M89","timestamp":"2026-08-10T09:54:57.699Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"e338a3d5256ad5ec93414fce2ab657430880898daaf9f98795e70b53baf915bf","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"e338a3d5256ad5ec93414fce2ab657430880898daaf9f98795e70b53baf915bf","toolName":"scoped_echo","requestId":"4K2O5-X8M89","timestamp":"2026-08-10T09:54:57.699Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
16
- {"level":50,"time":1786355697708,"env":"testing","version":"0.0.0-test","pid":21065,"requestId":"J2QI1-0UOBS","timestamp":"2026-08-10T09:54:57.707Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"e0694439661bc7f37c76daf80bce90484e77b196ad0ad6c42bd5ba1319f0774a","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"e0694439661bc7f37c76daf80bce90484e77b196ad0ad6c42bd5ba1319f0774a","toolName":"scoped_echo","requestId":"J2QI1-0UOBS","timestamp":"2026-08-10T09:54:57.707Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
@@ -1,12 +0,0 @@
1
- {"level":50,"time":1786355643970,"env":"testing","version":"0.0.0-test","pid":20757,"requestId":"0796ac6f-2b10-450f-a3aa-afc9e5afd9e9","timestamp":"2026-08-10T09:54:03.969Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"stdio-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"9c7cdae492bcb0a7b734086564df62e7","toolName":"auto_echo","errorData":{"taskId":"9c7cdae492bcb0a7b734086564df62e7","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: stdio-failure","originalStack":"Error: intentional task failure: stdio-failure\n at Object.handler (file:///Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:28)"},"stack":"McpError: intentional task failure: stdio-failure\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","msg":"Error in auto-task:auto_echo: intentional task failure: stdio-failure"}
2
- {"level":50,"time":1786355651067,"env":"testing","version":"0.0.0-test","pid":20757,"requestId":"85a7c8d1-5db8-40dc-9582-27d611c2610c","timestamp":"2026-08-10T09:54:11.067Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"bdba0c04c6273baac152a8d399aec106","toolName":"long_control","errorData":{"taskId":"bdba0c04c6273baac152a8d399aec106","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
3
- {"level":50,"time":1786355652529,"env":"testing","version":"0.0.0-test","pid":20811,"requestId":"21944399-9c90-4496-aad0-4d5550fc1f23","timestamp":"2026-08-10T09:54:12.529Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"http-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"ab518e67680b0878cdb570552cfd9d16","toolName":"auto_echo","errorData":{"taskId":"ab518e67680b0878cdb570552cfd9d16","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: http-failure","originalStack":"Error: intentional task failure: http-failure\n at Object.handler (file:///Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n at async ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:28)"},"stack":"McpError: intentional task failure: http-failure\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)","msg":"Error in auto-task:auto_echo: intentional task failure: http-failure"}
4
- {"level":50,"time":1786355659662,"env":"testing","version":"0.0.0-test","pid":20811,"requestId":"9d83cfe0-a1a3-4c19-a328-bb6647b73e6a","timestamp":"2026-08-10T09:54:19.662Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"0a7324de339d3bbca3a9e1a596fcd7b8","toolName":"long_control","errorData":{"taskId":"0a7324de339d3bbca3a9e1a596fcd7b8","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:19)\n at ToolRegistry.runAutoTaskHandler (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
5
- {"level":50,"time":1786355665294,"env":"testing","version":"0.0.0-test","pid":20880,"requestId":"O6XB9-51I99","timestamp":"2026-08-10T09:54:25.294Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"04f241b4702cef081f7df131653e982037492a8192bcf202fb894d8960a9f0d7","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"04f241b4702cef081f7df131653e982037492a8192bcf202fb894d8960a9f0d7","toolName":"scoped_echo","requestId":"O6XB9-51I99","timestamp":"2026-08-10T09:54:25.294Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
6
- {"level":50,"time":1786355665304,"env":"testing","version":"0.0.0-test","pid":20880,"requestId":"HNUEZ-SA801","timestamp":"2026-08-10T09:54:25.304Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"73e723222f122e782a537b6aea6696fb732c0a85bd6b2201073d04a2e429c69f","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"73e723222f122e782a537b6aea6696fb732c0a85bd6b2201073d04a2e429c69f","toolName":"scoped_echo","requestId":"HNUEZ-SA801","timestamp":"2026-08-10T09:54:25.304Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
7
- {"level":50,"time":1786355677942,"env":"testing","version":"0.0.0-test","pid":20968,"requestId":"a7b18215-0a17-4115-8166-7c2ac279ed28","timestamp":"2026-08-10T09:54:37.941Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"stdio-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"4c50acaaa49431b65435209ca290b383","toolName":"auto_echo","errorData":{"taskId":"4c50acaaa49431b65435209ca290b383","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: stdio-failure","originalStack":"Error: intentional task failure: stdio-failure\n at handler (/Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:31)\n at async runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:42)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: intentional task failure: stdio-failure\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:auto_echo: intentional task failure: stdio-failure"}
8
- {"level":50,"time":1786355685002,"env":"testing","version":"0.0.0-test","pid":20968,"requestId":"bff21d5d-7abe-4f04-9fd6-f562f82807fa","timestamp":"2026-08-10T09:54:45.002Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"d88ffd467dc756996dcbaba74238a229","toolName":"long_control","errorData":{"taskId":"d88ffd467dc756996dcbaba74238a229","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
9
- {"level":50,"time":1786355686315,"env":"testing","version":"0.0.0-test","pid":21009,"requestId":"f73e3fe3-ca14-40cf-abfa-e60923ec955b","timestamp":"2026-08-10T09:54:46.315Z","operation":"auto-task:auto_echo","input":{"fail":true,"value":"http-failure"},"critical":false,"errorCode":-32603,"originalErrorType":"Error","finalErrorType":"McpError","taskId":"d5def97d802d98a7239ab34a402af92a","toolName":"auto_echo","errorData":{"taskId":"d5def97d802d98a7239ab34a402af92a","toolName":"auto_echo","originalErrorName":"Error","originalMessage":"intentional task failure: http-failure","originalStack":"Error: intentional task failure: http-failure\n at handler (/Users/casey/Developer/github/mcp-ts-core/tests/fixtures/task-protocol-server.js:60:31)\n at async runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:253:42)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: intentional task failure: http-failure\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:auto_echo: intentional task failure: http-failure"}
10
- {"level":50,"time":1786355693444,"env":"testing","version":"0.0.0-test","pid":21009,"requestId":"69c06f06-7927-4ed8-a558-bff91280b178","timestamp":"2026-08-10T09:54:53.444Z","operation":"auto-task:long_control","input":{"mode":"timeout"},"critical":false,"errorCode":-32004,"originalErrorType":"symbolEncountered","finalErrorType":"McpError","taskId":"4672f29ed8a4edf42fdd4c1bc19fd3c6","toolName":"long_control","errorData":{"taskId":"4672f29ed8a4edf42fdd4c1bc19fd3c6","toolName":"long_control","originalErrorName":"symbolEncountered","originalMessage":"Symbol(AUTO_TASK_TIMEOUT)"},"stack":"McpError: Symbol(AUTO_TASK_TIMEOUT)\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:178:23)\n at runAutoTaskHandler (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/tool-registration.js:266:26)\n at processTicksAndRejections (native:7:39)","msg":"Error in auto-task:long_control: Symbol(AUTO_TASK_TIMEOUT)"}
11
- {"level":50,"time":1786355697700,"env":"testing","version":"0.0.0-test","pid":21065,"requestId":"4K2O5-X8M89","timestamp":"2026-08-10T09:54:57.699Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"e338a3d5256ad5ec93414fce2ab657430880898daaf9f98795e70b53baf915bf","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"e338a3d5256ad5ec93414fce2ab657430880898daaf9f98795e70b53baf915bf","toolName":"scoped_echo","requestId":"4K2O5-X8M89","timestamp":"2026-08-10T09:54:57.699Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
12
- {"level":50,"time":1786355697708,"env":"testing","version":"0.0.0-test","pid":21065,"requestId":"J2QI1-0UOBS","timestamp":"2026-08-10T09:54:57.707Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"e0694439661bc7f37c76daf80bce90484e77b196ad0ad6c42bd5ba1319f0774a","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"e0694439661bc7f37c76daf80bce90484e77b196ad0ad6c42bd5ba1319f0774a","toolName":"scoped_echo","requestId":"J2QI1-0UOBS","timestamp":"2026-08-10T09:54:57.707Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:251:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:300:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
File without changes