GitHub Knowledge Base MCP

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_info
  • list_documents
  • read_document
  • list_documents_with_metadata
  • list_latest_documents
  • search_documents

knowledge_base_info includes:

  • document_file_count: total supported files
  • document_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

Setup

Installation

uv sync frozen

Configuration

Set KB_GITHUB_REPO to use a public GitHub repository as the knowledge base.

  • supported formats:
    • owner/repo
    • https://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.py

Notebook 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.py

Configuring 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"
	}
}

Server Terkait

NotebookLM Web Importer

Impor halaman web dan video YouTube ke NotebookLM dengan satu klik. Dipercaya oleh 200.000+ pengguna.

Instal Ekstensi Chrome