@slbdn/mcp-tester 1.4.3 → 1.5.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 (66) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +78 -26
  3. package/dist/ai/provider.d.ts +145 -0
  4. package/dist/ai/provider.d.ts.map +1 -0
  5. package/dist/ai/provider.js +428 -0
  6. package/dist/ai/provider.js.map +1 -0
  7. package/dist/cli/index.js +214 -14
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/generate-cases.d.ts +113 -0
  10. package/dist/generate-cases.d.ts.map +1 -0
  11. package/dist/generate-cases.js +565 -0
  12. package/dist/generate-cases.js.map +1 -0
  13. package/dist/generate-tests.d.ts +52 -1
  14. package/dist/generate-tests.d.ts.map +1 -1
  15. package/dist/generate-tests.js +208 -81
  16. package/dist/generate-tests.js.map +1 -1
  17. package/dist/index.d.ts +3 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/matchers.d.ts +31 -21
  22. package/dist/matchers.d.ts.map +1 -1
  23. package/dist/matchers.js.map +1 -1
  24. package/dist/templates/full-stack/.github/workflows/test.yml +34 -0
  25. package/dist/templates/full-stack/README.md +73 -0
  26. package/dist/templates/full-stack/examples/mock-server.js +115 -0
  27. package/dist/templates/full-stack/jest.config.js +39 -0
  28. package/dist/templates/full-stack/package.json +31 -0
  29. package/dist/templates/full-stack/scripts/generate-tests.ts +32 -0
  30. package/dist/templates/full-stack/scripts/generate-types.ts +28 -0
  31. package/dist/templates/full-stack/src/server.ts +78 -0
  32. package/dist/templates/full-stack/tests/helpers.ts +29 -0
  33. package/dist/templates/full-stack/tests/parallel.test.ts +44 -0
  34. package/dist/templates/full-stack/tests/server.test.ts +36 -0
  35. package/dist/templates/full-stack/tests/tools.test.ts +61 -0
  36. package/dist/templates/full-stack/tsconfig.json +19 -0
  37. package/dist/templates/minimal-jest/README.md +42 -0
  38. package/dist/templates/minimal-jest/examples/mock-server.js +62 -0
  39. package/dist/templates/minimal-jest/jest.config.js +24 -0
  40. package/dist/templates/minimal-jest/package.json +24 -0
  41. package/dist/templates/minimal-jest/tests/server.test.ts +64 -0
  42. package/dist/templates/minimal-jest/tsconfig.json +19 -0
  43. package/dist/templates/standard-jest/.github/workflows/test.yml +32 -0
  44. package/dist/templates/standard-jest/README.md +44 -0
  45. package/dist/templates/standard-jest/examples/mock-server.js +122 -0
  46. package/dist/templates/standard-jest/jest.config.js +39 -0
  47. package/dist/templates/standard-jest/package.json +27 -0
  48. package/dist/templates/standard-jest/tests/helpers.ts +43 -0
  49. package/dist/templates/standard-jest/tests/prompts.test.ts +37 -0
  50. package/dist/templates/standard-jest/tests/resources.test.ts +37 -0
  51. package/dist/templates/standard-jest/tests/server.test.ts +30 -0
  52. package/dist/templates/standard-jest/tests/tools.test.ts +87 -0
  53. package/dist/templates/standard-jest/tsconfig.json +19 -0
  54. package/docs/advanced.md +424 -0
  55. package/docs/ai-generation.md +211 -0
  56. package/docs/api-reference.md +819 -0
  57. package/docs/cicd.md +289 -0
  58. package/docs/cli.md +225 -0
  59. package/docs/examples.md +300 -0
  60. package/docs/nodejs-compatibility.md +81 -0
  61. package/docs/releases.md +413 -0
  62. package/docs/starter-templates.md +110 -0
  63. package/docs/testing.md +443 -0
  64. package/docs/troubleshooting.md +139 -0
  65. package/jest.d.ts +43 -0
  66. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ node-version: [20, 22]
