Github Projects Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Github Projects Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that provides tools for interacting with GitHub Projects using GraphQL. This server exposes GitHub Projects functionality through standardized MCP tools that can be used by LLMs and other MCP clients.
git clone https://github.com/redducklabs/github-projects-mcp.git
cd github-projects-mcp
pip install -e .pip install github-projects-mcpuv add github-projects-mcpThe server is configured entirely through environment variables:
GITHUB_TOKEN: GitHub Personal Access Token with appropriate permissionsproject, read:projectAPI_MAX_RETRIES: Maximum retries for rate-limited requests (default: 3)API_RETRY_DELAY: Delay in seconds between retries (default: 60)MCP_TRANSPORT: Transport mode - stdio, sse, or http (default: stdio)MCP_HOST: Host for SSE/HTTP modes (default: localhost)MCP_PORT: Port for SSE/HTTP modes (default: 8000)LOG_LEVEL: Logging level - DEBUG, INFO, WARNING, ERROR (default: INFO)project (for managing projects)read:project (for reading project data)export GITHUB_TOKEN="your_token_here"#### Stdio Mode (Default)
# Using the installed script
github-projects-mcp
# Or using Python module
python -m github_projects_mcp.server
# Or using uv
uv run github_projects_mcp/server.py#### Server-Sent Events Mode
export MCP_TRANSPORT=sse
export MCP_PORT=8000
github-projects-mcp#### HTTP Streaming Mode
export MCP_TRANSPORT=http
export MCP_PORT=8000
github-projects-mcpThe server exposes the following MCP tools:
#### Project Discovery
list_accessible_projects(first=20, after=None) - List all projects accessible to authenticated userget_organization_projects(org_login, first=20, after=None) - Get projects for an organizationget_user_projects(user_login, first=20, after=None) - Get projects for a userget_project(project_id) - Get a specific project by ID#### Project Management
create_project(owner_id, title, description=None) - Create a new projectupdate_project(project_id, title=None, description=None, readme=None, public=None) - Update projectdelete_project(project_id) - Delete a project#### Project Items Management
get_project_items(project_id, first=50, after=None) - Get items in a project (full data)get_project_items_advanced(project_id, first=50, after=None, custom_fields=None, custom_filters=None, custom_variables=None) - Get items with custom GraphQL field selection for efficiencyadd_item_to_project(project_id, content_id) - Add an item to projectupdate_item_field_value(project_id, item_id, field_id, value) - Update item fieldremove_item_from_project(project_id, item_id) - Remove item from projectarchive_item(project_id, item_id) - Archive a project item#### Project Fields
get_project_fields(project_id) - Get fields in a project#### Search & Filtering
search_project_items(project_id, query, filters=None) - Search items by content/fieldsget_items_by_field_value(project_id, field_id, value) - Filter by specific field valuesget_items_by_milestone(project_id, milestone_name) - Get items in specific milestone#### Advanced Queries
execute_custom_project_query(query, variables=None) - Execute custom GraphQL queries for maximum flexibilityThe GitHub Projects MCP Server can be easily integrated with Claude Code to give Claude access to your GitHub Projects. Here's how to set it up:
pip install github-projects-mcp claude mcp add github-projects github-projects-mcp -e GITHUB_TOKEN=your_token_here@github-projects to reference the serverFor development or if you want to run the latest version from source:
git clone https://github.com/redducklabs/github-projects-mcp.git
cd github-projects-mcp
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
./venv/Scripts/activate
# On macOS/Linux:
source venv/bin/activate # Install dependencies
pip install -r requirements.txt
# Install package in development mode
pip install -e . python verify_setup.py # Using virtual environment Python with direct script path
claude mcp add github-projects ./venv/Scripts/python github_projects_mcp/server.py -e GITHUB_TOKEN=your_token_here -e PYTHONPATH=/full/path/to/github-projects-mcp
# On macOS/Linux, use:
# claude mcp add github-projects ./venv/bin/python github_projects_mcp/server.py -e GITHUB_TOKEN=your_token_here -e PYTHONPATH=/full/path/to/github-projects-mcp # Option A: System Python with script path (if no virtual env)
claude mcp add github-projects python github_projects_mcp/server.py -e GITHUB_TOKEN=your_token_here -e PYTHONPATH=/full/path/to/github-projects-mcp
# Option B: Module approach (Note: claude mcp doesn't support -m flag)
# This won't work: claude mcp add github-projects python -m github_projects_mcp.server {
"mcpServers": {
"github-projects": {
"command": "./venv/Scripts/python",
"args": ["github_projects_mcp/server.py"],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"PYTHONPATH": "/full/path/to/github-projects-mcp"
}
}
}
} # Install development dependencies
pip install -r requirements-dev.txt
# Add to Claude Code with debug logging
claude mcp add github-projects-dev ./venv/Scripts/python github_projects_mcp/server.py -e GITHUB_TOKEN=your_token -e LOG_LEVEL=DEBUG -e PYTHONPATH=/full/path/to/github-projects-mcppython -m module syntax is not supported by claude mcp add./venv/Scripts/python for portabilityrequirements.txt) and the package itself (pip install -e .)If you prefer to configure manually, add this to your Claude Code MCP configuration:
Local/Project Configuration:
# Add to local project
claude mcp add github-projects github-projects-mcp -e GITHUB_TOKEN=your_token_here --scope local
# Add to shared project configuration
claude mcp add github-projects github-projects-mcp -e GITHUB_TOKEN=your_token_here --scope projectAdvanced Configuration:
{
"mcpServers": {
"github-projects": {
"command": "github-projects-mcp",
"args": [],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"API_MAX_RETRIES": "3",
"API_RETRY_DELAY": "60",
"LOG_LEVEL": "INFO"
}
}
}
}Using Different Transport Modes:
For stdio (default):
claude mcp add github-projects github-projects-mcp -e GITHUB_TOKEN=your_token -e MCP_TRANSPORT=stdioFor SSE server:
claude mcp add github-projects-sse github-projects-mcp -e GITHUB_TOKEN=your_token -e MCP_TRANSPORT=sse -e MCP_PORT=8001For HTTP server:
claude mcp add github-projects-http github-projects-mcp -e GITHUB_TOKEN=your_token -e MCP_TRANSPORT=http -e MCP_PORT=8002Once configured, you can use the GitHub Projects server in Claude Code conversations:
Reference the server:
@github-projects help me manage my projectExample conversations:
"@github-projects show me all projects for my organization 'mycompany'"
"@github-projects add issue #123 from repo mycompany/myproject to project PVT_kwDOABCDEF"
"@github-projects update the status field for item PVTI_lADOGHIJKL to 'In Progress'"
"@github-projects create a new project called 'Q1 Planning' for organization mycompany"Check server status: In Claude Code, you can check if the server is working:
/mcpproject and read:project scopesServer not appearing:
# Check MCP server status
/mcp
# Restart Claude Code after adding the serverGitHub Token Issues:
Projects: Read/Write (for fine-grained) or project + read:project (for classic)Source Installation Issues:
# ModuleNotFoundError when starting server
# Solution: Use virtual environment and install dependencies
python -m venv venv
./venv/Scripts/activate # Windows
pip install -r requirements.txt
pip install -e .
# Server fails with import errors
# Solution: Add PYTHONPATH environment variable
claude mcp add github-projects ./venv/Scripts/python github_projects_mcp/server.py -e GITHUB_TOKEN=token -e PYTHONPATH=/full/path/to/project
# Claude MCP add fails with "-m" option
# This won't work: claude mcp add server python -m module.server
# Use direct script path instead: claude mcp add server python module/server.pyPermission errors:
Connection issues:
gh auth status or curl -H "Authorization: token YOUR_TOKEN" https://api.github.com/userVS Code supports MCP servers through GitHub Copilot (requires VS Code 1.102+ with MCP support enabled):
pip install github-projects-mcpCtrl+Shift+P / Cmd+Shift+P)MCP: Add Server pip install github-projects-mcpFor workspace-specific: .vscode/mcp.json
For user-wide: Use Command Palette → MCP: Open User Configuration
{
"inputs": [
{
"type": "promptString",
"id": "github-token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github-projects": {
"type": "stdio",
"command": "github-projects-mcp",
"env": {
"GITHUB_TOKEN": "${input:github-token}"
}
}
}
}When available, download the .dxt file from the releases page and install:
.dxt file into Claude Desktop or using the extension installer pip install github-projects-mcpOn macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"github-projects": {
"command": "github-projects-mcp",
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}For both VS Code and Claude Desktop setup:
project (for managing projects)read:project (for reading project data)For organization projects: Use a Fine-grained Personal Access Token with organization access.
For developers integrating programmatically:
# Example: Get organization projects
projects = await mcp_client.call_tool("get_organization_projects", {
"org_login": "myorg",
"first": 10
})
# Example: Add issue to project
result = await mcp_client.call_tool("add_item_to_project", {
"project_id": "PVT_kwDOABCDEF",
"content_id": "I_kwDOGHIJKL"
})
# Example: Update project item field
await mcp_client.call_tool("update_item_field_value", {
"project_id": "PVT_kwDOABCDEF",
"item_id": "PVTI_lADOGHIJKL",
"field_id": "PVTF_lADOGHIJKL",
"value": "In Progress"
})git clone https://github.com/redducklabs/github-projects-mcp.git
cd github-projects-mcp
pip install -e .
pip install -r requirements-dev.txtpytestblack .
isort .mypy github_projects_mcp/project, read:project)GNU General Public License v3.0 - see LICENSE file for details.
Server fails to start with "Required environment variable GITHUB_TOKEN is not set"
GITHUB_TOKEN environment variable with a valid GitHub PATGitHub API errors about insufficient permissions
project and read:project scopesRate limit errors
API_RETRY_DELAY for longer waits between retriesTransport mode errors
MCP_TRANSPORT is set to stdio, sse, or httpEnable debug logging:
export LOG_LEVEL=DEBUG
github-projects-mcp~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.