#!/usr/bin/env node import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js"; // Initialize MCP Server const server = new Server( { name: "renderer-mcp-server", version: "1.0.0", }, { capabilities: { tools: {}, }, } ); // Tool definitions const TOOLS = [ { name: "get_config_example", description: "Get example TOML configuration", inputSchema: { type: "object", properties: { config_type: { type: "string", enum: ["home", "projects", "blog", "resume", "social"], description: "Type of configuration needed" } }, required: ["config_type"] } }, // ... more tools ]; // Handle tool listing server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS, })); // Handle tool execution server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { switch (name) { case "get_config_example": return getConfigExample(args.config_type); // ... more cases default: throw new Error(`Unknown tool: ${name}`); } } catch (error) { return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true }; } }); // Start server async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error("Renderer MCP Server running"); } main().catch(console.error);