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 { WorkItemBatchGetRequest, WorkItemExpand, WorkItemErrorPolicy } from 'azure-devops-node-api/interfaces/WorkItemTrackingInterfaces.js'; export async function getWorkItem(args: WorkItemBatchGetRequest, config: AzureDevOpsConfig) { if (!args.ids || !args.ids.length) { throw new McpError(ErrorCode.InvalidParams, 'Invalid work item ID'); } AzureDevOpsConnection.initialize(config); const connection = AzureDevOpsConnection.getInstance(); const workItemTrackingApi = await connection.getWorkItemTrackingApi(); const workItems = await workItemTrackingApi.getWorkItems( args.ids, args.fields || ['System.Id', 'System.Title', 'System.State', 'System.Description'], args.asOf, WorkItemExpand.All, args.errorPolicy, config.project ); return { content: [ { type: 'text', text: JSON.stringify(workItems, null, 2), }, ], }; }