Notion API MCP Server
by pbohannon
Verified
import { getPullRequests } from './get.js';
import { createPullRequest } from './create.js';
import { updatePullRequest } from './update.js';
import { AzureDevOpsConfig } from '../../config/environment.js';
const definitions = [
{
name: 'list_pull_requests',
description: 'List all pull requests in the project',
inputSchema: {
type: 'object',
properties: {
status: {
type: 'string',
description: 'Filter by PR status (active, completed, abandoned)',
enum: ['active', 'completed', 'abandoned'],
},
creatorId: {
type: 'string',
description: 'Filter by creator ID (optional)',
},
repositoryId: {
type: 'string',
description: 'Filter by repository ID (optional)',
},
},
},
},
{
name: 'create_pull_request',
description: 'Create a new pull request',
inputSchema: {
type: 'object',
properties: {
repositoryId: {
type: 'string',
description: 'Repository ID',
},
sourceRefName: {
type: 'string',
description: 'Source branch name (e.g. refs/heads/feature)',
},
targetRefName: {
type: 'string',
description: 'Target branch name (e.g. refs/heads/main)',
},
title: {
type: 'string',
description: 'Pull request title',
},
description: {
type: 'string',
description: 'Pull request description',
},
reviewers: {
type: 'array',
description: 'List of reviewer IDs (optional)',
items: {
type: 'string',
},
},
},
required: ['repositoryId', 'sourceRefName', 'targetRefName', 'title'],
},
},
{
name: 'update_pull_request',
description: 'Update an existing pull request',
inputSchema: {
type: 'object',
properties: {
pullRequestId: {
type: 'number',
description: 'Pull Request ID',
},
status: {
type: 'string',
description: 'New status (active, abandoned, completed)',
enum: ['active', 'abandoned', 'completed'],
},
title: {
type: 'string',
description: 'New title (optional)',
},
description: {
type: 'string',
description: 'New description (optional)',
},
mergeStrategy: {
type: 'string',
description: 'Merge strategy (optional)',
enum: ['squash', 'rebase', 'merge'],
},
},
required: ['pullRequestId'],
},
},
];
export const pullRequestTools = {
initialize: (config: AzureDevOpsConfig) => ({
getPullRequests: (args: any) => getPullRequests(args, config),
createPullRequest: (args: any) => createPullRequest(args, config),
updatePullRequest: (args: any) => updatePullRequest(args, config),
definitions,
}),
definitions,
};