Skip to main content
Glama
mattyatea

Git Conflict MCP

by mattyatea

git-conflict-mcp

A powerful Model Context Protocol (MCP) server designed to help AI agents and developers resolve Git merge conflicts efficiently. It includes a built-in visual WebUI for interactive conflict resolution.

Features

  • MCP Tools: Full suite of tools for agents to detect, read, and resolve git conflicts.

  • Visual WebUI: A dedicated web interface (default: http://localhost:3456) for human-in-the-loop resolution.

    • Syntax Highlighting: Read code clearly with automatic language detection.

    • Diff View: See changes clearly with intelligent diff display.

    • Editable Interface: Directly edit conflicting files in the browser.

    • IDE Integration: One-click opening of files in your preferred editor (VSCode, WebStorm, Cursor, etc.).

  • Smart Port Management: Automatically detects if the WebUI is already running and reuses the instance to avoid conflicts.

  • Conflict Tracking: Keeps track of resolution status and rejection reasons.

Related MCP server: semamerge

Usage

via npx

You can run the server directly using npx. This requires no manual installation if you have Node.js installed.

npx -y git-conflict-mcp

The WebUI will start automatically. You can access it at: http://localhost:3456

MCP Configuration

Claude Desktop

You can add the server using the claude CLI:

claude mcp add git-conflict-mcp -- npx -y git-conflict-mcp

Or manually edit claude_desktop_config.json:

{
  "mcpServers": {
    "git-conflict-mcp": {
      "command": "npx",
      "args": ["-y", "git-conflict-mcp"],
      "env": {
        "WEBUI_PORT": "3456"
      }
    }
  }
}

Codex

You can add the server using the codex CLI:

codex mcp add git-conflict-mcp -- npx -y git-conflict-mcp

JSON Type (Generic)

{
  "mcpServers": {
    "git-conflict-mcp": {
      "command": "npx",
      "args": ["-y", "git-conflict-mcp"]
    }
  }
}

Development

To install dependencies:

npm install

To build (includes both Core and WebUI):

npm run build

To run locally:

npm start

To run WebUI in development mode:

npm run dev:webui

Available Tools

5 tools
init_projectA

Initialize the project by setting the root directory path. This must be the first tool called to set up the environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the git project root.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool initializes the project and sets the root directory path, but lacks details on behavioral traits such as what happens if called multiple times, whether it validates the path, if it creates directories, or what the environment setup entails. This is a significant gap for a setup tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and followed by usage guidance. Every sentence earns its place with no wasted words, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (setup operation with one parameter), no annotations, and no output schema, the description is adequate but incomplete. It covers purpose and usage well but lacks details on behavior, error handling, or return values, which are important for a setup tool. It meets minimum viability but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'path' parameter as an absolute path to the git project root. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Initialize the project by setting the root directory path.' It specifies the verb ('Initialize') and resource ('project'), and while it doesn't explicitly distinguish from siblings, the purpose is distinct enough from conflict-related tools. However, it doesn't fully differentiate from potential setup alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'This must be the first tool called to set up the environment.' This clearly indicates when to use it (first, for setup) and implies when not to use it (after initialization or for other purposes). No alternatives are named, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_conflictsA

List files with git conflicts including conflict types. Returns a map of ID to file info with conflict type and suggested resolution. (Rate limit: 2 calls per minute). IMPORTANT: You must run init_project before using this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default is 1.
extensionNoFilter by file extension (e.g. 'ts', '.ts').
pathNoFilter by file path (substring match).
showTypesNoShow detailed conflict types and resolution suggestions. Default is true.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses key behavioral traits: the return format ('map of ID to file info with conflict type and suggested resolution'), a rate limit ('2 calls per minute'), and a prerequisite. However, it doesn't mention potential side effects (e.g., if this is read-only or has any impact) or error handling, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It's front-loaded with the core purpose, followed by return details, rate limit, and prerequisite. Each sentence adds value, but the structure could be slightly improved by separating the prerequisite into its own sentence for clarity. Overall, it's efficient with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does well by explaining the return format and adding a rate limit and prerequisite. However, for a tool with 4 parameters and no output schema, it could benefit from more detail on error cases or example usage to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 4 parameters. The description adds no parameter-specific information beyond what's in the schema, such as how 'extension' or 'path' filters interact with conflict listing. Baseline is 3 when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'files with git conflicts including conflict types', specifying what the tool does. It distinguishes from siblings like 'read_conflict' (likely reads a specific conflict) and 'resolve_conflict' (resolves conflicts) by focusing on listing all conflicts with types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states 'IMPORTANT: You must run init_project before using this tool', providing a clear prerequisite. While it doesn't mention when to use alternatives like 'post_resolve' or 'read_conflict', the prerequisite guidance is strong and specific for this tool's context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_resolveA

Execute this tool BEFORE running resolve_conflict to confirm the resolution process. This acts as a safety confirmation step.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that this is a confirmation step with safety implications, which is useful behavioral context. However, it doesn't specify what happens during execution (e.g., whether it prompts for user input, logs the action, or has side effects) or any constraints like permissions needed. The description adds some value but leaves gaps in behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that are front-loaded with the key action and context. Every sentence earns its place: the first states what to do and when, the second explains the purpose. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple confirmation step with no parameters) and lack of annotations/output schema, the description is reasonably complete. It explains the purpose, usage timing, and relationship to sibling tools. However, it could be more complete by specifying what exactly is being confirmed or any behavioral outcomes, which would help an agent understand the tool's effect fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion about parameters. Baseline for 0 parameters is 4, as the description appropriately focuses on usage rather than inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a safety confirmation step that must be executed before running 'resolve_conflict'. It specifies the action ('execute this tool') and the context ('before running resolve_conflict'), though it doesn't explicitly mention what resource or entity it confirms resolution for. It distinguishes from sibling 'resolve_conflict' by being a prerequisite step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: 'Execute this tool BEFORE running resolve_conflict' establishes a clear temporal dependency, and 'to confirm the resolution process' explains the purpose. It distinguishes from the alternative 'resolve_conflict' by positioning this as a prerequisite safety check. No misleading guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_conflictA

Read the content of a conflicted file by its ID. (Rate limit: 5 calls per minute). You must use list_conflicts to get the ID first.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the file to read (from list_conflicts).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and adds valuable behavioral context: it discloses a rate limit ('5 calls per minute') and the prerequisite dependency on list_conflicts. However, it doesn't describe the return format or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste: the first states the purpose and rate limit, the second provides critical usage guidance. It's front-loaded with essential information and appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with 1 parameter and no output schema, the description is nearly complete: it covers purpose, usage, and rate limits. The main gap is lack of output format details, but given the tool's simplicity, this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'id' parameter fully. The description adds minimal value by restating that the ID comes from list_conflicts, which is already in the schema description, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read the content'), target resource ('conflicted file'), and required identifier ('by its ID'), distinguishing it from siblings like list_conflicts (which lists conflicts) and resolve_conflict (which resolves them).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('You must use list_conflicts to get the ID first'), providing a clear prerequisite and distinguishing it from alternatives like init_project or post_resolve that serve different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_conflictA

