← GitHub MCP Server

GitHub MCP Server 2.5.0

npm · @0xshariq/github-mcp-server · current release

35
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-17T11:35:35.951Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {},
  "logging": {},
  "experimental": {}
}

Tools 35

ToolCategoryAnnotationsRisk
git-addAdds a specific file to the staging area
Input schema
{
  "type": "object",
  "properties": {
    "files": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The files to add to the staging area"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "files"
  ]
}
— · —
git-add-allAdds all files to the staging area
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-bisectBinary search through commit history to find bugs
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "action": {
      "type": "string",
      "enum": [
        "start",
        "bad",
        "good",
        "reset",
        "status"
      ],
      "description": "The bisect action to perform"
    },
    "commit": {
      "type": "string",
      "description": "Specific commit hash (optional for bad/good actions)"
    }
  },
  "required": [
    "action"
  ]
}
— · —
git-blameShow line-by-line authorship information for a file
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "filePath": {
      "type": "string",
      "description": "The path to the file to show blame information for"
    },
    "lineRange": {
      "type": "string",
      "description": "Line range to show blame for (e.g., '1,10' or '5,+10')"
    }
  },
  "required": [
    "filePath"
  ]
}
— · —
git-branchLists all branches or creates a new branch
Input schema
{
  "type": "object",
  "properties": {
    "branchName": {
      "type": "string",
      "description": "Name of the branch to create (leave empty to list branches)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-checkoutSwitches to a branch or creates and switches to a new branch
Input schema
{
  "type": "object",
  "properties": {
    "branchName": {
      "type": "string",
      "description": "Name of the branch to switch to"
    },
    "createNew": {
      "type": "boolean",
      "description": "Create a new branch if it doesn't exist (default: false)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "branchName"
  ]
}
— · —
git-cherry-pickApply changes from a specific commit to the current branch
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "commitHash": {
      "type": "string",
      "description": "The commit hash to cherry-pick"
    }
  },
  "required": [
    "commitHash"
  ]
}
— · —
git-cleanRepository cleanup and maintenance with backup options
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "mode": {
      "type": "string",
      "enum": [
        "soft",
        "normal",
        "aggressive",
        "backup",
        "restore"
      ],
      "description": "Cleanup mode to use"
    },
    "target": {
      "type": "string",
      "description": "Specific target to clean (files, branches, tags, remotes)"
    },
    "backup": {
      "type": "boolean",
      "description": "Whether to create backup before cleaning"
    },
    "force": {
      "type": "boolean",
      "description": "Force cleanup without confirmation"
    }
  }
}
— · —
git-cloneClones a repository
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Repository URL to clone"
    },
    "targetDir": {
      "type": "string",
      "description": "Target directory name for the cloned repository"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "url"
  ]
}
— · —
git-commitCommits staged files
Input schema
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Commit message"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "message"
  ]
}
— · —
git-devDevelopment session management with auto-save and branch switching
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "action": {
      "type": "string",
      "enum": [
        "start",
        "save",
        "switch",
        "resume",
        "status",
        "clean"
      ],
      "description": "Development action to perform"
    },
    "session": {
      "type": "string",
      "description": "Development session name"
    },
    "message": {
      "type": "string",
      "description": "Save message for session snapshots"
    }
  },
  "required": [
    "action"
  ]
}
— · —
git-diffShows differences between commits, branches, or working directory
Input schema
{
  "type": "object",
  "properties": {
    "target": {
      "type": "string",
      "description": "Target to compare against (commit hash, branch name, etc.)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-flowComplete Git workflow: add all changes, commit with message, and push to remote
Input schema
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Commit message for the workflow"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "message"
  ]
}
— · —
git-flowEnhanced Git workflow automation with intelligent defaults and team collaboration
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "action": {
      "type": "string",
      "enum": [
        "init",
        "feature-start",
        "feature-finish",
        "release-start",
        "release-finish",
        "hotfix-start",
        "hotfix-finish",
        "status"
      ],
      "description": "Flow action to perform"
    },
    "name": {
      "type": "string",
      "description": "Name for feature/release/hotfix branches"
    },
    "message": {
      "type": "string",
      "description": "Commit message for operations that require it"
    }
  },
  "required": [
    "action"
  ]
}
— · —
git-initInitializes a new Git repository
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to initialize as a Git repository (defaults to current working directory)"
    }
  }
}
— · —
git-logShows commit history
Input schema
{
  "type": "object",
  "properties": {
    "maxCount": {
      "type": "number",
      "description": "Maximum number of commits to show (default: 10)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-mergeMerge a branch into the current branch with conflict detection
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "branch": {
      "type": "string",
      "description": "The branch to merge into the current branch"
    },
    "strategy": {
      "type": "string",
      "description": "Merge strategy (optional): ours, theirs, recursive, etc."
    }
  },
  "required": [
    "branch"
  ]
}
— · —
git-pullPulls changes from the remote repository
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-pushPushes committed files to the remote repository
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-quick-commitQuick commit with automatic message generation based on changes
Input schema
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Commit message (optional - will auto-generate if not provided)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "message"
  ]
}
— · —
git-rebaseRebase current branch onto another branch or commit
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "target": {
      "type": "string",
      "description": "The target branch or commit to rebase onto (defaults to HEAD~1)"
    },
    "interactive": {
      "type": "boolean",
      "description": "Whether to use interactive rebase mode"
    }
  }
}
— · —
git-releaseAutomated release management with version tagging and changelog generation
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "action": {
      "type": "string",
      "enum": [
        "prepare",
        "create",
        "finalize",
        "rollback",
        "status"
      ],
      "description": "Release action to perform"
    },
    "version": {
      "type": "string",
      "description": "Release version (e.g., 1.2.3, major, minor, patch)"
    },
    "message": {
      "type": "string",
      "description": "Release message or changelog"
    },
    "prerelease": {
      "type": "boolean",
      "description": "Whether this is a prerelease"
    }
  },
  "required": [
    "action"
  ]
}
— · —
git-remote-addAdds a remote repository
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name for the remote repository"
    },
    "url": {
      "type": "string",
      "description": "URL of the remote repository"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "name",
    "url"
  ]
}
— · —
git-remote-listLists all remote repositories
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-remote-removeRemoves a remote repository
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the remote repository to remove"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "name"
  ]
}
— · —
git-remote-set-urlChanges the URL of an existing remote repository
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the remote repository"
    },
    "url": {
      "type": "string",
      "description": "New URL for the remote repository"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "name",
    "url"
  ]
}
— · —
git-removeRemoves a specific file from the staging area
Input schema
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "The file to remove from the staging area"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  },
  "required": [
    "file"
  ]
}
— · —
git-remove-allRemoves all files from the staging area
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-resetResets repository to a specific commit or state
Input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "soft",
        "mixed",
        "hard"
      ],
      "description": "Reset mode (default: mixed)"
    },
    "target": {
      "type": "string",
      "description": "Target commit or reference (default: HEAD)"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-stashStashes current changes
Input schema
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Message for the stash"
    },
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-stash-popApplies the most recent stash
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-statusDisplays the status of the git repository
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-syncSynchronize repository: pull from remote, then push local changes
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    }
  }
}
— · —
git-syncAdvanced synchronization with conflict resolution and remote management
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "mode": {
      "type": "string",
      "enum": [
        "pull",
        "push",
        "full",
        "force",
        "upstream"
      ],
      "description": "Sync mode to use"
    },
    "remote": {
      "type": "string",
      "description": "Remote repository name (defaults to origin)"
    },
    "branch": {
      "type": "string",
      "description": "Branch to sync (defaults to current branch)"
    },
    "resolveConflicts": {
      "type": "boolean",
      "description": "Whether to attempt automatic conflict resolution"
    }
  }
}
— · —
git-tagManage Git tags: create, list, delete, or show tag details
Input schema
{
  "type": "object",
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory to run the command in (defaults to current working directory)"
    },
    "action": {
      "type": "string",
      "enum": [
        "list",
        "create",
        "delete",
        "show"
      ],
      "description": "The tag action to perform (list, create, delete, show)"
    },
    "tagName": {
      "type": "string",
      "description": "The name of the tag (required for create, delete, show actions)"
    },
    "message": {
      "type": "string",
      "description": "The tag message (optional for create action)"
    }
  }
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.