Skip to main content
Glama

MCPedia

Eine inhaltsorientierte Wissensdatenbank – lesbar als Markdown/MDX in Git, abfragbar von Menschen über eine Web-UI und von KI-Agenten über das Model Context Protocol (MCP).

MCPedia hält Inhalte als einfache Markdown-Dateien unter content/. Eine in Git nachverfolgte Quelle der Wahrheit, indexiert in PostgreSQL (Metadaten + eine tsvector-Volltextspalte) und bereitgestellt über eine einzige Core-Schicht, die alle Schnittstellen (Web, MCP) gemeinsam nutzen – keine Geschäftslogik wird pro Oberfläche dupliziert.

Monorepo-Layout

mcpedia/
├── apps/
│   ├── web/      # Next.js 16 (Turbopack) — human-facing docs UI + search
│   ├── mcp/      # MCP server (stdio) — AI-agent interface (tools + resources)
│   └── api/      # Hono + tRPC v11 API on :4020 (+ /hooks/* git-sync webhooks)
├── packages/
│   ├── types/    # shared domain types (DocSection, Document, SearchHit, ...)
│   ├── config/   # loads .env (repo root) as authoritative dev config
│   ├── db/       # Drizzle ORM schema + client + drizzle-kit config
│   ├── parser/   # frontmatter (gray-matter) parsing
│   ├── search/   # Postgres FTS query (ts_rank + ts_headline)
│   ├── embeddings/ # embedding provider + chunker
│   ├── queue/    # Redis (ioredis) + BullMQ worker/queue (Phase 3)
│   └── core/     # Document/Content/Search/Index/Revision — the only business logic
├── content/      # docs/ writeups/ research/ notes/ (the knowledge base)
└── scripts/      # indexer.ts (full reindex), enqueue.ts (one-shot job enqueue)

Related MCP server: astra-knowledge-base-mcp

Architekturprinzip

Web ─┐
     ├──► Core ──► Repository (@mcpedia/db) ──► PostgreSQL
MCP ─┘

Alle Schnittstellen laufen über @mcpedia/core. Nichts außerhalb von packages/db und packages/core greift direkt auf die Datenbank zu.

Schnellstart

bun install                       # install workspace deps
cp .env.example .env             # set DATABASE_URL (dev uses imrnes Postgres :6432)
bunx turbo run build             # typecheck + build every package

bun run index                    # walk content/ -> upsert into Postgres
bun --cwd apps/web run dev       # Web UI on :3000
bun run mcp                       # MCP server on stdio (pipe to an MCP client)

Datenbank

Das Schema ist in packages/db/src/schema.ts definiert (documents mit einem gewichteten search_vector-tsvector + GIN-Index und document_chunks mit einem embedding real[]). Die pgvector-Erweiterung ist nicht verfügbar auf dem gemeinsamen imrnes-Postgres, daher speichert die semantische Suche Vektoren als real[] und sortiert nach Kosinus-Ähnlichkeit in der Anwendung.

Migrationen liegen in packages/db/drizzle/. Sie wurden manuell über psql angewendet (drizzle-kit push ist unter PgBouncer-Transaktions-Pooling unzuverlässig); um sie auf einer frischen DB erneut anzuwenden:

psql $DATABASE_URL -f packages/db/drizzle/0000_grey_toro.sql
psql $DATABASE_URL -f packages/db/drizzle/0001_document_chunks.sql

Hinweis: auf imrnes (PgBouncer :6432) kann eine ausgelaufene DATABASE_URL-Shell-Variable .env überschatten. @mcpedia/config lädt .env zuletzt, sodass die Repo-Konfiguration für lokal/Dev immer gewinnt.

Inhalt

Jede Markdown-Datei trägt YAML-Frontmatter:

---
id: websocket-contract
title: WebSocket Contract
type: documentation
tags: [typescript, websocket, rpc]
status: published
author: asep
created_at: 2026-08-19
updated_at: 2026-08-19
---

slug = relativer Pfad unter content/ (z. B. docs/websocket/contract). Der in der UI angezeigte body wird immer aus der Datei auf der Festplatte gelesen (Quelle der Wahrheit); die DB speichert Metadaten + den Suchvektor.

MCP-Tools

Tool

Zweck

search_documents

Postgres-FTS über das Korpus (sortiert + Ausschnitt)

semantic_search

Embedding-/Kosinus-Suche über gechunkte Inhalte

hybrid_search

FTS + semantisch fusioniert über RRF

get_document

Vollständiger Markdown-Body per Slug

list_documents

Auflisten, optional nach Abschnitt gefiltert

get_related_documents

Dokumente, die Tags mit einem bestimmten Slug teilen

MCP-Ressourcen

URI

Zweck

mcpedia://docs

Alle veröffentlichten Dokumente auflisten

