Skip to main content
Glama

Gradle Tomcat MCP Server

by lkb2k
server.js2.68 kB
#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; import { ProcessManager } from './process-manager.js'; import { LogManager } from './log-manager.js'; import { TOOLS, handleToolCall } from './tools/index.js'; import { loadConfig } from './config.js'; const config = loadConfig(); const processManager = new ProcessManager(config); const logManager = new LogManager(config); processManager.on('stdout', (data) => { logManager.addLogEntry('stdout', data, 'INFO'); }); processManager.on('stderr', (data) => { logManager.addLogEntry('stderr', data, 'ERROR'); }); processManager.on('error', (error) => { logManager.addLogEntry('stderr', `Process error: ${error.message}`, 'ERROR'); }); processManager.on('exit', ({ code, signal }) => { logManager.addLogEntry('stdout', `Process exited with code ${code} and signal ${signal}`, 'INFO'); }); const server = new Server( { name: config.serverName, version: "1.0.0", }, { capabilities: { tools: {}, }, } ); server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: TOOLS }; }); server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { const result = await handleToolCall( name, args || {}, processManager, logManager ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: JSON.stringify({ error: true, message: error.message, stack: error.stack }, null, 2) } ], isError: true }; } }); process.on('SIGINT', () => { console.error('Received SIGINT, shutting down gracefully...'); processManager.destroy(); process.exit(0); }); process.on('SIGTERM', () => { console.error('Received SIGTERM, shutting down gracefully...'); processManager.destroy(); process.exit(0); }); async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error(`Gradle Tomcat MCP Server started`); console.error(`Working directory: ${config.workingDirectory}`); console.error(`Gradle command: ${config.gradleCommand}`); } main().catch((error) => { console.error('Failed to start server:', error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lkb2k/mcp-gradle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server