
GitHub Knowledge Base MCP
from stefanbschneider
MCP server to connect to and use any public GitHub repo as knowledge base (markdown/notebook docs)
GitHub Knowledge Base MCP
A simple MCP server built with FastMCP that lets you connect to any public GitHub repo as knowledge base. It has a few simple tools to find and read markdown and Jupyter notebook documents.
Blog post: https://stefanbschneider.github.io/blog/posts/fastmcp/
Avialble toolset:
knowledge_base_infolist_documentsread_documentlist_documents_with_metadatalist_latest_documentssearch_documents
knowledge_base_info includes:
document_file_count: total supported filesdocument_type_counts: counts per extension (for example.md,.markdown,.ipynb)
list_documents_with_metadata is useful to retrieve latest blog posts by setting sort_by="last_modified_utc" and descending=true.
Example: retrieve latest blog posts
Request:
{
"tool": "list_latest_documents",
"arguments": {
"limit": 5,
"extension_filter": ".md"
}
}Response shape:
[
{
"path": "blog/2026-04-10-launch-post.md",
"size_bytes": 3210,
"last_modified_utc": "2026-04-10T14:11:52Z"
}
]Supported file types:
.md.markdown.ipynb
uv sync frozenBefore it works, you'll need: KB_GITHUB_REPO
Setup
Installation
uv sync frozenConfiguration
Set KB_GITHUB_REPO to use a public GitHub repository as the knowledge base.
- supported formats:
owner/repohttps://github.com/owner/repo
- optional ref/branch/tag:
KB_GITHUB_BRANCH - if no ref is set, the repository default branch is used
Example:
export KB_GITHUB_REPO="microsoft/vscode"
export KB_GITHUB_BRANCH="main" # optional
python gh_kb_mcp_server.pyNotebook handling details:
- only markdown cells are indexed/read for
.ipynb - notebook outputs are ignored
- invalid notebooks return clear validation errors for direct reads
All tools run only against the configured GitHub repository.
Running the server
fastmcp run server.pyConfiguring the MCP in VSCode
Via command palette, call "MCP: Add server..." or add/create mcp.json adding the following block to your "servers":
"GitHub Knowledge Base": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/fastmcp",
"args": [
"run",
"server.py",
],
"env": {
"KB_GITHUB_REPO": <public-github-repo> // eg: "stefanbschneider/blog" or "microsoft/vscode"
}
}No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.