refactor: update addServer function to return detailed success messages; clean up whitespace in index.ts

This commit is contained in:
samanhappy
2025-04-02 09:04:55 +08:00
parent 8a4c214324
commit 6a2cf39c92
2 changed files with 17 additions and 11 deletions

View File

@@ -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' });

View File

@@ -179,17 +179,17 @@ export async function addServer(
mcpServer: McpServer,
name: string,
config: { url?: string; command?: string; args?: string[]; env?: Record<string, string> },
): Promise<boolean> {
): 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' };
}
}