Fitwiki
FreeNot checkedScrapes course materials, exam variants, and notes from Fit-Wiki, converting them to Markdown and PDF for integration with LLM clients.
About
Scrapes course materials, exam variants, and notes from Fit-Wiki, converting them to Markdown and PDF for integration with LLM clients.
README
An MCP (Model Context Protocol) server designed for the student-run Faculty of Information Technology, Czech Technical University (FIT CTU) community wiki: fit-wiki.cz.
It enables LLMs (such as Claude, AGY, or Open WebUI) to list subjects documented on the student wiki, navigate their sections (exams, tests, homework), download pages and attachments, and read study materials converted to clean Markdown.
Features
- Automated Scraping & Sanitization: Downloads community wiki pages, handles media/image assets, and converts the content into readable, clean Markdown.
- Direct Attachment Handling: Intercepts binary attachments (like ZIPs, RARs, PDFs) and downloads them natively, bypassing markdown wrappers.
- Document Compiling: Compiles scraped Markdown pages into high-quality offline PDF documents.
- Intelligent Cache & Category Detection: Automatically groups wiki pages into categories (exams, tests, labs) using advanced namespace mapping and maintains a local cache to avoid redundant requests.
Installation
- Clone or copy this repository into your chosen directory.
- Initialize the Python virtual environment and install the required dependencies:
python3 -m venv venv ./venv/bin/pip install -r requirements.txt
Configuration
Duplicate the .env.example file to .env and set up your authentication cookies:
# Fit-Wiki Scraper & MCP Server Configuration
# DokuWiki session cookies (retrieve these from your browser developer console)
FITWIKI_COOKIES="DokuWiki=your-session-cookie"
# Target course URL
# FITWIKI_BASE_URL="https://fit-wiki.cz"
# Scraping delay in seconds between requests (prevents being rate-limited/blocked)
# FITWIKI_DELAY=1.0
CLI Usage
You can run the scraper directly from the command line using the provided scripts:
1. Scrape a Course to Markdown
./venv/bin/python scraper.py [course_code]
If you provide a course code (e.g. bi-osy), the scraper downloads the index page, parses it, and lets you choose categories to scrape. If run without arguments, it attempts to read an existing index-page.html from the workspace.
2. Convert Markdown to PDF
./venv/bin/python convert_to_pdf.py
Compiles all downloaded markdown pages under markdown_output/ into PDF files in the pdfs/ directory.
MCP Server Setup
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 configuration 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.
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-httpand point the client tohttp://host:8000/mcp.
Exposed MCP Tools
list_courses– List all courses documented on the student wiki.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.
Exposed MCP Resources
The server exposes the following read-only resources:
fitwiki://list– Returns the list of subjects/courses documented on the student wiki.fitwiki://{course_code}/sections– Returns the sections/categories for a given course.fitwiki://{course_code}/sections/{section}– Returns the pages in a specific section.fitwiki://{course_code}/sections/{section}/{slug}– Returns the content of a saved markdown page.
Installing Fitwiki
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Dzendys/fitwiki-mcpFAQ
Is Fitwiki MCP free?
Yes, Fitwiki MCP is free — one-click install via Unyly at no cost.
Does Fitwiki need an API key?
No, Fitwiki runs without API keys or environment variables.
Is Fitwiki hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Fitwiki in Claude Desktop, Claude Code or Cursor?
Open Fitwiki on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Fitwiki with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
