Skip to main content
Glama
khangte

github-mcp-server

by khangte

github-mcp-server

GitHub API를 조회하는 MCP 서버. FastMCP 기반으로 구현되었으며 uvx로 바로 실행할 수 있다.

이 저장소의 FastMCP 구현 패턴은 .claude/skills/fastmcp-server.md에 정리되어 있다.

도구

도구

설명

get_repo_info

저장소 기본 정보 (이름, 설명, 스타, 포크, 이슈 수)

list_open_prs

열린 Pull Request 목록 (최대 20개)

get_latest_release

최신 릴리즈 정보 (태그, 이름, 본문, 날짜)

Related MCP server: GitHub MCP Server

설치 및 실행

uvx (권장)

GITHUB_TOKEN=your_token uvx github-mcp-server

로컬 개발

uv sync
GITHUB_TOKEN=your_token uv run python server.py

환경변수

변수

필수

설명

GITHUB_TOKEN

권장

GitHub Personal Access Token. 없으면 공개 저장소만 조회 가능하며 API 요청 제한이 낮아짐

.env 파일에 작성하면 자동으로 로드된다:

GITHUB_TOKEN=ghp_xxxxxxxxxxxx

MCP 클라이언트 연결

팀원용 (GitHub 저장소에서 직접 설치)

.mcp.json.team에 정의되어 있다. 사용하려면 프로젝트 루트에 복사하고 GITHUB_TOKEN을 설정한다:

cp .mcp.json.team .mcp.json
export GITHUB_TOKEN=your_token
{
  "mcpServers": {
    "github-tools": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/myorg/github-mcp-server",
        "github-mcp-server"
      ],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

로컬 개발용 (이 저장소를 직접 수정하는 경우)

프로젝트 루트 .mcp.json에 아래처럼 로컬 소스를 직접 실행하도록 설정한다. .mcp.json은 Claude Code가 프로젝트 루트에서만 자동으로 인식하므로 다른 경로(.claude/ 등)에 두면 로드되지 않는다.

{
  "mcpServers": {
    "github-tools": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "python", "server.py"],
      "cwd": "/absolute/path/to/github-mcp-server"
    }
  }
}

Available Tools

3 tools
get_latest_releaseB

저장소의 최신 릴리즈 정보를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes저장소 이름.
ownerYes저장소 소유자(사용자 또는 조직) 이름.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
bodyYes
nameYes
tag_nameYes
published_atYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits such as error handling, rate limits, or safety considerations. It only states the basic function.

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?

Single sentence that is concise and front-loaded, no wasted words.

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 presence of an output schema, return values are covered. However, the description lacks mention of edge cases (e.g., no releases) and any prerequisites, leaving some 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 coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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?

Description clearly states the tool returns the latest release info of a repository, using a specific verb and resource. It distinguishes from sibling tools which handle repo info and PRs.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_repo_info or list_open_prs. The description only states what it does, not when it is appropriate.

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

get_repo_infoC

GitHub 저장소의 기본 정보를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes저장소 이름.
ownerYes저장소 소유자(사용자 또는 조직) 이름.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
nameYes
forksYes
starsYes
languageYes
descriptionYes
open_issuesYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, authentication needs, rate limits, or side effects. The implied read operation is not explicitly confirmed.

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 a single concise sentence. It is front-loaded and efficient, though it could include more useful information without being verbose.

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 presence of an output schema, the description does not need to explain return values. However, it could specify what 'basic information' entails (e.g., metadata fields). The description is adequate but lacks detail.

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 coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 it returns basic information of a GitHub repository. While it doesn't explicitly differentiate from sibling tools, the context of siblings (get_latest_release, list_open_prs) makes the purpose distinct enough.

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

Usage Guidelines2/5

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

No usage guidelines are provided. There's no mention of when to use this tool versus alternatives, nor any prerequisites or conditions. The description simply states what it does without context.

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

list_open_prsA

저장소의 열린 Pull Request 목록을 최대 20개 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes저장소 이름.
ownerYes저장소 소유자(사용자 또는 조직) 이름.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description partially covers behavioral traits by mentioning the 20-item limit. However, it omits details about pagination, ordering, or read-only nature, leaving gaps for an AI agent.

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?

A single, efficient sentence with no redundancy. Every word serves a purpose, making it easy to parse quickly.

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

Completeness5/5

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

Given the tool's simplicity, the presence of an output schema, and no nested objects, the description is adequately complete. No further context is necessary.

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?

Both parameters are fully described in the schema (100% coverage), so baseline is 3. The description does not add any additional meaning beyond the schema's property descriptions.

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 'returns', the resource 'open Pull Requests', and a specific limit of 20. It effectively distinguishes itself from sibling tools like get_latest_release and get_repo_info.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description lacks any directive for appropriate usage.

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. 3 tool updatesv0.1.0
    • First observedget_latest_release
    • First observedget_repo_info
    • First observedlist_open_prs

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct resource: release, repo info, and pull requests. There is no overlap in functionality.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with verbs 'get' and 'list', maintaining clear and predictable naming.

Tool Count2/5

Only 3 tools for a server named 'github-mcp-server' is far too few. A typical GitHub integration would have many more tools covering various operations.

Completeness2/5

The tool surface only covers read operations on releases, repo info, and open PRs, missing critical write operations and other common resources like issues, commits, and branches.

Maintenance

ActivitySlowing
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

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/khangte/github-mcp-server'

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