Request conflict resolution by its ID or file path. The actual resolution will be performed by a human through the WebUI. Supports different resolution types for various conflict scenarios (content conflicts, delete/modify conflicts, etc.). You must run post_resolve before running this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoThe ID of the file to resolve (from list_conflicts).
pathNoThe file path to resolve.
typeNoResolution type. Default is 'resolve'.resolve
reasonNoThe reason why this resolution is valid.
forceNoForce resolution, bypassing the safety check.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains that resolution is performed by a human through WebUI (not automated), which is a key behavioral trait. It mentions different resolution types but doesn't detail what happens after the request (e.g., response format, timing, or error handling). For a tool with no annotations, this is adequate but lacks depth on operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences that each serve a purpose: stating the action, explaining the human/WebUI process, and giving prerequisites. It's front-loaded with the core purpose. There's no wasted text, though it could be slightly more structured (e.g., bullet points for resolution types).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 5 parameters with full schema coverage, the description is moderately complete. It covers the purpose, human involvement, and prerequisites well, but lacks details on return values, error cases, or what 'post_resolve' entails. For a tool that initiates a human process, more context on expected outcomes or follow-up steps would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'ID or file path' (mapping to 'id' and 'path') and 'different resolution types' (mapping to 'type'), but doesn't provide additional context like parameter interactions or examples. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Request conflict resolution by its ID or file path' with the specific action being a request for human resolution through WebUI. It distinguishes from siblings like 'list_conflicts' (which lists) and 'post_resolve' (which follows up), but doesn't explicitly contrast with 'read_conflict'. The verb 'request' is specific and the resource 'conflict resolution' is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use: for conflict resolution scenarios like content or delete/modify conflicts. It explicitly states 'You must run post_resolve before running this tool', which is a crucial prerequisite. However, it doesn't specify when NOT to use this tool or mention alternatives among siblings, such as when to use 'read_conflict' instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedinit_project
    • First observedlist_conflicts
    • First observedpost_resolve
    • First observedread_conflict
    • First observedresolve_conflict

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: init_project sets up the environment, list_conflicts enumerates conflicts, read_conflict reads file content, post_resolve confirms resolution, and resolve_conflict requests resolution. The descriptions clearly differentiate their roles, eliminating any ambiguity.

Naming Consistency4/5

The tools follow a consistent verb_noun pattern (e.g., init_project, list_conflicts, read_conflict, resolve_conflict), which is predictable and readable. The minor deviation is post_resolve, which uses 'post' as a prefix instead of a verb, but it still fits the overall naming style without causing confusion.

Tool Count5/5

With 5 tools, the count is well-scoped for a Git conflict resolution server. Each tool earns its place by covering essential steps: initialization, listing, reading, confirming, and resolving conflicts, without being overly sparse or bloated.

Completeness4/5

The tool set provides complete coverage for the core Git conflict resolution workflow, including setup, inspection, and resolution steps. A minor gap is the lack of a tool to directly modify or apply resolutions programmatically, as resolve_conflict relies on human intervention via WebUI, but agents can still navigate the process effectively.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides comprehensive Git functionality to MCP clients, enabling users to manage repositories through operations like commits, diffs, and branch management via natural language. It automatically detects the current working directory and supports multi-project workflows across different local environments.
    16
    607
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that detects semantic (non-textual) merge conflicts between Git branches using AST-level analysis. Catches incompatible changes that Git merges cleanly — signature changes, removed exports, parameter changes, interface breaks, and cross-file dependency conflicts.
    4
    55
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    an MCP server that auto-resolves Git merge conflicts so agents only touch the complex hunks — deterministic pattern engine with confidence scores and a full decision trace, plus merge/rebase preview and hunk-level resolution tools
    167
    MIT

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/mattyatea/git-conflict-mcp'

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