* fix(test): skip serialize tool's annotation if empty 1. skip serialize tool's annotation if empty 2. close js server and client when close * fix(test): fix test with js, don't close too early
35 lines
No EOL
736 B
JavaScript
35 lines
No EOL
736 B
JavaScript
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
import { z } from "zod";
|
|
|
|
const server = new McpServer({
|
|
name: "Demo",
|
|
version: "1.0.0"
|
|
});
|
|
|
|
server.resource(
|
|
"greeting",
|
|
new ResourceTemplate("greeting://{name}", { list: undefined }),
|
|
async (uri, { name }) => ({
|
|
contents: [{
|
|
uri: uri.href,
|
|
text: `Hello, ${name}`
|
|
}]
|
|
})
|
|
);
|
|
|
|
server.tool(
|
|
"add",
|
|
{ a: z.number(), b: z.number() },
|
|
async ({ a, b }) => ({
|
|
"content": [
|
|
{
|
|
"type": "text",
|
|
"text": `${a + b}`
|
|
}
|
|
]
|
|
})
|
|
);
|
|
|
|
const transport = new StdioServerTransport();
|
|
await server.connect(transport); |