main.ts•2.25 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
// Importar herramientas existentes
import { weatherInputSchema, weatherToolHandler } from "./tools/weatherTool.js";
import { createUserInputSchema, createUserToolHandler } from "./tools/userCreateTool.js";
import { listUsersInputSchema, listUsersToolHandler } from "./tools/userListTool.js";
// Importar nuevas herramientas de empresas
import { createCompanyInputSchema, createCompanyToolHandler } from "./tools/companyCreateTool.js";
import { listCompaniesInputSchema, listCompaniesToolHandler } from "./tools/companyListTool.js";
/**
* Función principal para iniciar el servidor MCP
*/
async function startServer() {
// Crear el servidor
const server = new McpServer({
name: "MCP API Server",
version: "1.0.0"
});
// Registrar la herramienta de clima
server.registerTool(
"obtener-clima",
{
description: "Herramienta para obtener clima",
inputSchema: weatherInputSchema
},
weatherToolHandler
);
// Registrar herramientas de usuarios
server.registerTool(
"crear-usuario",
{
description: "Crea un nuevo usuario con nombre, apellido y DNI",
inputSchema: createUserInputSchema
},
createUserToolHandler
);
server.registerTool(
"listar-usuarios",
{
description: "Lista todos los usuarios registrados en el sistema",
inputSchema: listUsersInputSchema
},
listUsersToolHandler
);
// Registrar herramientas de empresas
server.registerTool(
"crear-empresa",
{
description: "Crea una nueva empresa con todos los datos requeridos",
inputSchema: createCompanyInputSchema
},
createCompanyToolHandler
);
server.registerTool(
"listar-empresas",
{
description: "Lista todas las empresas registradas en la API",
inputSchema: listCompaniesInputSchema
},
listCompaniesToolHandler
);
// Iniciar el servidor
const transport = new StdioServerTransport();
await server.server.connect(transport);
console.error("🚀 Servidor MCP con API externa iniciado correctamente");
}
// Iniciar el servidor
await startServer();