diff --git a/plugins-external/mcp-server/src/index.ts b/plugins-external/mcp-server/src/index.ts index dc343d29..bac1fa1d 100644 --- a/plugins-external/mcp-server/src/index.ts +++ b/plugins-external/mcp-server/src/index.ts @@ -9,6 +9,7 @@ export const plugin: PluginDefinition = { async init(ctx: Context) { // Start the server after waiting, so there's an active window open to do things // like show the startup toast. + console.log('Initializing MCP Server plugin'); setTimeout(() => { mcpServer = createMcpServer({ yaak: ctx }, serverPort); }, 5000); diff --git a/plugins-external/mcp-server/src/server.ts b/plugins-external/mcp-server/src/server.ts index 5ba4ec9c..e30fa76e 100644 --- a/plugins-external/mcp-server/src/server.ts +++ b/plugins-external/mcp-server/src/server.ts @@ -10,6 +10,7 @@ import { registerWorkspaceTools } from './tools/workspace.js'; import type { McpServerContext } from './types.js'; export function createMcpServer(ctx: McpServerContext, port: number) { + console.log('Creating MCP server on port', port); const mcpServer = new McpServer({ name: 'yaak-mcp-server', version: '0.1.0', @@ -39,23 +40,32 @@ export function createMcpServer(ctx: McpServerContext, port: number) { return transport.handleRequest(c); }); - const honoServer = serve({ - port, - hostname: '127.0.0.1', - fetch: app.fetch, - }); - - ctx.yaak.toast.show({ - message: `MCP Server running on port ${honoServer.address}`, - icon: 'info', - color: 'info', - timeout: 30000, - }); + const honoServer = serve( + { + port, + hostname: '127.0.0.1', + fetch: app.fetch, + }, + (info) => { + console.log('Started MCP server on ', info.address); + ctx.yaak.toast.show({ + message: `MCP Server running on http://127.0.0.1:${info.port}`, + icon: 'info', + color: 'secondary', + timeout: 10000, + }); + }, + ); return { server: mcpServer, close: async () => { - honoServer.close(); + await new Promise((resolve, reject) => { + honoServer.close((err) => { + if (err) reject(err); + else resolve(); + }); + }); await mcpServer.close(); }, }; diff --git a/plugins-external/mcp-server/src/tools/workspace.ts b/plugins-external/mcp-server/src/tools/workspace.ts index a3b59d98..6044da6a 100644 --- a/plugins-external/mcp-server/src/tools/workspace.ts +++ b/plugins-external/mcp-server/src/tools/workspace.ts @@ -1,5 +1,4 @@ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; -import * as z from 'zod'; import type { McpServerContext } from '../types.js'; export function registerWorkspaceTools(server: McpServer, ctx: McpServerContext) { @@ -8,7 +7,6 @@ export function registerWorkspaceTools(server: McpServer, ctx: McpServerContext) { title: 'List Workspaces', description: 'List all open workspaces in Yaak', - inputSchema: z.object({}), }, async () => { const workspaces = await ctx.yaak.workspace.list();