Personal GitHub MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LLM_MODEL | No | Alias for OPENAI_MODEL. | |
| LOG_LEVEL | No | DEBUG, INFO, WARNING, ERROR. | INFO |
| LLM_API_KEY | No | Alias for OPENAI_API_KEY. | |
| MAX_RESULTS | No | Default result cap for list/search tools (1–100). | 20 |
| GITHUB_TOKEN | No | GitHub Personal Access Token (classic repo scope, or a fine-grained token with read/write on your repos). | |
| LLM_BASE_URL | No | Alias for OPENAI_BASE_URL. | |
| OPENAI_MODEL | No | Model used for README generation. | gpt-4o-mini |
| DEFAULT_BRANCH | No | Branch used when initializing new repos. | main |
| OPENAI_API_KEY | No | Optional OpenAI-compatible API key for LLM-generated READMEs. | |
| GITHUB_USERNAME | No | Account used to scope searches/repo listing. | token owner |
| GIT_AUTHOR_NAME | No | Author for local git commits. | Personal GitHub MCP |
| OPENAI_BASE_URL | No | Base URL for an OpenAI-compatible chat/completions endpoint. | https://api.openai.com/v1 |
| EULER_REPOSITORY | No | Repo that stores Project Euler solutions. | project-euler |
| GIT_AUTHOR_EMAIL | No | Committer email for local commits. | personal-github-mcp@users.noreply.github.com |
| DEFAULT_VISIBILITY | No | Visibility for new repos (private/public). | private |
| PERSONAL_GITHUB_TOKEN | No | Alias for GITHUB_TOKEN. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_repositoriesA | List your GitHub repositories. Args: visibility: 'all', 'private' or 'public'. sort: 'pushed', 'updated', 'created' or 'full_name'. limit: maximum number of repositories to return. |
| repository_summaryB | Return a high-level summary of a GitHub repository. Args: name: repository name ('repo' or 'owner/repo'). |
| create_repositoryA | Create a new repository on GitHub under your account. Args: name: desired repository name (letters, digits, '-', '_', '.'). description: short description shown on GitHub. private: whether the repository is private. |
| project_statisticsA | Show development statistics for a repository. Includes language breakdown, commit counts per author, and open issues / pull requests. Args: name: repository name ('repo' or 'owner/repo'). |
| explain_repositoryB | Explain what a repository is about in plain language. Args: name: repository name ('repo' or 'owner/repo'). |
| stale_repository_reportA | List repositories that have not been pushed to recently. Args: threshold_days: only report repos idle for at least this many days. limit: maximum number of repos to report. |
| recommend_projectA | Recommend a project to work on next. Scores your repositories by recency, activity and (optionally) a comma-separated list of interests matched against the primary language. Args: interests: comma-separated language interests, e.g. 'python, rust'. limit: number of recommendations to return. |
| publish_projectA | Publish a local project as a new GitHub repository. Initializes a git repository if needed, commits all files, creates the remote repository on GitHub and pushes the default branch. Args: path: absolute path to the local project directory. repo_name: GitHub repository name (defaults to the folder name). description: short description for the new repository. private: whether the repository is private. commit_message: optional commit message for the initial commit. branch: default branch for new repositories. |
| publish_current_projectA | Publish the current working directory as a GitHub repository. Detects the project, generates a README and .gitignore when missing, initializes git if needed, creates the GitHub repository if needed, commits and pushes everything, then returns the repository URL. Args: repo_name: GitHub repository name (defaults to the folder name). description: short description for the new repository. private: whether the repository is private. commit_message: optional commit message for the initial commit. branch: default branch for new repositories. |
| backup_projectA | Commit local changes and push them to GitHub. Requires Args: path: absolute path to the local project directory. commit_message: optional commit message (defaults to a dated message). |
| search_codeA | Search GitHub code for a keyword. Args: keyword: the text to search for. language: optional filter, e.g. 'python'. owner: optional GitHub user/org to scope the search to. limit: maximum number of results. |
| search_repositoryA | Search for repositories by name. Args: name: repository name to search for. owner: optional GitHub user/org to scope the search to. limit: maximum number of results. |
| where_did_i_useA | Find where you used a given keyword in your own repositories. Args: keyword: the text to search for in your code. language: optional filter, e.g. 'python'. limit: maximum number of results. |
| search_my_engineering_memoryA | Search your engineering memory across all of your repositories. Looks through repository metadata, README files, architecture documentation and source code, returning ranked results. Args: keyword: the text to search for. limit: maximum number of ranked results to return. |
| upload_euler_solutionB | Upload a Project Euler solution to your solutions repository. Files are stored as Args: problem_number: the Project Euler problem number. file_path: absolute path to the local solution file. commit_message: optional commit message. |
| publish_euler_solutionA | Publish a Project Euler solution with an auto-generated README. Detects the problem in the current directory (or Args: path: optional directory containing the problem (defaults to the current working directory). commit_message: optional commit message. |
| update_progressA | Report your current Project Euler progress from GitHub. Returns the list of solved problems, totals and the next unsolved problem number. |
| compare_repositoriesA | Compare two repositories and summarize their differences. Args: repository_a: first repository name ('repo' or 'owner/repo'). repository_b: second repository name ('repo' or 'owner/repo'). |
| dependency_summaryA | Summarize the dependencies of a local project. Detects a manifest file (pyproject.toml, requirements.txt, package.json, Cargo.toml, go.mod, Gemfile, composer.json) and lists its dependencies. Args: path: absolute path to the local project directory. |
| architecture_summaryA | Summarize the architecture of a local project. Reports file language breakdown, top-level structure, and likely entry points. Args: path: absolute path to the local project directory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sam170203/personal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server