32 lines
880 B
JavaScript
32 lines
880 B
JavaScript
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
import { z } from "zod";
|
|
|
|
// Inicializamos el servidor MCP
|
|
const server = new McpServer({
|
|
name: "planilla-mcp",
|
|
version: "1.0.0"
|
|
});
|
|
|
|
// Ejemplo de herramienta: suma dos números
|
|
server.tool(
|
|
"add",
|
|
{ a: z.number(), b: z.number() },
|
|
async ({ a, b }) => ({
|
|
content: [{ type: "text", text: `Resultado: ${a + b}` }]
|
|
})
|
|
);
|
|
|
|
// Ejemplo de recurso dinámico
|
|
server.resource(
|
|
"greeting",
|
|
new ResourceTemplate("greeting://{name}", { list: undefined }),
|
|
async (uri, { name }) => ({
|
|
contents: [{ uri: uri.href, text: `¡Hola, ${name}!` }]
|
|
})
|
|
);
|
|
|
|
// Conectamos el transporte STDIO (útil para CLI o Claude Desktop)
|
|
const transport = new StdioServerTransport();
|
|
await server.connect(transport);
|