GitHub GraphQL MCP Server

GitHub GraphQL MCP Server

QuentinCody

开发者工具
访问服务器

README

GitHub GraphQL MCP 服务器

一个模型上下文协议 (MCP) 服务器,提供对 GitHub GraphQL API 的访问。 此服务器公开一个工具,允许针对 GitHub 的 API 执行任意 GraphQL 查询和变更。

功能

  • 针对 GitHub 的 API 执行任何 GraphQL 查询
  • 全面的错误处理和报告
  • 包含示例查询的详细文档
  • 支持 GraphQL 操作中的变量

前提条件

  • Python 3.10 或更高版本
  • GitHub 个人访问令牌 (PAT)

安装

  1. 克隆此存储库
  2. 设置虚拟环境(推荐):
    # On macOS/Linux
    python3 -m venv .venv
    source .venv/bin/activate
    
    # On Windows
    python -m venv .venv
    .venv\Scripts\activate
    
  3. 安装依赖项:
    pip install -r requirements.txt
    

用法

运行服务器

# 如果使用虚拟环境,请确保已激活它
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# 使用您的 GitHub 令牌运行服务器
GITHUB_TOKEN=your_github_token_here python github_graphql_mcp_server.py

使用 Claude for Desktop 进行配置

将以下内容添加到您的 Claude Desktop 配置文件:

"github-graphql": {
    "command": "/absolute/path/to/your/.venv/bin/python",
    "args": [
        "/absolute/path/to/github_graphql_mcp_server.py"
    ],
    "options": {
        "cwd": "/absolute/path/to/repository"
    },
    "env": {
        "GITHUB_TOKEN": "your_github_token_here"
    }
}

/absolute/path/to/ 替换为服务器文件的实际路径,并添加您的 GitHub 令牌。

示例查询

获取存储库信息

query GetRepo($owner: String!, $name: String!) {
  repository(owner: $owner, name: $name) {
    name
    description
    stargazerCount
    url
    createdAt
    owner {
      login
      avatarUrl
    }
  }
}

变量:

{
  "owner": "octocat",
  "name": "Hello-World"
}

搜索存储库

query SearchRepos($query: String!, $first: Int!) {
  search(query: $query, type: REPOSITORY, first: $first) {
    repositoryCount
    edges {
      node {
        ... on Repository {
          name
          owner { login }
          description
          stargazerCount
          url
        }
      }
    }
  }
}

变量:

{
  "query": "language:python stars:>1000",
  "first": 5
}

获取用户信息

query GetUserInfo($login: String!) {
  user(login: $login) {
    name
    login
    bio
    avatarUrl
    followers {
      totalCount
    }
    repositories(first: 5, orderBy: {field: STARGAZERS, direction: DESC}) {
      nodes {
        name
        description
        stargazerCount
      }
    }
  }
}

变量:

{
  "login": "octocat"
}

GitHub API 速率限制

请注意 GitHub 的 API 速率限制:

  • 经过身份验证的请求:每小时 5,000 个请求
  • 未经身份验证的请求:每小时 60 个请求

故障排除

如果您遇到问题:

  1. 检查您的 GitHub 令牌是否具有正确的权限
  2. 验证您的虚拟环境是否已正确设置和激活
  3. 确保您的令牌已在环境变量中正确设置
  4. 如果使用 Claude Desktop,请确保 Python 的路径正确(使用虚拟环境 Python 的绝对路径)
  5. 查看服务器日志以获取错误消息
  6. 确保您的 GraphQL 查询对 GitHub 的模式有效
  7. 在进行配置更改后,重新启动 Claude for Desktop

常见错误

spawn python ENOENT

  • 此错误表示未找到 Python 可执行文件
  • 解决方案:使用虚拟环境中 Python 可执行文件的完整路径(例如,/path/to/your/.venv/bin/python

ModuleNotFoundError: No module named 'httpx'(或其他软件包)

  • Python 环境没有安装所需的依赖项
  • 解决方案:确保您已激活虚拟环境并运行 pip install -r requirements.txt

Error: GitHub token not found in environment variables

  • 服务器找不到您的 GitHub 令牌
  • 解决方案:确保您已设置 GITHUB_TOKEN 环境变量

许可证

MIT

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript