ProRanked/github-projects-mcp
If you are the rightful owner of github-projects-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
An MCP server for interacting with GitHub Projects using the GraphQL API, designed to integrate with Claude Desktop.
create_project
Create a new GitHub project.
list_projects
List GitHub projects for a repository or organization.
get_project
Get detailed information about a specific project.
list_project_items
List items in a GitHub project.
create_project_item
Add an existing issue or pull request to a project.
update_project_item_field
Update a field value for a project item.
GitHub Projects MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with GitHub Projects via GraphQL API. This repo is managed by the Model Context Protocol (MCP) and is designed to work seamlessly with Claude Desktop. Written by ProRanked.
Features
- Create new projects for repositories or organizations
- List projects for repositories and organizations
- Get detailed project information including fields
- List items in a project
- Create new project items from issues/PRs
- Update project item field values
Setup
-
Clone this repository
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Configure your GitHub token in Claude Desktop settings (see Integration section below)
Usage
Running the server
The server is designed to be run through Claude Desktop's MCP integration.
For local development with a .env
file:
npm run dev
Note: The production server (npm start
) requires the GITHUB_TOKEN
environment variable to be set externally.
Available Tools
create_project
Create a new GitHub project.
Parameters:
owner
(required): Repository owner or organization nametitle
(required): Project titlerepo
(optional): Repository name (omit for organization project)body
(optional): Project description
list_projects
List GitHub projects for a repository or organization.
Parameters:
owner
(required): Repository owner or organization namerepo
(optional): Repository name (omit for organization projects)projectsType
(optional): "repository" or "organization" (default: "repository")
get_project
Get detailed information about a specific project.
Parameters:
projectNumber
(required): Project numberowner
(required): Repository owner or organization namerepo
(optional): Repository name (omit for organization projects)
list_project_items
List items in a GitHub project.
Parameters:
projectId
(required): Project node IDfirst
(optional): Number of items to return (default: 20)
create_project_item
Add an existing issue or pull request to a project.
Parameters:
projectId
(required): Project node IDcontentId
(required): Issue or PR node ID
update_project_item_field
Update a field value for a project item.
Parameters:
projectId
(required): Project node IDitemId
(required): Project item node IDfieldId
(required): Field node IDvalue
(required): New value for the field
Integration with Claude Desktop
Add to your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"github-projects": {
"command": "node",
"args": ["/path/to/github-projects-mcp/dist/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_personal_access_token"
}
}
}
}
Required GitHub Token Permissions:
repo
- For accessing repository projectsread:org
- For accessing organization projectsproject
- For full project access (read/write)
Create your token at: https://github.com/settings/tokens
Example Usage
-
Create a new project:
Tool: create_project Arguments: { "owner": "octocat", "repo": "hello-world", "title": "My New Project", "body": "A project to track development tasks" }
-
List all projects in a repository:
Tool: list_projects Arguments: { "owner": "octocat", "repo": "hello-world" }
-
Get project details:
Tool: get_project Arguments: { "owner": "octocat", "repo": "hello-world", "projectNumber": 1 }
-
Add an issue to a project:
Tool: create_project_item Arguments: { "projectId": "PVT_kwDOBgKK184AAAAA", "contentId": "I_kwDOBgKK185BBBBB" }
Development
The server is built with:
- TypeScript for type safety
- @modelcontextprotocol/sdk for MCP server implementation
- @octokit/graphql for GitHub GraphQL API access
- dotenv for environment configuration
Author
Created by ProRanked
License
MIT License - see file for details