conspiracy-wiki-mcp
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, 2, 3 (всё) |
MCP 2 |
| 2, 3 |
MCP 3 |
| только 3 |
Одна и та же кодовая база (mcp/server.py) для всех трёх сервисов — отличается только переменная окружения MAX_TIER. У каждого свой SQL-фильтр, поэтому развёртывание MCP-3 в буквальном смысле не может запросить строки уровня 1; они не просто скрыты в интерфейсе.
Файлы
mcp/data.py— 200 отобранных теорий с полями title/summary/tier/categorydb/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_TIERrender.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 делает всё):
Запушьте эту папку в репозиторий GitHub.
В Render: New + → Blueprint → выберите репозиторий.
Render читает
render.yamlи создаёт:1 бесплатную управляемую БД Postgres (
conspiracy-db)3 веб-сервиса, каждый из которых автоматически подключён к той же БД через
DATABASE_URLи отличается только значениемMAX_TIER
После того как БД станет доступной, запустите загрузчик один раз (вкладка Render Shell на любом из 3 сервисов или со своей машины, используя внешнюю строку подключения к БД):
$env:DATABASE_URL = "<external connection string from Render dashboard>" python mcp/build_db_postgres.pyТеперь все 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). Никакой локальной загрузки не требуется — БД уже встроена в каждый контейнер на этапе сборки.
This server cannot be deployed
Maintenance
Related MCP Connectors
- FlowdexOAuthdk.flowdex
Read and write your team's shared, AI-readable wiki from any MCP client.
Read-only MCP for the Eco game wiki: search, Markdown pages, and wiki_* lookups. No keys, no writes.
An MCP server for deep research or task groups
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMCP server to search and read documentation pages from a WikiJS instance via its GraphQL API.-
- AlicenseNot gradedqualityBmaintenanceMCP 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
- AlicenseNot gradedqualityCmaintenanceMCP server to query a Git-hosted Wiki, offering tools to list, search, and read Markdown documents via Codex or VS Code.MIT
- AlicenseAqualityBmaintenanceA 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.3MIT