const { McpServer } = require("@modelcontextprotocol/sdk/server/mcp.js");
const serverConfig = require("./config.js");
const USE_REGISTER_TOOL = true;
function createMCPServer() {
const server = new McpServer(
{
name: serverConfig.name,
version: serverConfig.version,
},
{
capabilities: serverConfig.capabilities,
}
);
if (USE_REGISTER_TOOL) {
// registerTool con Zod
const { registerAllTools } = require("./register-tools.js");
registerAllTools(server);
} else {
// setRequestHandler con JSON Schema
const {
CallToolRequestSchema,
ListToolsRequestSchema,
} = require("@modelcontextprotocol/sdk/types.js");
const toolDefinitions = require("../tools/index.js");
const { executeHandler } = require("../handlers/index.js");
server.setRequestHandler(ListToolsRequestSchema, async () => {
return { tools: toolDefinitions };
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
return await executeHandler(name, args);
});
}
return server;
}
module.exports = {
createMCPServer,
};