import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { registerEnvironmentTools } from './tools/environment.js';
import { registerRawTool } from './tools/raw.js';
import { registerPackageTools } from './tools/package.js';
import { registerAppTools } from './tools/app.js';
import { registerWorkspaceTools } from './tools/workspace.js';
import { registerDevelopmentTools } from './tools/development.js';
import { registerInfrastructureTools } from './tools/infrastructure.js';
import { registerSystemSettingsTools } from './tools/system-settings.js';
import { registerNugetTools } from './tools/nuget.js';
/**
* Create and configure the MCP server with all CLIO tools.
* This is a factory function that returns a fresh server instance for stateless operation.
*/
export function getServer(): McpServer {
const server = new McpServer(
{
name: 'mcp-clio',
version: '1.0.0',
},
{
capabilities: {
logging: {},
},
}
);
// Register all tool modules
registerEnvironmentTools(server);
registerRawTool(server);
// Placeholder registrations (currently empty)
registerPackageTools(server);
registerAppTools(server);
registerWorkspaceTools(server);
registerDevelopmentTools(server);
registerInfrastructureTools(server);
registerSystemSettingsTools(server);
registerNugetTools(server);
return server;
}