2.5 KiB
Tutorials
Master usage of Gemini CLI to automate development tasks.
Setting up Model Context Protocol (MCP) Servers
[!NOTE] Before using a third-party MCP server, ensure you trust its source and understand the tools it provides. Your use of third-party servers is at your own risk.
GitHub MCP Server
[!WARNING] The GitHub MCP Server has known security vulnerabilities, proceed with caution.
The GitHub MCP server provides tools for interacting with GitHub repositories, such as creating issues, commenting on pull requests, and more.
Prerequisites
Before you begin, ensure you have the following installed and configured:
- Docker: Install and run Docker.
- GitHub Personal Access Token (PAT): Create a new classic or fine-grained PAT with the necessary scopes.
Guide
Configure the MCP Server in settings.json
In your project's root directory, create or open the .gemini/settings.json
file. Add the mcpServers
configuration block to instruct Gemini how to launch the GitHub server.
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}
Set Your GitHub Token
[!CAUTION] Using a broadly scoped personal access token that has access to personal and private repositories can lead to information from the private repository leaked into the public repository. We recommend using a fine grained access token that doesn't share access to both public and private repositories.
Use an environment variable to store your PAT.
GITHUB_PERSONAL_ACCESS_TOKEN="pat_YourActualGitHubTokenHere"
Gemini CLI will automatically substitute the ${GITHUB_PERSONAL_ACCESS_TOKEN}
placeholder from your settings.json
file.
Launch Gemini CLI and Verify the Connection
Gemini CLI will automatically read your configuration and launch the GitHub MCP server in the background. You can ask Gemini CLI to perform GitHub actions in natural language.
"get all open issues assigned to me in the 'foo/bar' repo and prioritize them"