mcp-server-setup.ts•1.42 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { logger } from "../utils/error-handling.js";
import type { FigmaApiClient } from "../api/figma-client.js";
import {
fetchFigmaNodeImageTool,
fetchFigmaNodeImageHandler,
} from "../handlers/figma-image-handler.js";
import {
generateCodeFromFigmaFrameTool,
generateCodeFromFigmaFrameHandler,
} from "../handlers/figma-code-handler.js";
/**
* Creates and configures the MCP server with all tools.
*/
export function createMcpServer(figmaClient: FigmaApiClient): McpServer {
const server = new McpServer(
{
name: "figma-mcp-server",
version: "1.0.0",
},
{
capabilities: {
logging: {},
tools: {},
},
}
);
logger.info("Setting up MCP server tools");
server.tool(
fetchFigmaNodeImageTool.name,
fetchFigmaNodeImageTool.description,
fetchFigmaNodeImageTool.inputSchema,
async (params) => fetchFigmaNodeImageHandler(figmaClient, params)
);
server.tool(
generateCodeFromFigmaFrameTool.name,
generateCodeFromFigmaFrameTool.description,
generateCodeFromFigmaFrameTool.inputSchema,
async (params) => generateCodeFromFigmaFrameHandler(figmaClient, params)
);
logger.info("MCP server tools registered successfully", {
toolCount: 4,
tools: [fetchFigmaNodeImageTool.name, generateCodeFromFigmaFrameTool.name],
});
return server;
}