Markus Michalski FAQ

Project Hub - Technical Details

Structure and data storage of Project Hub: MCP server, SQLite data model, folder layout, note files and their synchronization, attachments, export and import, HTML reports.

Project Hub - Technical Details

Deutsche Version

← Back to overview

Structure

Component Description
Skills Markdown instructions under skills/ that Claude executes as slash commands
MCP server Python process project-hub-mcp (stdio), started through bin/run-server with the Python from ~/.project-hub/venv
Database SQLite file, by default ~/.project-hub/project-hub.db
Files Markdown notes and attachments under docs_root, knowledge documents under knowledge_root

The plugin defines no hooks. The server initializes the database at startup and adds missing tables and columns itself.

Directories

~/.project-hub/
β”œβ”€β”€ config.yaml
β”œβ”€β”€ project-hub.db            (plus -wal and -shm while running)
β”œβ”€β”€ venv/
β”œβ”€β”€ knowledge/<project-type>/*.md
β”œβ”€β”€ project-types/<type>/     custom project types
β”œβ”€β”€ reports/                  HTML reports
└── exports/                  JSON exports

{docs_root}/<project-slug>/docs/
β”œβ”€β”€ emails/
β”œβ”€β”€ meeting-notes/
β”œβ”€β”€ misc/
└── attachments/

Data model

Table Content
projects Slug (unique), name, type, status, description, market, products, phase, go-live, budget, notes, docs path, timestamps
contacts Project, name, role, type (internal or external), email, phone, company, notes, is_shared
notes Project, title, type, content, agenda, attachments (JSON list), file path, timestamps
project_links Links between two projects
session exactly one row: active project and last used skill

Notes: database and file

When a note is created, the server writes the text to the database and also as a Markdown file in the project's docs folder:

Note type Target folder File
meeting-notes meeting-notes/ <date>-<title-slug>.md
email emails/ <date>-<title-slug>.md
decision, note misc/ <date>-<title-slug>.md
action-item misc/ entry in the shared file todo.md under "Open"

The database is the authoritative source:

Attachments

Export and import

An export (compose export) is a JSON file with the project, contacts, notes and links (links by the other project's slug).

HTML reports

The report is a single HTML file rendered from a Jinja2 template. When opened in a browser, the file loads its chart library (Chart.js) from cdn.jsdelivr.net. Without an internet connection this library is missing. Labels are in German. The "Offene Aufgaben" (open tasks) section contains all notes of type action-item, without a completion filter.

Search is a simple substring search (SQL LIKE) without an index and without ranking. Case is ignored for ASCII letters only, umlauts are compared exactly. % and _ in the search term act as wildcards. Notes are returned newest first, contacts sorted by name.