MCP GitHub Navigator
Allows interaction with GitHub data, providing tools to list repositories, view issues, and read files via the GitHub REST API.
MCP GitHub Navigator
A Model Context Protocol (MCP) server that provides an AI agent with secure access to GitHub data, allowing it to list repositories, view issues, and read files via the GitHub API.
HLD (High-Level Design)
Architecture: The server is built in Node.js/TypeScript and implements the standard MCP
@modelcontextprotocol/sdk. It uses a StdioServerTransport to communicate directly with any MCP-compatible AI client via standard input/output.External Integration: Uses Axios to connect to the GitHub REST API (
https://api.github.com).Authentication: Relies on a Personal Access Token provided via the
GITHUB_TOKENenvironment variable.
Related MCP server: @cloud9-labs/mcp-github
LLD (Low-Level Design)
Entry Point:
src/index.tsis the main entry point which initializes theServerinstance and maps MCP capabilities.Tools Registered:
get_user: UsesGET /userto return the authenticated GitHub profile.list_repos: UsesGET /user/repos?sort=updated&per_page=10to return recently active repositories.
Data Flow: When an AI client sends a
CallToolRequestSchemaforlist_repos, the MCP server validates the tool name, invokes the corresponding GitHub API endpoint via Axios, formats the JSON response into a text block, and returns it to the client.
TDD (Test-Driven Development) Strategy
Frameworks: We recommend using
Jestfor executing test suites.Mocking: Testing relies on mocking the
axiosInstanceusing libraries likenockoraxios-mock-adapterto simulate GitHub API responses without requiring an active internet connection or hitting API rate limits.Integration Tests: Creating a mock MCP Client using
@modelcontextprotocol/sdk/clientto test the end-to-end flow of standardCallToolrequests.
Setup Instructions
Prerequisites
Node.js (v16 or higher)
A GitHub Personal Access Token (PAT)
Installation
Clone the repository:
git clone https://github.com/RachitJava/mcp-github.git cd mcp-githubInstall dependencies:
npm installBuild the project:
npm run build
Running the Server
The server requires the GITHUB_TOKEN environment variable to be set. You can run it directly:
export GITHUB_TOKEN="your_personal_access_token_here"
npm startNote: Since this is an MCP server, it is meant to be run by an MCP client (like Claude Desktop) rather than manually.
Available Tools
2 toolsget_userA
Get the authenticated GitHub user details
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It clarifies that the user is the authenticated one, but it does not explicitly state that the operation is read-only, what the return format looks like, or potential errors. However, the word 'Get' strongly implies a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise, front-loaded sentence with no wasted words. It states the action and target clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is adequate but could have been slightly more explicit about what 'details' includes or that it returns the profile object. It is still complete enough for an AI agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema covers 100% of the (empty) parameter set. The description adds meaning by noting the user is 'authenticated', implying no parameters are needed because the identity comes from the session.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Get), the resource (authenticated GitHub user), and the scope (details). It distinguishes itself from the sibling tool list_repos, which deals with repositories, by focusing on the user profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'authenticated user' clearly implies this is for the current user's profile, and it contrasts with list_repos which handles repositories. No explicit exclusions are given, but the context is clear for such a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reposA
List the 10 most recently updated repositories for the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It reveals key constraints (10 most recently updated, authenticated user scope) but does not mention whether private repositories are included, pagination behavior, or typical auth failures. This is adequate but leaves room for more detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and includes the most important qualifiers without any filler. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list operation, the description provides the essential context: what is listed, for whom, and the ordering/limit. It is slightly incomplete in not mentioning alternatives or edge cases, but overall adequate for the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers the input surface. The description adds value by specifying the implicit scope (authenticated user) and the limit of 10, which are meaningful semantics beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List'), the resource ('repositories'), and precise scope ('10 most recently updated', 'for the authenticated user'). It distinguishes the tool from sibling 'get_user' by focusing on repositories rather than user info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: list recent repositories for the authenticated user. It does not explicitly mention alternatives or when not to use it, but the sibling tool is clearly a different concern, so the context is sufficient without exclusions.
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.
2 tool updates
v1.0.0- First observed
get_user - First observed
list_repos
TDQS
The two tools have completely distinct purposes: one retrieves authenticated user details, the other lists repositories. There is no overlap or confusion between them.
Both tools follow the consistent verb_noun pattern (get_user, list_repos), making the naming predictable and clear.
With only 2 tools, the server feels thin for its name 'Navigator', which implies broader GitHub navigation capabilities. The count is borderline acceptable but does not fully earn its place.
The surface is severely limited: it covers only user details and repository listing, missing common operations like fetching a specific repo, listing branches, or viewing commits. Significant gaps exist for a navigation-focused server.
Maintenance
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
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseBqualityBmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- AlicenseBqualityDmaintenanceMCP (Model Context Protocol) server for GitHub API integration. This server provides comprehensive tools for interacting with GitHub repositories, issues, pull requests, branches, and code search through a unified interface.1514MIT
- FlicenseAqualityCmaintenanceAn MCP server that enables AI assistants to list GitHub repositories for a user or organization and list directories within a repository via the GitHub REST API.2-
- FlicenseAqualityCmaintenanceMCP server that wraps GitHub REST API to allow AI agents to search repositories, get repository details, list issues, and read READMEs.4-
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/RachitJava/mcp-github'
If you have feedback or need assistance with the MCP directory API, please join our Discord server