GitHub Issue Searcher MCP š
@calumjs
š A Model Context Protocol (MCP) server that provides semantic search capabilities for GitHub repository issues using FAISS and OpenAI embeddings. Perfect for developers who want to quickly find relevant issues, bug reports, and discussions across GitHub repositories using natur
ę¦č§
What is GitHub Issue Searcher MCP?
GitHub Issue Searcher MCP is a Model Context Protocol (MCP) server that combines FAISS (Facebook AI Similarity Search) with OpenAI embeddings to provide semantic search for GitHub repository issues. It is designed for building Retrieval-Augmented Generation (RAG) systems and searchable knowledge bases from GitHub issue tracking data.
How to use GitHub Issue Searcher MCP?
Install Python 3.8+, set up a virtual environment, install dependencies, set OPENAI_API_KEY (and optionally GITHUB_PERSONAL_ACCESS_TOKEN) in a .env file. Run python sync_github.py owner/repo --clear to sync a repository. Configure the MCP client (e.g., Claude Desktop) to point to main.py. Then use MCP tools like search_embeddings to query natural language and get_index_status to inspect indexed data.
Key features of GitHub Issue Searcher MCP
- Semantic search using OpenAI embeddings and FAISS
- Document storage with rich metadata
- Automatic syncing of GitHub repository issues
- Fast similarity search powered by FAISS
- Works seamlessly with Claude and other MCP clients
- Persistent automatic saving of indexes and metadata
Use cases of GitHub Issue Searcher MCP
- Semantically search through GitHub repository issues
- Build searchable knowledge bases from GitHub issues
- Enhance AI responses with relevant issue context (RAG)
- Find similar bug reports, feature requests, or discussions
- Troubleshoot developer support by searching issue history
FAQ from GitHub Issue Searcher MCP
What are the dependencies and runtime requirements?
Python 3.8 or higher, an OpenAI API key, and optionally a GitHub Personal Access Token. Install required packages via pip install -r requirements.txt.
Where does the indexed data live?
The FAISS index is stored as faiss_index.bin and metadata as metadata.json, both inside a data/ directory created automatically.
Can I add more repositories without losing existing data?
Yes, run python sync_github.py owner/repo without the --clear flag to append new repository data to the existing index.
How do I replace all data with a different repository?
Use the --clear flag when syncing: python sync_github.py new-owner/new-repo --clear.
What transport or protocol does the server use?
It implements the Model Context Protocol (MCP) and is configured to work with MCP clients like Claude Desktop via command-line invocation.