mcpedia://docs/{+slug}

Vollständiger Markdown-Body (von der Festplatte gelesen)

mcpedia://docs/{+slug}/chunks

Vorschau der eingebetteten semantischen Chunks

mcpedia://docs/{+slug}/revisions

Zusammenfassung des Revisionsverlaufs

({+slug} verwendet die reservierte Erweiterung von RFC 6570, sodass ein Slug wie docs/websocket/contract zur Vorlage passt.)

Smoke-Test (In-Memory-Transport, echtes JSON-RPC):

bun --cwd apps/mcp run smoke

API (Phase 2 + Phase 3)

Eine tRPC-v11-API wird über Hono auf :4020 bereitgestellt (alle Prozeduren spiegeln die MCP-Tools). Phase 3 fügt asynchrone Job- und Revisions-Prozeduren sowie Git-Sync-Webhooks hinzu:

bun run api            # http://localhost:4020 (GET /health, POST/GET /trpc/*)

tRPC-Prozeduren: search, semanticSearch, hybridSearch, getDocument, listDocuments, related (Phase 2); plus revisions, getRevision, restoreRevision, jobStatus, queueStatus (Phase 3).

Git-Sync-Webhooks (stellen BullMQ-Jobs in die Warteschlange; der Worker verarbeitet sie):

  • POST /hooks/reindex — Vollkorpus-Reindex (weisen Sie den Push-Webhook Ihres Git-Anbieters hierher, um bei Push automatisch neu zu indexieren).

  • POST /hooks/index?slug=<slug> — ein einzelnes Dokument neu indexieren.

Sicherheit: beide Webhooks erfordern einen x-webhook-secret-Header, der mit WEBHOOK_SECRET übereinstimmt (in .env gesetzt). Die API weigert sich zu starten, wenn WEBHOOK_SECRET nicht gesetzt ist, sodass die Hooks nie offen bleiben.

bun run index chunkt und embeddet jetzt auch (Phase-2-Indexer) und erstellt einen Revisions-Snapshot, wann immer sich der Body ändert (Phase 3). Siehe .env.example für die Variablen EMBED_* / REDIS_* / QUEUE_PREFIX / WEBHOOK_SECRET.

Als überwachter Dienst ausführen (Phase 4)

deploy/mcpedia-api.service + deploy/mcpedia-worker.service sind systemd-Units (Restart=on-failure, EnvironmentFile=.env, WorkingDirectory=/home/code/mcpedia). Aktivieren Sie sie mit:

sudo cp deploy/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now mcpedia-api mcpedia-worker
# tail logs
journalctl -u mcpedia-api -u mcpedia-worker -f

Die API sollte für TLS hinter Caddy (oder Ihrem Reverse-Proxy) sitzen; exponieren Sie nur :4020 intern und die Web-App öffentlich.

Status

Phase 1 — MVP (FERTIG): Monorepo, Core, Web-UI (Start/Dokument/Suche), MCP-Server, Postgres-FTS-Stichwortsuche, Inhaltsindexierung.

Phase 2 — Semantisch + API (FERTIG): Embeddings-Anbieter (OpenRouter über 9router), gechunkte document_chunks, semanticSearch + hybridSearch (RRF), tRPC/Hono-API (apps/api, :4020), MCP-Tools semantic_search/hybrid_search, Web-Hybrid-Umschalter.

Phase 3 — Async + Skalierung (FERTIG): Redis + BullMQ-Hintergrund-Indexierungs-/Embedding-Worker (packages/queue, apps/worker), Git-Sync-Webhooks (POST /hooks/*), Dokument-Revisionssystem (document_revisions + Wiederherstellung) und MCP-Ressourcen (mcpedia://docs/...). Siehe PHASES.md.

pgvector ist nicht installiert auf dem gemeinsamen imrnes-Postgres, daher ist die Vektorspeicherung eine real[]-Spalte mit Kosinus-Ähnlichkeit in der Anwendung (sofort bei KB-Skalierung). pgvector ist der Skalierungspfad für Phase 4. Siehe PHASES.md.

Siehe PHASES.md für Phase 3–4 (Redis/BullMQ, Auth, Revisionen, Skalierung).

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Transforms Markdown documentation into an intelligent knowledge base with AI-powered search and Q\&A through an MCP server.
    13
    9
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that exposes one or more documentation folders (Markdown, MDX, TXT) to AI agents, enabling listing, reading, and searching of documentation files.
  • A
    license
    Not graded
    quality
    A
    maintenance
    A lightweight MCP server for semantic search over markdown knowledge bases, enabling AI coding agents to index, search, and answer questions from local markdown documents.
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

  • Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/asepharyana/mcpedia'

If you have feedback or need assistance with the MCP directory API, please join our Discord server