michael-watson/apollo-github-mcp-server
If you are the rightful owner of apollo-github-mcp-server 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.
The Apollo GitHub MCP Server is a tool for creating and managing Model Context Protocol (MCP) tools using GraphQL operations.
Apollo GitHub MCP Server
This repository is a recreation of the MCP tools available in the official GitHub MCP Server using GraphQL operations instead of code.
To learn more about how to use Apollo MCP Server to rapidly create MCP tools for your APIs, check out the .
Running the MCP tools
- Create a GitHub Personal Access Token (PAT) (classic) with permissions scoped to the tools you want to access:
- Repo
- Notifications
- User
- Project
- Create a Graph in GraphOS and copy the API key - due to some MCP tool functionality not being available on the GraphQL API, Apollo Connectors was used to extend the graph with REST API functionality and a free Apollo API key is required.
- In a terminal with the current directory as this repo, export your environment variables:
If you're a VS Code user, you can also set these values in the .vscode/settings.json
file
export APOLLO_KEY=service:github:uTDUpIoGF-2TKLuW6K_QbQ
export APOLLO_GRAPH_REF=github@current
export GITHUB_TOKEN=ghp_Jzw...
- Run
rover dev
in the terminal:
If you're a VS Code user, you can also run the rover dev
task from the Command Pallette
rover dev \
--mcp \
--mcp-operations operations \
--router-config router.yaml \
--supergraph-config supergraph.yaml
Configuring your agent for the MCP server
The MCP server will be running on http://127.0.0.1:5000/mcp
by default with Streamable HTTP transport.
{
"mcpServers": {
"github":{
"url":"http://127.0.0.1:5000/mcp"
}
}
}
Building new MCP tools
- Run
rover dev
with the--mcp-introspection
option in the terminal:
If you're a VS Code user, you can also run the rover dev
task from the Command Pallette
rover dev \
--mcp \
--mcp-operations operations \
--mcp-introspection \
--router-config router.yaml \
--supergraph-config supergraph.yaml
- Ask your favorite agent to build you an operation. Here is an example prompt that has success with Claude 3.7 Sonnet and running Cursor in auto-run mode:
Generate me an operation to {INSERT_WHAT_YOU_WANT_TO_DO_WITH_GITHUB} from the schema.
Make sure to test the operation with {INSERT_VARIABLES_NEEDED_TO_GET_DATA}.
If you get an error, fix the operation until you successfully get data back.
If the prompt above gives you issues, please open a GitHub issue on this repo with details. I would love to figure it out!