conspiracy-wiki-mcp
Conspiracy Wiki — Tiered MCP Project
El mismo patrón que el proyecto de grafo de conocimiento personal (vault → db → MCP), aplicado a una wiki de teorías conspirativas de 200 entradas, dividida en 3 niveles de acceso y expuesta mediante 3 servidores MCP desplegables por separado.
Definición de niveles
Nivel | Significado (según la especificación TL) | Cantidad |
1 | Más oscuro / más extremo (aún real, documentado — programas desclasificados, teorías de muertes sin resolver, acusaciones de encubrimiento) | 84 |
2 | Básico / moderadamente más oscuro | ~93 |
3 | Básico, convencional (llegada a la Luna, Bigfoot, etc.) | ~23 |
Nota de alcance: las conspiraciones basadas en discurso de odio (tropos antisemitas, negación del Holocausto, "gran reemplazo", etc.) y cualquier cosa que pueda leerse como una llamada a la violencia se excluyen en todos los niveles — esa línea no se mueve independientemente de lo "oscuro" que se suponga que es un nivel.
Related MCP server: wiki-loop-mcp
Matriz de acceso (acumulativa, según especificación)
MCP | Variable MAX_TIER | Ve niveles |
MCP 1 |
| 1, 2, 3 (todo) |
MCP 2 |
| 2, 3 |
MCP 3 |
| solo 3 |
El mismo código base (mcp/server.py) para los tres — solo cambia la variable de entorno MAX_TIER. Cada uno tiene su propio filtro SQL, por lo que un despliegue MCP-3 literalmente no puede consultar filas de nivel 1; no es solo que estén ocultas en la interfaz.
Archivos
mcp/data.py— las 200 teorías seleccionadas con título/resumen/nivel/categoríadb/schema.sql— esquema de Postgres (tabla theories + columna de búsqueda tsvector generada)mcp/build_db_postgres.py— carga las 200 teorías en una base de datos Postgres (variable de entornoDATABASE_URL)mcp/server_postgres.py— el servidor FastMCP por niveles, respaldado por Postgres (4 herramientas:list_theories,search_theories,get_theory,tier_info)vault/*.md— 200 notas de estilo Obsidian, una por teoría (aún se generan localmente mediantemcp/build_db.pysi quieres los archivos del vault; la versión SQLite se conserva comoserver.py/build_db.pypor si alguna vez quieres una variante totalmente local/sin conexión)Dockerfile— imagen única; los 3 servicios desplegados ejecutan esta imagen y se conectan a la MISMA instancia compartida de Postgres, diferenciándose solo enMAX_TIERrender.yaml— blueprint de Render: 1 base de datos Postgres gratuita administrada + 3 servicios web
Compilación/prueba local (Postgres)
Requiere una instancia de Postgres — lo más fácil es una gratuita de Neon o Supabase si no quieres instalar Postgres en 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 :8000Despliegue (para que NO sea local — requisito para que la tarea cuente)
Render (recomendado — un blueprint lo hace todo):
Sube esta carpeta a un repocitorio de GitHub.
En Render: New + → Blueprint → selecciona el repocitorio.
Render lee
render.yamly aprovisiona:1 base de datos Postgres gratuita administrada (
conspiracy-db)3 servicios web, cada uno conectado automáticamente a esa misma base de datos mediante
DATABASE_URL, diferenciándose solo enMAX_TIER
Cuando la base de datos esté activa, ejecuta el cargador una vez (pestaña Render Shell en cualquiera de los 3 servicios, o desde tu máquina con la cadena de conexión externa de la base de datos):
$env:DATABASE_URL = "<external connection string from Render dashboard>" python mcp/build_db_postgres.pyLos 3 servicios sirven ahora la misma base de datos, filtrada por nivel. Copia las 3 URL públicas del panel de Render.
Alternativa con Fly.io: usa Fly Postgres (fly postgres create) para la base de datos compartida y luego fly deploy en cada una de las 3 apps con DATABASE_URL y MAX_TIER configurados por app — la misma idea, otra plataforma.
Una vez desplegado, registra cada URL como su propio conector MCP — la URL de MCP 1 para acceso completo, la de MCP 2 para el nivel intermedio y la de MCP 3 para la demo pública/básica — que es lo que realmente satisface "no local".
Integración con Claude / clientes MCP
Cada URL desplegada es un endpoint MCP estándar de streamable-HTTP — añádela como conector remoto de la misma forma en que añadirías cualquier otro servidor MCP, apuntando a https://<service>.onrender.com (o la URL de tu app en Fly). No se necesita ningún paso de ingesta local — la base de datos ya está integrada en cada contenedor en tiempo de compilación.
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