Notion API MCP Server

by pbohannon
Verified
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { AzureDevOpsConnection } from '../../api/connection.js'; import { AzureDevOpsConfig } from '../../config/environment.js'; import { WikiType } from 'azure-devops-node-api/interfaces/WikiInterfaces.js'; interface CreateWikiArgs { name: string; projectId?: string; mappedPath?: string; } export async function createWiki(args: CreateWikiArgs, config: AzureDevOpsConfig) { if (!args.name) { throw new McpError(ErrorCode.InvalidParams, 'Wiki name is required'); } AzureDevOpsConnection.initialize(config); const connection = AzureDevOpsConnection.getInstance(); const wikiApi = await connection.getWikiApi(); try { const wikiCreateParams = { name: args.name, projectId: args.projectId || config.project, mappedPath: args.mappedPath || '/', type: WikiType.ProjectWiki, }; const wiki = await wikiApi.createWiki(wikiCreateParams, config.project); return { content: [ { type: 'text', text: JSON.stringify(wiki, null, 2), }, ], }; } catch (error: unknown) { if (error instanceof McpError) throw error; const errorMessage = error instanceof Error ? error.message : 'Unknown error'; throw new McpError( ErrorCode.InternalError, `Failed to create wiki: ${errorMessage}` ); } }