@slbdn/mcp-tester 1.4.3 → 1.5.3
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/CHANGELOG.md +54 -0
- package/README.md +49 -0
- package/dist/ai/provider.d.ts +145 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +428 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/cli/index.js +214 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/generate-cases.d.ts +113 -0
- package/dist/generate-cases.d.ts.map +1 -0
- package/dist/generate-cases.js +565 -0
- package/dist/generate-cases.js.map +1 -0
- package/dist/generate-tests.d.ts +52 -1
- package/dist/generate-tests.d.ts.map +1 -1
- package/dist/generate-tests.js +208 -81
- package/dist/generate-tests.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/matchers.d.ts +31 -21
- package/dist/matchers.d.ts.map +1 -1
- package/dist/matchers.js.map +1 -1
- package/dist/templates/full-stack/.github/workflows/test.yml +34 -0
- package/dist/templates/full-stack/README.md +73 -0
- package/dist/templates/full-stack/examples/mock-server.js +115 -0
- package/dist/templates/full-stack/jest.config.js +39 -0
- package/dist/templates/full-stack/package.json +31 -0
- package/dist/templates/full-stack/scripts/generate-tests.ts +32 -0
- package/dist/templates/full-stack/scripts/generate-types.ts +28 -0
- package/dist/templates/full-stack/src/server.ts +78 -0
- package/dist/templates/full-stack/tests/helpers.ts +29 -0
- package/dist/templates/full-stack/tests/parallel.test.ts +44 -0
- package/dist/templates/full-stack/tests/server.test.ts +36 -0
- package/dist/templates/full-stack/tests/tools.test.ts +61 -0
- package/dist/templates/full-stack/tsconfig.json +19 -0
- package/dist/templates/minimal-jest/README.md +42 -0
- package/dist/templates/minimal-jest/examples/mock-server.js +62 -0
- package/dist/templates/minimal-jest/jest.config.js +24 -0
- package/dist/templates/minimal-jest/package.json +24 -0
- package/dist/templates/minimal-jest/tests/server.test.ts +64 -0
- package/dist/templates/minimal-jest/tsconfig.json +19 -0
- package/dist/templates/standard-jest/.github/workflows/test.yml +32 -0
- package/dist/templates/standard-jest/README.md +44 -0
- package/dist/templates/standard-jest/examples/mock-server.js +122 -0
- package/dist/templates/standard-jest/jest.config.js +39 -0
- package/dist/templates/standard-jest/package.json +27 -0
- package/dist/templates/standard-jest/tests/helpers.ts +43 -0
- package/dist/templates/standard-jest/tests/prompts.test.ts +37 -0
- package/dist/templates/standard-jest/tests/resources.test.ts +37 -0
- package/dist/templates/standard-jest/tests/server.test.ts +30 -0
- package/dist/templates/standard-jest/tests/tools.test.ts +87 -0
- package/dist/templates/standard-jest/tsconfig.json +19 -0
- package/docs/advanced.md +424 -0
- package/docs/ai-generation.md +211 -0
- package/docs/api-reference.md +819 -0
- package/docs/cicd.md +289 -0
- package/docs/cli.md +225 -0
- package/docs/examples.md +300 -0
- package/docs/nodejs-compatibility.md +81 -0
- package/docs/releases.md +413 -0
- package/docs/starter-templates.md +110 -0
- package/docs/testing.md +443 -0
- package/docs/troubleshooting.md +139 -0
- package/jest.d.ts +43 -0
- package/package.json +5 -2
package/dist/matchers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAK5C,
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
|
package/dist/matchers.js.map
CHANGED
|
@@ -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
|
+
});
|