Labsco
MCP SERVER

GitHub Knowledge Base MCP

by stefanbschneider

Point a client at any public GitHub repo and read its Markdown and notebooks as a knowledge base.

Vector Stores & RAG Retrieval
Summary
One repository per connection — that is the constraint and the feature.

Because the repository is fixed at startup, there is no way for a call to wander into a different codebase, and the tools stay simple: no owner argument, no ambiguity about what was searched. The notebook handling is the thoughtful bit — only Markdown cells are indexed, so a heavily-outputted notebook does not flood retrieval with numbers.

What it is

A FastMCP server that treats one public GitHub repository as a document store. It indexes the Markdown and Jupyter files in that repository and lets a client list, search and read them. Which repository is a startup setting, not a tool argument — every call runs against the one you configured, which keeps the surface predictable.

What you get
  • `knowledge_base_info` reports `document_file_count` and `document_type_counts` per extension
  • `list_documents` and `list_documents_with_metadata`, the latter sortable — `sort_by="last_modified_utc"` with `descending=true` gives you the newest first
  • `list_latest_documents` takes a `limit` and an `extension_filter` for the common case
  • `search_documents` searches across the indexed files
  • `read_document` returns one file's contents
  • Supported types are `.md`, `.markdown` and `.ipynb`; for notebooks only Markdown cells are indexed and outputs are ignored
  • Each result carries `path`, `size_bytes` and `last_modified_utc`
Requirements

Set `KB_GITHUB_REPO` to a public repository, as either `owner/repo` or a full GitHub URL; `KB_GITHUB_BRANCH` optionally pins a ref, otherwise the default branch is used. Install with `uv sync frozen` and run with `fastmcp run server.py`. Project `github-knowledge-base-mcp`, version 0.1.0. Public repositories only, so no token is involved.