LabscoMCP early access ↗
stefanbschneiderMCP SERVER

GitHub Knowledge Base MCP

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

by stefanbschneider ↗Vector Stores & RAG RetrievalCommunity

LABSCO 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.

Setup effort

Build from source