diff --git a/src/server/routes/mcp_route.ts b/src/server/routes/mcp_route.ts index 752bb41..e2c2b4c 100644 --- a/src/server/routes/mcp_route.ts +++ b/src/server/routes/mcp_route.ts @@ -2,7 +2,7 @@ import { Elysia } from "elysia"; import { getMcpTools } from "../lib/mcp_tool_convert"; var tools = [] as any[]; -const OPENAPI_URL = process.env.BUN_PUBLIC_BASE_URL+"/docs/json"; +const OPENAPI_URL = process.env.BUN_PUBLIC_BASE_URL + "/docs/json"; const FILTER_TAG = "test"; if (!process.env.BUN_PUBLIC_BASE_URL) { @@ -118,16 +118,17 @@ async function handleMCPRequestAsync( const baseUrl = process.env.BUN_PUBLIC_BASE_URL || "http://localhost:3000"; const result = await executeTool(tool, params?.arguments || {}, baseUrl); + const data = result.data.data; + const isObject = typeof data === "object" && data !== null; return { jsonrpc: "2.0", id, result: { content: [ - { - type: "text", - text: JSON.stringify(result, null, 2), - }, + isObject + ? { type: "json", data: data } + : { type: "text", text: String(data) }, ], }, }; @@ -194,7 +195,7 @@ export const MCPRoute = new Elysia({ // Tools list (debug) .get("/mcp/tools", async ({ set }) => { if (!tools.length) { - + tools = await getMcpTools(OPENAPI_URL, FILTER_TAG); } set.headers["Access-Control-Allow-Origin"] = "*";