typescript-sdk/examples/guides/index.examples.ts

32 lines
1,005 B
TypeScript

/**
* Type-checked companion for `docs/index.md` (the landing page).
*
* The single region below is the landing hero: a complete MCP server in one
* block. Imports live inside the region so the rendered block stands alone.
* Synced into the page by `pnpm sync:snippets`; executed by `pnpm docs:examples` like every runnable companion.
*
* @module
*/
//#region serveStdio_minimal
import { McpServer } from '@modelcontextprotocol/server';
import { serveStdio } from '@modelcontextprotocol/server/stdio';
import * as z from 'zod/v4';
serveStdio(() => {
const server = new McpServer({ name: 'weather', version: '1.0.0' });
server.registerTool(
'get-forecast',
{
description: 'Get the weather forecast for a city',
inputSchema: z.object({ city: z.string() })
},
async ({ city }) => ({
content: [{ type: 'text', text: `Sunny in ${city} all week.` }]
})
);
return server;
});
//#endregion serveStdio_minimal