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 环境变量

可见层级

MCP 1

1

1、2、3(全部)

MCP 2

2

2、3

MCP 3

3

仅 3

这三个服务使用同一套代码库(mcp/server.py)——只有 MAX_TIER 环境变量的值不同。每个服务都有自己的 SQL 过滤器,因此 MCP-3 部署根本无法查询 tier-1 数据行;这不仅仅是隐藏在 UI 中。

文件

  • mcp/data.py — 200 个精选阴谋论,包含标题/摘要/层级/分类

  • db/schema.sql — Postgres 模式(theories 表 + 生成的 tsvector 搜索列)

  • mcp/build_db_postgres.py — 将 200 个阴谋论加载到 Postgres 数据库(DATABASE_URL 环境变量)

  • mcp/server_postgres.py — 基于 Postgres 的分层 FastCP 服务器(4 个工具:list_theoriessearch_theoriesget_theorytier_info

  • vault/*.md — 200 个 Obsidian 风格的笔记,每个阴谋论对应一个(如需 vault 文件,仍可通过 mcp/build_db.py 在本地生成;SQLite 版本保留为 server.py/build_db.py,以备将来需要完全本地/离线的变体)

  • Dockerfile — 单一镜像;3 个已部署的服务都运行此镜像,连接到同一个共享 Postgres 实例,仅在 MAX_TIER 上有所区别

  • render.yaml — Render blueprint:1 个托管免费 Postgres 数据库 + 3 个 Web 服务

本地构建/测试(Postgres)

需要 Postgres 实例——如果你不想在 Windows 上安装 Postgres,最简单的方式是从 NeonSupabse 获取一个免费的。

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 +Blueprrint → 选择该仓库。

  3. Render 读取 render.yaml 并配置:

    • 1 个托管免费 Postgres 数据库(conspiracy-db

    • 3 个 Web 服务,每个都通过 DATABASE_URL 自动连接到同一个数据库,仅在 MAX_TIER 上有所区别

  4. 数据库上线后,运行一次加载器(在任意 3 个服务的 Render Shell 标签页中,或从你自己的机器使用数据库的外部连接字符串):

    $env:DATABASE_URL = "<external connection string from Render dashboard>"
    python mcp/build_db_postgres.py
  5. 所有 3 个服务现在都基于同一个数据库运行,按层级过滤。从 Render 仪表板获取 3 个公共 URL。

Fly.io 替代方案: 使用 Fly Postgres(fly postgres create)作为共享数据库,然后对 3 个应用分别执行 fly deploy,并分别为每个应用设置 DATABASE_URLMAX_TIER——思路相同,平台不同。

部署完成后,将每个 URL 各自注册为一个 MCP 连接器——MCP 1 的 URL 用于完全访问,MCP 2 的用于中间层级,MCP 3 的用于公开/基础演示——这才是真正满足"非本地"要求的关键。

接入 Claude / MCP 客户端

每个已部署的 URL 都是标准的 streambable-HTTP MCP 端点——按照添加任何其他 MCP 服务器的方式,将其添加为远程连接器,指向 https://<service>.onrender.com(或你的 Fly 应用 URL)。无需本地导入步骤——数据库在构建时已内置于每个容器中。

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