feat: add reload button. (#471)

This commit is contained in:
cheestard
2025-12-03 18:55:48 +08:00
committed by GitHub
parent 61b748151f
commit 54e877cbd8
10 changed files with 109 additions and 13 deletions

View File

@@ -8,6 +8,7 @@ import {
notifyToolChanged,
syncToolEmbedding,
toggleServerStatus,
reconnectServer,
} from '../services/mcpService.js';
import { loadSettings } from '../config/index.js';
import { syncAllServerToolsEmbeddings } from '../services/vectorSearchService.js';
@@ -415,6 +416,32 @@ export const toggleServer = async (req: Request, res: Response): Promise<void> =
}
};
export const reloadServer = async (req: Request, res: Response): Promise<void> => {
try {
const { name } = req.params;
if (!name) {
res.status(400).json({
success: false,
message: 'Server name is required',
});
return;
}
await reconnectServer(name);
res.json({
success: true,
message: `Server ${name} reloaded successfully`,
});
} catch (error) {
console.error('Failed to reload server:', error);
res.status(500).json({
success: false,
message: 'Failed to reload server',
});
}
};
// Toggle tool status for a specific server
export const toggleTool = async (req: Request, res: Response): Promise<void> => {
try {

View File

@@ -9,6 +9,7 @@ import {
updateServer,
deleteServer,
toggleServer,
reloadServer,
toggleTool,
updateToolDescription,
togglePrompt,
@@ -136,6 +137,7 @@ export const initRoutes = (app: express.Application): void => {
router.put('/servers/:name', updateServer);
router.delete('/servers/:name', deleteServer);
router.post('/servers/:name/toggle', toggleServer);
router.post('/servers/:name/reload', reloadServer);
router.post('/servers/:serverName/tools/:toolName/toggle', toggleTool);
router.put('/servers/:serverName/tools/:toolName/description', updateToolDescription);
router.post('/servers/:serverName/prompts/:promptName/toggle', togglePrompt);

View File

@@ -277,11 +277,7 @@ const callToolWithReconnect = async (
version: '1.0.0',
},
{
capabilities: {
prompts: {},
resources: {},
tools: {},
},
capabilities: {},
},
);
@@ -463,11 +459,7 @@ export const initializeClientsFromSettings = async (
version: '1.0.0',
},
{
capabilities: {
prompts: {},
resources: {},
tools: {},
},
capabilities: {},
},
);