@sunwood-ai-labs/ideagram-mcp-server
Version:
A Model Context Protocol server for Ideogram API with v3.0 support
44 lines (43 loc) • 1.7 kB
JavaScript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from "@modelcontextprotocol/sdk/types.js";
import { IdeogramClient } from "./ideogram-client.js";
import { generateImageInputSchema } from "./tools/generateImageSchema.js";
import { generateImageHandler } from "./tools/generateImageHandler.js";
export function createServer(apiKey) {
const ideogramClient = new IdeogramClient(apiKey);
const server = new Server({
name: "ideagram-mcp-server",
version: "0.2.0",
}, {
capabilities: {
tools: {},
},
});
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: "generate_image",
description: "Generate an image using Ideogram AI",
inputSchema: generateImageInputSchema
}
]
};
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
switch (request.params.name) {
case "generate_image":
return await generateImageHandler(ideogramClient, request.params.arguments);
default:
throw new McpError(ErrorCode.MethodNotFound, "Unknown tool");
}
});
return server;
}
export async function runServer(apiKey) {
const server = createServer(apiKey);
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Ideogram MCP server running on stdio");
}