multidim-mcp

multidim-mcp

Provides deterministic structured thinking grids and validation for AI agents, enabling consistent multi-lens analysis without network calls or model inference.

Category
访问服务器

README

<p align="center"> <img src="https://raw.githubusercontent.com/Cherridsaid/multidim-mcp/main/docs/hero.png" alt="multidim-mcp: one subject, split through a prism into eight analysis lenses" width="100%"> </p>

multidim-mcp

<!-- mcp-name: io.github.Cherridsaid/multidim-mcp -->

Structured thinking grids for AI agents — a standalone MCP server, pure standard library.

Multidim routes a subject to a set of analysis lenses (a context) and returns a hierarchical grid — axes, sub-lenses, mandatory questions — for the calling LLM to fill in. The thinking stays with the caller: the server provides structure, never cognition. It calls no LLM, makes no network requests, and the same input always produces the same frame.

  • Zero dependencies — Python 3.9+, standard library only.
  • Deterministic v2 contract — every frame carries a self-verifiable frame_hash; a filled analysis is checked section by section with actionable error codes.
  • Learned traps — lessons you record once become mandatory questions injected into every future frame whose subject matches.
  • Hardened store — atomic writes, native cross-process locking, additive migrations, backed-up resets, and a guard that refuses to ever touch a foreign ~/.multidim store.

See the difference

An agent analyses "Should we migrate the billing service from MySQL to PostgreSQL?". Every section is filled, every sentence reads fine. Here is what multidim_validate returns on that first pass:

overall verdict: REJECT

REJECT  alternatives        NOT_ENOUGH_ALTERNATIVES, ALTERNATIVE_DUPLICATES_PRIMARY
REJECT  hypotheses          HYPOTHESIS_NOT_FALSIFIABLE
REJECT  second_order_risks  SECOND_ORDER_REPEATS_FIRST
REJECT  cross_talk          GENERIC_DENSITY_HIGH
REJECT  synthesis           SYNTHESIS_WITHOUT_REFERENCES
WARNING premortem           PREMORTEM_SIMILAR_TO_RISKS

The only alternative restated the hypothesis, the hypothesis carried no test that could prove it wrong, the second-order effect repeated the first one word for word, and the conclusion referenced none of the work above. None of that is visible when you read the answer; all of it is reported here, by name.

Redo the rejected sections and the same checker returns ACCEPT. Edit the frame to delete the rule you find inconvenient, and it refuses the whole submission — the frame carries a hash of its own content.

Full transcript, including what the fixed sections look like and what this deliberately does not check: DEMO.md. Reproduce it in one command: python demo.py.

Quickstart

pip install multidim-mcp        # from PyPI
pip install .                   # or from a source checkout

Register the server with any MCP client (stdio transport):

{
  "mcpServers": {
    "multidim": {
      "command": "multidim-mcp"
    }
  }
}

Or run it directly: python -m multidim_mcp, or without installing: uvx multidim-mcp.

The server is listed in the official MCP Registry as io.github.Cherridsaid/multidim-mcp.

Tools

Tool Role
multidim_analyze Build the grid for a subject (depth: core / deep / full; format: text or deterministic v2 JSON frame)
multidim_contexts List every known context with its axes and sub-lenses
multidim_validate Deterministic, stateless check of a filled analysis against its v2 frame — ACCEPT / WARNING / REJECT per section
multidim_learn Create or enrich a context (keywords, axes, traps) — the only write door

How it works

<p align="center"> <img src="https://raw.githubusercontent.com/Cherridsaid/multidim-mcp/main/docs/workflow.png" alt="multidim_analyze produces a deterministic v2 frame; your LLM fills it; multidim_validate stamps ACCEPT / WARNING / REJECT and only rejected sections are redone" width="90%"> </p>

  1. multidim_analyze detects the best context for your subject (word-boundary keyword matching, accent-folded) and returns a v2 frame: required sections, section schemas, validation rules, mandatory questions — including every learned trap whose triggers match the subject.
  2. Your LLM fills the frame, section by section.
  3. multidim_validate rebuilds the frame from the store, refuses a tampered or stale one (frame_hash), then checks the analysis: structural completeness, falsification tests on hypotheses, alternatives that genuinely differ from the primary, second-order effects distinct from first-order, a pre-mortem that does not copy the risk list, a synthesis that references real identifiers, and a filler-phrase density cap. Only rejected sections are redone, within the frame's max_validation_rounds.

The four seed contexts are neutral and deterministic: generic (8 general lenses), code_review, technical_writing, decision.

Storage

The store lives on a dedicated per-user data path (MULTIDIM_MCP_HOME overrides it) and is created on first run from the neutral seeds. Writes are atomic and serialized across processes with the OS's native file locking; a corrupt store is backed up before any reset, never silently discarded. A tripwire refuses every read or write that would resolve into a foreign personal ~/.multidim store.

Maintainers publishing forks can extend the neutrality guard with their own private markers via MULTIDIM_MCP_EXTRA_FORBIDDEN (comma-separated), without hardcoding them into public source.

Transparency

  • Not an AI system. multidim-mcp contains no model and performs no inference: it is deterministic, rule-based software. Under the EU AI Act (Reg. 2024/1689) it is not an AI system in the sense of Art. 3(1), and as free and open-source software it falls under the Art. 2(12) exemption. It collects no data and makes no network calls.
  • Illustrations in this README were generated with GPT and keep their C2PA provenance metadata intact.

Development

python run_tests.py      # full suite, stdlib only
python smoke_install.py  # packaging smoke test (wheel + venv + entry point)
python demo.py           # the analyse -> validate -> fix -> accept cycle of DEMO.md

CI runs both on Ubuntu and Windows across Python 3.9 / 3.11 / 3.13.

License

Apache-2.0 — see LICENSE and NOTICE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选