Skip to main content
Glama
Arcia125

Git Workflow Automation MCP Server

by Arcia125

merge_pull_request

Merge a GitHub pull request using specified methods (merge, squash, rebase) and optionally delete the branch. Supports dry runs to preview changes before execution.

Instructions

Merge a GitHub pull request

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deleteBranchNoDelete branch after merge
dryRunNoPreview without executing
mergeMethodNoMerge methodmerge
prNumberYesPull request number
workingDirNoWorking directory path

Implementation Reference

  • The main handler function that executes the merge_pull_request tool. Uses GitHub CLI to merge the PR with specified method and options, handles dry-run and errors.
    async function mergePullRequest( prNumber: string, mergeMethod: 'merge' | 'squash' | 'rebase' = 'merge', deleteBranch: boolean = true, workingDir?: string, dryRun: boolean = false ): Promise<WorkflowResult> { try { if (dryRun) { return { success: true, message: "Dry run: Would merge pull request", details: { prNumber, mergeMethod, deleteBranch } }; } // Merge PR using GitHub CLI with cleared tokens const mergeFlag = mergeMethod === 'squash' ? '--squash' : mergeMethod === 'rebase' ? '--rebase' : '--merge'; const deleteFlag = deleteBranch ? '--delete-branch' : ''; const command = `gh pr merge ${prNumber} ${mergeFlag} ${deleteFlag}`.trim(); const result = await executeWithClearedTokens(command, workingDir); return { success: true, message: "Successfully merged pull request", details: { prNumber, mergeMethod, output: result.stdout } }; } catch (error: any) { return { success: false, message: "Failed to merge pull request", error: `Failed to merge pull request: ${error.message}` }; } }
  • Input schema definition for the merge_pull_request tool, specifying parameters, types, descriptions, defaults, and required fields.
    inputSchema: { type: "object", properties: { prNumber: { type: "string", description: "Pull request number" }, mergeMethod: { type: "string", enum: ["merge", "squash", "rebase"], description: "Merge method", default: "merge" }, deleteBranch: { type: "boolean", description: "Delete branch after merge", default: true }, workingDir: { type: "string", description: "Working directory path" }, dryRun: { type: "boolean", description: "Preview without executing", default: false } }, required: ["prNumber"] }
  • src/index.ts:487-520 (registration)
    Tool registration in the ListToolsRequestSchema handler, defining name, description, and input schema.
    { name: "merge_pull_request", description: "Merge a GitHub pull request", inputSchema: { type: "object", properties: { prNumber: { type: "string", description: "Pull request number" }, mergeMethod: { type: "string", enum: ["merge", "squash", "rebase"], description: "Merge method", default: "merge" }, deleteBranch: { type: "boolean", description: "Delete branch after merge", default: true }, workingDir: { type: "string", description: "Working directory path" }, dryRun: { type: "boolean", description: "Preview without executing", default: false } }, required: ["prNumber"] } },
  • src/index.ts:606-614 (registration)
    Registration/dispatch in the CallToolRequestSchema switch statement, mapping tool name to handler function call with argument parsing.
    case "merge_pull_request": result = await mergePullRequest( args?.prNumber as string, (args?.mergeMethod as 'merge' | 'squash' | 'rebase') || 'merge', (args?.deleteBranch as boolean) ?? true, args?.workingDir as string, (args?.dryRun as boolean) || false ); break;

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Arcia125/git-workflow-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server