From 6a2cf39c92a429703c0f67003a4aae3deca3eb7a Mon Sep 17 00:00:00 2001 From: samanhappy Date: Wed, 2 Apr 2025 09:04:55 +0800 Subject: [PATCH] refactor: update addServer function to return detailed success messages; clean up whitespace in index.ts --- src/index.ts | 18 ++++++++++++------ src/server.ts | 10 +++++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/index.ts b/src/index.ts index 1c46276..8361109 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,13 @@ import express, { Request, Response } from 'express'; import dotenv from 'dotenv'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; -import { registerAllTools, getServersInfo, getServersSettings, addServer, removeServer } from './server.js'; +import { + registerAllTools, + getServersInfo, + getServersSettings, + addServer, + removeServer, +} from './server.js'; import path from 'path'; dotenv.config(); @@ -48,7 +54,7 @@ app.get('/api/settings', (req: Request, res: Response) => { // API endpoint to add a new server app.post('/api/servers', async (req: Request, res: Response) => { const { name, config } = req.body; - + if (!name || typeof name !== 'string') { return res.status(400).json({ success: false, message: 'Server name is required' }); } @@ -65,18 +71,18 @@ app.post('/api/servers', async (req: Request, res: Response) => { }); } - const success = await addServer(server, name, config); + const { success, message } = await addServer(server, name, config); if (success) { res.json({ success: true, message: 'Server added successfully' }); } else { - res.status(400).json({ success: false, message: 'Failed to add server' }); + res.status(400).json({ success: false, message: message || 'Failed to add server' }); } }); // API endpoint to remove a server app.delete('/api/servers/:name', async (req: Request, res: Response) => { const { name } = req.params; - + if (!name) { return res.status(400).json({ success: false, message: 'Server name is required' }); } @@ -88,7 +94,7 @@ app.delete('/api/servers/:name', async (req: Request, res: Response) => { version: '0.0.1', }); await registerAllTools(server); - + res.json({ success: true, message: 'Server removed successfully' }); } else { res.status(404).json({ success: false, message: 'Server not found or failed to remove' }); diff --git a/src/server.ts b/src/server.ts index fe86b63..89c7526 100644 --- a/src/server.ts +++ b/src/server.ts @@ -179,17 +179,17 @@ export async function addServer( mcpServer: McpServer, name: string, config: { url?: string; command?: string; args?: string[]; env?: Record }, -): Promise { +): Promise<{ success: boolean; message?: string }> { try { const settings = loadSettings(); if (settings.mcpServers[name]) { - return false; + return { success: false, message: 'Server name already exists' }; } settings.mcpServers[name] = config; if (!saveSettings(settings)) { - return false; + return { success: false, message: 'Failed to save settings' }; } const result = initializeClientsFromSettings(); @@ -199,10 +199,10 @@ export async function addServer( await registerAllTools(mcpServer); - return true; + return { success: true, message: 'Server added successfully' }; } catch (error) { console.error(`Failed to add server: ${name}`, error); - return false; + return { success: false, message: 'Failed to add server' }; } }