Skip to main content
Glama
Somils1

conspiracy-wiki-mcp

by Somils1

Conspiracy Wiki — многоуровневый MCP-проект

Тот же паттерн, что и в проекте персонального графа знаний (vault → db → MCP), применён к вики по теориям заговора из 200 записей, разделённой на 3 уровня доступа и предоставляемой через 3 независимо разворачиваемых MCP-сервера.

Определения уровней

Уровень

Значение (по спецификации TL)

Количество

1

Самый тёмный / наиболее экстремальный (по-прежнему реальный и задокументированный — рассекреченные программы, теории о нераскрытых смертях, обвинения в сокрытии)

84

2

Базовый / умеренно более тёмный

~93

3

Базовый, мейнстримный (высадка на Луну, снежный человек и т.п.)

~23

Примечание о границах охвата: конспирологические теории, основанные на языке вражды (антисемитские клише, отрицание Холокоста, «великое замещение» и т.п.), а также всё, что воспринимается как призыв к насилию, исключаются на любом уровне — эта граница не сдвигается независимо от того, насколько «тёмным» предполагается уровень.

Related MCP server: wiki-loop-mcp

Матрица доступа (кумулятивная, согласно спецификации)

MCP

MAX_TIER env

Видимые уровни

MCP 1

1

1, 2, 3 (всё)

MCP 2

2

2, 3

MCP 3

3

только 3

Одна и та же кодовая база (mcp/server.py) для всех трёх сервисов — отличается только переменная окружения MAX_TIER. У каждого свой SQL-фильтр, поэтому развёртывание MCP-3 в буквальном смысле не может запросить строки уровня 1; они не просто скрыты в интерфейсе.

Файлы

  • mcp/data.py — 200 отобранных теорий с полями title/summary/tier/category

  • db/schema.sql — схема Postgres (таблица theories + генерируемая поисковая колонка tsvector)

  • mcp/build_db_postgres.py — загружает 200 теорий в БД Postgres (переменная окружения DATABASE_URL)

  • mcp/server_postgres.py — многоуровневый FastMCP-сервер на базе Postgres (4 инструмента: list_theories, search_theories, get_theory, tier_info)

  • vault/*.md — 200 заметок в стиле Obsidian, по одной на теорию (по-прежнему генерируются локально через mcp/build_db.py, если нужны файлы vault; версия на SQLite сохранена как server.py/build_db.py на случай, если когда-нибудь понадобится полностью локальный/офлайн-вариант)

  • Dockerfile — единый образ; все 3 развёрнутых сервиса запускают этот образ, подключаясь к ОДНОЙ И ТОЙ ЖЕ общей БД Postgres и отличаясь только значением MAX_TIER

  • render.yaml — blueprint Render: 1 управляемая бесплатная БД Postgres + 3 веб-сервиса

Локальная сборка/тестирование (Postgres)

Требуется экземпляр Postgres — проще всего взять бесплатный у Neon или Supabase, если вы не хотите устанавливать Postgres на Windows.

cd conspiracy-wiki-mcp
pip install -r requirements.txt

$env:DATABASE_URL = "postgres://user:pass@host:5432/conspiracy_db"
cd mcp
python build_db_postgres.py    # creates schema + loads 200 rows

$env:MAX_TIER = "1"
python server_postgres.py      # runs on :8000

Развёртывание (чтобы это было НЕ локально — обязательно для зачёта задания)

Render (рекомендуется — один blueprint делает всё):

  1. Запушьте эту папку в репозиторий GitHub.

  2. В Render: New +Blueprint → выберите репозиторий.

  3. Render читает render.yaml и создаёт:

    • 1 бесплатную управляемую БД Postgres (conspiracy-db)

    • 3 веб-сервиса, каждый из которых автоматически подключён к той же БД через DATABASE_URL и отличается только значением MAX_TIER

  4. После того как БД станет доступной, запустите загрузчик один раз (вкладка Render Shell на любом из 3 сервисов или со своей машины, используя внешнюю строку подключения к БД):

    $env:DATABASE_URL = "<external connection string from Render dashboard>"
    python mcp/build_db_postgres.py
  5. Теперь все 3 сервиса обслуживают одну и ту же БД с фильтрацией по уровню. Скопируйте 3 публичных URL из панели управления Render.

Альтернатива на Fly.io: используйте Fly Postgres (fly postgres create) для общей БД, затем выполните fly deploy для каждого из 3 приложений, указав DATABASE_URL и MAX_TIER в каждом, — та же идея, другая платформа.

После развёртывания зарегистрируйте каждый URL как отдельный MCP-коннектор: URL MCP 1 — для полного доступа, MCP 2 — для среднего уровня, MCP 3 — для публичной/базовой демонстрации. Именно это и удовлетворяет требованию «не локально».

Подключение к Claude / MCP-клиентам

Каждый развёрнутый URL — это стандартный endpoint MCP на базе streamable-HTTP; добавьте его как удалённый коннектор точно так же, как добавили бы любой другой MCP-сервер, указав https://<service>.onrender.com (или URL вашего приложения на Fly). Никакой локальной загрузки не требуется — БД уже встроена в каждый контейнер на этапе сборки.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that provides tools to add to, search, and manage a wiki knowledge base, enabling AI chat tools to contribute and retrieve information from the wiki via natural language prompts.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server to query a Git-hosted Wiki, offering tools to list, search, and read Markdown documents via Codex or VS Code.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server that lets you search current and historical facts from a time-indexed knowledge graph derived from a folder of Markdown/text documents, with verification against original sources. It exposes tools for status, fact search, history search, and revision lookup while keeping document insertion and modification to the CLI.
    3
    MIT