fitwiki-mcp

fitwiki-mcp

Scrapes course materials, exam variants, and notes from Fit-Wiki, converting them to Markdown and PDF for integration with LLM clients.

Category
Visit Server

README

Fit-Wiki Scraper & MCP Server

Python tool for extracting course materials, exam variants, and notes from Fit-Wiki. Includes an MCP server for integration with LLM clients (Claude, AGY, OpenCode).


Requirements

  • Python 3.12+
  • Liberation Sans and Liberation Mono fonts (for correct Czech diacritics in PDFs)

Setup

python3 -m venv venv
./venv/bin/pip install -r requirements.txt

Configuration

Copy .env.example to .env and fill in your cookies:

cp .env.example .env

Alternatively, pass FITWIKI_COOKIES as an environment variable in the MCP client config.


CLI Usage

Scrape a course to Markdown

./venv/bin/python scraper.py [course_code]

Convert Markdown to PDF

./venv/bin/python convert_to_pdf.py

Compiles all files in markdown_output/ to pdfs/.

Pipeline (single page)

./venv/bin/python index_page.py bi-osy            # download index
./venv/bin/python scraper.py                      # scrape to Markdown
./venv/bin/python convert_to_pdf.py               # compile PDFs

MCP Server

The MCP server exposes Fit-Wiki tools to LLM clients. It runs via stdio or streamable-http.

Client Configuration

Add the following to your client's MCP config file. Cookies are loaded from the .env file (see .env.example).

{
  "mcpServers": {
    "fitwiki": {
      "command": "/path/to/fitwiki/venv/bin/python",
      "args": ["/path/to/fitwiki/mcp_server.py"]
    }
  }
}

Config File Locations

Client Path
Claude Desktop ~/.config/Claude/claude_desktop_config.json
AGY (CLI) ~/.gemini/antigravity-cli/mcp_config.json
AGY (IDE / 2.0) ~/.gemini/config/mcp_config.json
OpenCode .opencode.json in the workspace root

Restart the client after saving. For AGY, verify with /mcp in chat.

Transports

  • stdio (default) – the client spawns the server as a subprocess. Use for Claude Desktop, AGY, OpenCode.
  • streamable-http – for Docker or remote setups. Set MCP_TRANSPORT=streamable-http and point the client to http://host:8000/mcp.

Docker

Build & Run

docker compose up -d

The container exposes the MCP server on port 8000 via streamable-http. Mounted volumes persist markdown_output/ and pdfs/ on the host.

GitHub Container Registry

The Docker image is built automatically on push (see .github/workflows/docker-build.yml) and published to ghcr.io/<your-username>/fitwiki-mcp. Tags: latest, master, short SHA.


Exposed MCP Tools

  • list_courses – List all courses on the FIT platform.
  • list_course_sections – List sections (e.g. zkouska, test1) for a course.
  • list_section_pages – List pages within specific sections.
  • download_page – Scrape a page to Markdown and compile to PDF in one step.
  • compile_pdf – Compile a Markdown file to PDF.
  • compile_category_pdfs – Compile all Markdown files in a category to PDFs.
  • read_saved_file – Read a previously saved Markdown file by path.
  • scrape_index – Parse a course index and list discovered links.
  • scrape_page – Scrape a single page to Markdown and return its content.
  • scrape_course – Download all pages in selected categories for a course.
  • download_page – Scrape a page to Markdown, compile to PDF, and return the content.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured