aceternityui-mcp
Version:
A Model Context Protocol (MCP) server that provides seamless integration with the Aceternity UI Components. This package enables AI assistants and applications to interact with Aceternity UI Components, usage and install commands.
60 lines (59 loc) • 1.96 kB
JavaScript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
import { toolHandlers, tools } from "./tools/definitions.js";
const server = new Server({
name: "aceternity-ui-mcp",
version: "1.0.0",
title: "Aceternity UI MCP Server",
}, {
capabilities: {
tools: {},
},
});
server.setRequestHandler(ListToolsRequestSchema, async () => {
return { tools };
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
try {
const toolDefinition = toolHandlers[name];
if (!toolDefinition) {
throw new Error(`Unknown tool: ${name}`);
}
// Validate arguments with Zod schema
const validatedArgs = toolDefinition.schema.parse(args);
// Call the handler with validated arguments
const result = await toolDefinition.handler(validatedArgs);
return {
content: [
{
type: "text",
text: JSON.stringify(result, null, 2),
},
],
};
}
catch (error) {
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred.";
return {
content: [
{
type: "text",
text: `Error calling tool ${name}: ${errorMessage}`,
},
],
isError: true,
};
}
});
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.log("Aceternity UI MCP server is running...");
}
main().catch((error) => {
console.error("Fatal error starting server:", error);
process.exit(1);
});