15
+ steps:
16
+ - uses: actions/checkout@v5
17
+ - name: Setup Node.js ${{ matrix.node-version }}
18
+ uses: actions/setup-node@v5
19
+ with:
20
+ node-version: ${{ matrix.node-version }}
21
+ cache: 'npm'
22
+ - name: Install
23
+ run: npm ci
24
+ - name: Build
25
+ run: npm run build
26
+ - name: Test
27
+ run: npm test
28
+ - name: Upload HTML report
29
+ if: always()
30
+ uses: actions/upload-artifact@v4
31
+ with:
32
+ name: test-report-${{ matrix.node-version }}
33
+ path: reports/
34
+ retention-days: 14
@@ -0,0 +1,73 @@
1
+ # MCP Test Full-Stack — Starter Template
2
+
3
+ The most complete scaffold: a real TypeScript MCP server, code generation scripts, multi-file tests, parallel/stress tests, and CI matrix.
4
+
5
+ ## What's included
6
+
7
+ ```
8
+ full-stack/
9
+ ├── src/
10
+ │ └── server.ts # Real TypeScript MCP server (greet, sum, uppercase)
11
+ ├── examples/
12
+ │ └── mock-server.js # Plain-JS mirror of src/server.ts (used by tests)
13
+ ├── scripts/
14
+ │ ├── generate-tests.ts # Run: `npm run gen:tests`
15
+ │ └── generate-types.ts # Run: `npm run gen:types`
16
+ ├── tests/
17
+ │ ├── helpers.ts
18
+ │ ├── server.test.ts
19
+ │ ├── tools.test.ts
20
+ │ └── parallel.test.ts
21
+ ├── .github/workflows/
22
+ │ └── test.yml # CI matrix + HTML report upload
23
+ ├── jest.config.js
24
+ ├── tsconfig.json
25
+ └── package.json
26
+ ```
27
+
28
+ ## Quick start
29
+
30
+ ```bash
31
+ npm install
32
+ npm run build # build src/server.ts via tsc (so its types are available)
33
+ npm test
34
+ ```
35
+
36
+ ## Workflows
37
+
38
+ ### Run the server
39
+ ```bash
40
+ npm run server
41
+ ```
42
+ Then attach an MCP inspector to it.
43
+
44
+ ### Regenerate tests from the running server
45
+ After changing `src/server.ts` (or its mirror `examples/mock-server.js`):
46
+ ```bash
47
+ npm run gen:tests
48
+ ```
49
+ This inspects the server and writes `tests/generated.test.ts`.
50
+
51
+ ### Generate types from tool schemas
52
+ ```bash
53
+ npm run gen:types
54
+ ```
55
+ This writes `src/generated-types.ts`, exposing:
56
+ ```ts
57
+ import type { ToolArgsMap, ToolName } from './generated-types.js';
58
+ await client.callTool<ToolArgsMap['sum']>({
59
+ name: 'sum',
60
+ arguments: { numbers: [1, 2, 3] },
61
+ });
62
+ ```
63
+
64
+ ## What's different from `standard-jest`
65
+ - A real TypeScript server in `src/` plus a JS mirror in `examples/` (so tests don't need `tsx` in the spawn path).
66
+ - Code generation scripts (`.next` + `.next -types`).
67
+ - A parallel/stress test demonstrating `Promise.all`.
68
+ - Build step in CI.
69
+
70
+ ## When to use which template
71
+ - **`minimal-jest`**: A simple project; just one test file.
72
+ - **`standard-jest`**: A real-world CI setup; per-capability test files + reporter + workflow.
73
+ - **`full-stack`**: A library with a server; code generation + typed calls + CI matrix.
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Plain-JS entry point for the server — used by tests that spawn via stdio.
5
+ * Mirrors src/server.ts so tests can run without tsx in the spawn path.
6
+ *
7
+ * If you change src/server.ts, mirror it here.
8
+ */
9
+
10
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
11
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
12
+ import {
13
+ CallToolRequestSchema,
14
+ ListToolsRequestSchema,
15
+ ListResourcesRequestSchema,
16
+ ReadResourceRequestSchema,
17
+ ListPromptsRequestSchema,
18
+ GetPromptRequestSchema,
19
+ } from '@modelcontextprotocol/sdk/types.js';
20
+
21
+ const server = new Server(
22
+ { name: 'full-stack-server', version: '1.0.0' },
23
+ { capabilities: { tools: {}, resources: {}, prompts: {} } }
24
+ );
25
+
26
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
27
+ tools: [
28
+ {
29
+ name: 'greet',
30
+ description: 'Greet someone by name',
31
+ inputSchema: {
32
+ type: 'object',
33
+ properties: { name: { type: 'string' } },
34
+ required: ['name'],
35
+ },
36
+ },
37
+ {
38
+ name: 'sum',
39
+ description: 'Sum an array of numbers',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: { numbers: { type: 'array', items: { type: 'number' } } },
43
+ required: ['numbers'],
44
+ },
45
+ },
46
+ {
47
+ name: 'uppercase',
48
+ description: 'Convert text to uppercase',
49
+ inputSchema: {
50
+ type: 'object',
51
+ properties: { text: { type: 'string' } },
52
+ required: ['text'],
53
+ },
54
+ },
55
+ ],
56
+ }));
57
+
58
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
59
+ const { name, arguments: args } = request.params;
60
+ switch (name) {
61
+ case 'greet':
62
+ return { content: [{ type: 'text', text: `Hello, ${args.name}!` }] };
63
+ case 'sum': {
64
+ const numbers = args.numbers ?? [];
65
+ const total = numbers.reduce((a, b) => a + b, 0);
66
+ return { content: [{ type: 'text', text: String(total) }] };
67
+ }
68
+ case 'uppercase':
69
+ return { content: [{ type: 'text', text: String(args.text).toUpperCase() }] };
70
+ default:
71
+ throw new Error(`Unknown tool: ${name}`);
72
+ }
73
+ });
74
+
75
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
76
+ resources: [
77
+ {
78
+ uri: 'config://version',
79
+ name: 'version',
80
+ description: 'Server version',
81
+ mimeType: 'text/plain',
82
+ },
83
+ ],
84
+ }));
85
+
86
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
87
+ if (request.params.uri === 'config://version') {
88
+ return {
89
+ contents: [{ uri: 'config://version', mimeType: 'text/plain', text: '1.0.0' }],
90
+ };
91
+ }
92
+ throw new Error(`Unknown resource: ${request.params.uri}`);
93
+ });
94
+
95
+ server.setRequestHandler(ListPromptsRequestSchema, async () => ({
96
+ prompts: [
97
+ {
98
+ name: 'welcome',
99
+ description: 'A welcome prompt',
100
+ arguments: [],
101
+ },
102
+ ],
103
+ }));
104
+
105
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
106
+ if (request.params.name === 'welcome') {
107
+ return {
108
+ messages: [{ role: 'assistant', content: { type: 'text', text: 'Welcome!' } }],
109
+ };
110
+ }
111
+ throw new Error(`Unknown prompt: ${request.params.name}`);
112
+ });
113
+
114
+ const transport = new StdioServerTransport();
115
+ await server.connect(transport);
@@ -0,0 +1,39 @@
1
+ /** @type {import('jest').Config} */
2
+ export default {
3
+ preset: 'ts-jest/presets/default-esm',
4
+ testEnvironment: 'node',
5
+ cacheDirectory: '/tmp/mcp-tester-cache',
6
+ extensionsToTreatAsEsm: ['.ts'],
7
+ moduleNameMapper: {
8
+ '^(\\.{1,2}/.*)\\.js$': '$1',
9
+ },
10
+ transform: {
11
+ '^.+\\.tsx?$': [
12
+ 'ts-jest',
13
+ {
14
+ useESM: true,
15
+ tsconfig: {
16
+ esModuleInterop: true,
17
+ allowSyntheticDefaultImports: true,
18
+ },
19
+ },
20
+ ],
21
+ },
22
+ testMatch: ['**/tests/**/*.test.ts'],
23
+ testTimeout: 30000,
24
+ maxWorkers: 1,
25
+ reporters: [
26
+ 'default',
27
+ [
28
+ 'jest-html-reporters',
29
+ {
30
+ publicPath: './reports',
31
+ filename: 'test-report.html',
32
+ expand: true,
33
+ pageTitle: 'MCP Test Report',
34
+ hideIcon: true,
35
+ },
36
+ ],
37
+ ],
38
+ coverageReporters: ['text', 'text-summary', 'lcov', 'json-summary'],
39
+ };
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "__NAME__",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "description": "Full-stack MCP tester project: code generation, typed tools, CI matrix, and a real TypeScript server",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
10
+ "test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage",
11
+ "gen:tests": "tsx scripts/generate-tests.ts",
12
+ "gen:types": "tsx scripts/generate-types.ts",
13
+ "server": "tsx src/server.ts"
14
+ },
15
+ "engines": {
16
+ "node": ">=20"
17
+ },
18
+ "dependencies": {
19
+ "@slbdn/mcp-tester": "^1.4.3",
20
+ "@modelcontextprotocol/sdk": "^1.29.0"
21
+ },
22
+ "devDependencies": {
23
+ "@types/jest": "^30.0.0",
24
+ "@types/node": "^20.0.0",
25
+ "jest": "^30.5.2",
26
+ "jest-html-reporters": "^3.0.11",
27
+ "ts-jest": "^29.4.11",
28
+ "tsx": "^4.23.15",
29
+ "typescript": "^5.3.0"
30
+ }
31
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generate a fresh test file from the running server.
3
+ *
4
+ * Usage:
5
+ * 1. Start your server in another terminal, OR
6
+ * 2. Adjust the config below and run: `npm run gen:tests`
7
+ *
8
+ * Output is written to `tests/generated.test.ts`.
9
+ */
10
+
11
+ import { generateTests } from '@slbdn/mcp-tester';
12
+ import { writeFileSync, mkdirSync } from 'node:fs';
13
+ import { dirname, join } from 'node:path';
14
+ import { fileURLToPath } from 'node:url';
15
+
16
+ const here = dirname(fileURLToPath(import.meta.url));
17
+ const outPath = join(here, '..', 'tests', 'generated.test.ts');
18
+
19
+ const code = await generateTests({
20
+ command: 'node',
21
+ args: ['./examples/mock-server.js'],
22
+ framework: 'jest',
23
+ description: 'Generated test suite',
24
+ includeResources: true,
25
+ includePrompts: true,
26
+ includeTools: true,
27
+ includeMatchers: true,
28
+ });
29
+
30
+ mkdirSync(dirname(outPath), { recursive: true });
31
+ writeFileSync(outPath, code, 'utf-8');
32
+ console.log(`✓ Wrote ${outPath}`);
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Generate TypeScript types from the server's tool schemas.
3
+ *
4
+ * Usage: `npm run gen:types`
5
+ *
6
+ * Output is written to `src/generated-types.ts`.
7
+ *
8
+ * After generation, you can import the typed tool map and call:
9
+ * import { ToolArgsMap } from './generated-types.js';
10
+ * await client.callTool<ToolArgsMap['sum']>({ name: 'sum', arguments: { numbers: [1,2,3] } });
11
+ */
12
+
13
+ import { generateTypes } from '@slbdn/mcp-tester';
14
+ import { writeFileSync, mkdirSync } from 'node:fs';
15
+ import { dirname, join } from 'node:path';
16
+ import { fileURLToPath } from 'node:url';
17
+
18
+ const here = dirname(fileURLToPath(import.meta.url));
19
+ const outPath = join(here, '..', 'src', 'generated-types.ts');
20
+
21
+ const code = await generateTypes({
22
+ command: 'node',
23
+ args: ['./examples/mock-server.js'],
24
+ });
25
+
26
+ mkdirSync(dirname(outPath), { recursive: true });
27
+ writeFileSync(outPath, code, 'utf-8');
28
+ console.log(`✓ Wrote ${outPath}`);
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Sample TypeScript MCP server — the one we test in this template.
3
+ *
4
+ * Tools:
5
+ * - greet(name): returns a greeting
6
+ * - sum(numbers): returns the sum of an array of numbers
7
+ * - uppercase(text): returns uppercase version of the input
8
+ *
9
+ * Run with: `npm run server` (for manual experimentation via an inspector)
10
+ */
11
+
12
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
13
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
14
+ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
15
+
16
+ const server = new Server(
17
+ { name: 'full-stack-server', version: '1.0.0' },
18
+ { capabilities: { tools: {} } }
19
+ );
20
+
21
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
22
+ tools: [
23
+ {
24
+ name: 'greet',
25
+ description: 'Greet someone by name',
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: { name: { type: 'string', description: 'Person to greet' } },
29
+ required: ['name'],
30
+ },
31
+ },
32
+ {
33
+ name: 'sum',
34
+ description: 'Sum an array of numbers',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ numbers: {
39
+ type: 'array',
40
+ items: { type: 'number' },
41
+ description: 'Numbers to add',
42
+ },
43
+ },
44
+ required: ['numbers'],
45
+ },
46
+ },
47
+ {
48
+ name: 'uppercase',
49
+ description: 'Convert text to uppercase',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: { text: { type: 'string' } },
53
+ required: ['text'],
54
+ },
55
+ },
56
+ ],
57
+ }));
58
+
59
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
60
+ const { name } = request.params;
61
+ const args = (request.params.arguments ?? {}) as Record<string, unknown>;
62
+ switch (name) {
63
+ case 'greet':
64
+ return { content: [{ type: 'text', text: `Hello, ${args.name}!` }] };
65
+ case 'sum': {
66
+ const numbers = (args.numbers as number[]) ?? [];
67
+ const total = numbers.reduce((a, b) => a + b, 0);
68
+ return { content: [{ type: 'text', text: String(total) }] };
69
+ }
70
+ case 'uppercase':
71
+ return { content: [{ type: 'text', text: String(args.text).toUpperCase() }] };
72
+ default:
73
+ throw new Error(`Unknown tool: ${name}`);
74
+ }
75
+ });
76
+
77
+ const transport = new StdioServerTransport();
78
+ await server.connect(transport);
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Shared helpers for the full-stack test suite.
3
+ */
4
+
5
+ import { MCPClient } from '@slbdn/mcp-tester';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { dirname, join } from 'node:path';
8
+
9
+ const here = dirname(fileURLToPath(import.meta.url));
10
+ export const serverPath = join(here, '..', 'examples', 'mock-server.js');
11
+
12
+ /** The result type of {@link MCPClient.callTool}. */
13
+ type ToolCallResult = Awaited<ReturnType<MCPClient['callTool']>>;
14
+
15
+ /** Extract the text of the first content item (empty string if not text). */
16
+ export function contentText(result: ToolCallResult): string {
17
+ const first = result.content[0];
18
+ return first && first.type === 'text' ? first.text : '';
19
+ }
20
+
21
+ export async function createConnectedClient(name = 'full-stack-test'): Promise<MCPClient> {
22
+ const client = new MCPClient({
23
+ name,
24
+ version: '0.1.0',
25
+ timeout: 10000,
26
+ });
27
+ await client.start({ command: 'node', args: [serverPath] });
28
+ return client;
29
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Parallel and stress tests — demonstrates `Promise.all` patterns.
3
+ */
4
+
5
+ import { afterAll, beforeAll, describe, expect, it } from '@jest/globals';
6
+ import type { MCPClient } from '@slbdn/mcp-tester';
7
+ import { contentText, createConnectedClient } from './helpers.js';
8
+
9
+ describe('Parallel operations', () => {
10
+ let client: MCPClient;
11
+
12
+ beforeAll(async () => {
13
+ client = await createConnectedClient('parallel-test');
14
+ });
15
+
16
+ afterAll(async () => {
17
+ if (client?.isConnected()) {
18
+ await client.stop();
19
+ }
20
+ });
21
+
22
+ it('runs many calls in parallel', async () => {
23
+ const calls = Array.from({ length: 20 }, (_, i) =>
24
+ client.callTool({ name: 'greet', arguments: { name: `User${i}` } })
25
+ );
26
+ const results = await Promise.all(calls);
27
+ expect(results).toHaveLength(20);
28
+ results.forEach((r, i) => {
29
+ expect(contentText(r)).toBe(`Hello, User${i}!`);
30
+ });
31
+ });
32
+
33
+ it('handles a mixed workload concurrently', async () => {
34
+ const calls = [
35
+ client.callTool({ name: 'greet', arguments: { name: 'A' } }),
36
+ client.callTool({ name: 'sum', arguments: { numbers: [1, 2, 3] } }),
37
+ client.callTool({ name: 'uppercase', arguments: { text: 'hi' } }),
38
+ ];
39
+ const [greet, sum, upper] = await Promise.all(calls);
40
+ expect(contentText(greet)).toBe('Hello, A!');
41
+ expect(contentText(sum)).toBe('6');
42
+ expect(contentText(upper)).toBe('HI');
43
+ });
44
+ });
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Server lifecycle tests.
3
+ */
4
+
5
+ import { afterAll, beforeAll, describe, expect, it } from '@jest/globals';
6
+ import type { MCPClient } from '@slbdn/mcp-tester';
7
+ import { createConnectedClient } from './helpers.js';
8
+
9
+ describe('Server lifecycle', () => {
10
+ let client: MCPClient;
11
+
12
+ beforeAll(async () => {
13
+ client = await createConnectedClient('lifecycle-test');
14
+ });
15
+
16
+ afterAll(async () => {
17
+ if (client?.isConnected()) {
18
+ await client.stop();
19
+ }
20
+ });
21
+
22
+ it('connects to the mock server', () => {
23
+ expect(client.isConnected()).toBe(true);
24
+ });
25
+
26
+ it('reports a healthy server', async () => {
27
+ const health = await client.isHealthy();
28
+ expect(health.healthy).toBe(true);
29
+ expect(health.latencyMs).toBeGreaterThan(0);
30
+ });
31
+
32
+ it('lists all advertised tools', async () => {
33
+ const tools = await client.listTools();
34
+ expect(tools.map((t) => t.name).sort()).toEqual(['greet', 'sum', 'uppercase']);
35
+ });
36
+ });