mcp-confluence

import { getTextContent } from "./src/utils"; import { GetPromptRequestSchema, ListPromptsRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { ConfluencePagePrompt } from "./src/prompts/confluence-page"; import { BlogPostPrompt } from "./src/prompts/blog-post"; const server = new Server( { name: "confluence mcp", version: "0.1.0", }, { capabilities: { resources: {}, tools: {}, prompts: {}, }, }, ); const _confluencePagePrompt = new ConfluencePagePrompt(); const _blogPostPrompt = new BlogPostPrompt(); server.setRequestHandler(ListPromptsRequestSchema, () => { return { prompts: [_confluencePagePrompt.promptObject, _blogPostPrompt.promptObject], }; }); server.setRequestHandler(GetPromptRequestSchema, async (request) => { switch (request.params.name) { case _confluencePagePrompt.promptObject.name: if (request.params.arguments) { const { pageId } = request.params.arguments; const response = await _confluencePagePrompt.handler(pageId); return response; } case _blogPostPrompt.promptObject.name: if (request.params.arguments) { const { blogId } = request.params.arguments; const response = await _blogPostPrompt.handler(blogId); return response; } default: throw new Error(`Unknown prompt name: ${request.params.name}`); } }); const run_server = async () => { const transport = new StdioServerTransport(); await server.connect(transport); }; run_server().catch((error) => { console.error(error); process.exit(1); });