使用NM3格式将Markdown文档转换为沉浸式3D可视化
Markdown3D MCP是一个模型上下文协议(MCP)服务器,它智能地将Markdown文档转换为三维空间表示。通过语义分析、交叉引用检测和优化的空间布局算法,它创建了可导航的3D知识结构,保留了文档层次结构和关系。
[[节点ID]]模式并构建关系图npm install -g markdown3d-mcp
# 克隆仓库
git clone https://github.com/yourusername/markdown3d-mcp.git
cd markdown3d-mcp
# 安装依赖
npm install
# 构建项目
npm run build
在你的Claude Desktop配置中添加服务器:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"markdown3d": {
"command": "node",
"args": ["/绝对路径/to/markdown3d-mcp/dist/index.js"]
}
}
}
# 运行独立测试
npm run test
# 启动开发服务器
npm run dev
请使用transform_to_nm3工具来转换此Markdown:
# 我的研究
## 关键发现
- 发现1
- 发现2
# 转换Markdown文件
node dist/index.js < input.md > output.nm3
# 运行测试客户端
npm run test
transform_to_nm3将Markdown内容转换为NM3 3D可视化格式,并进行性能优化。
参数:
markdown(必需):要转换的Markdown内容title(可选):文档标题覆盖author(可选):作者名称覆盖options(可选):性能选项对象
useCache(布尔值,默认:true):启用多层缓存useStreaming(布尔值,默认:true):启用流式处理大型文档chunkSize(数字,默认:1000):流式处理每块的行数示例:
{
"markdown": "# 引言\n\n这是一个测试文档。",
"title": "测试文档",
"author": "John Doe",
"options": {
"useCache": true,
"useStreaming": true
}
}
**返回值:**有效的NM3 XML字符串
性能说明:
validate_nm3验证NM3 XML是否符合规范。
参数:
xml(必需):要验证的NM3 XML**返回值:**包含成功状态和错误详情的验证结果
get_performance_stats从服务器检索详细的性能和缓存统计信息。
**参数:**无
**返回值:**包括以下内容的性能报告:
示例响应:
# 性能统计
## 缓存统计
### 解析
- 命中次数:150
- 未命中次数:50
- 命中率:75.00%
- 键数:45
### 转换
- 命中次数:140
- 未命中次数:60
- 命中率:70.00%
- 键数:35
### XML
- 命中次数:145
- 未命中次数:55
- 命中率:72.50%
- 键数:40
## 内存统计
- 堆使用量:245.67MB
- 堆总量:512.00MB
- 使用百分比:47.98%
- RSS:385.23MB
## Prometheus指标
...
clear_cache清除所有缓存以释放内存或重置性能状态。
**参数:**无
**返回值:**确认消息
使用场景:
**注意:**清除缓存后,首次请求会花费更长时间,因为缓存需要重建。
import { MarkdownParser } from './core/parser.js';
import { SimpleTransformer } from './core/transformer.js';
import { NM3XMLBuilder } from './core/xml-builder.js';
// 解析Markdown
const parser = new MarkdownParser();
const sections = parser.parse(markdownContent);
// 转换为NM3
const transformer = new SimpleTransformer();
const nm3Doc = transformer.transform(sections);
// 构建XML
const xmlBuilder = new NM3XMLBuilder();
const xml = xmlBuilder.buildXML(nm3Doc);
Markdown → 解析器 → 语义分析 → 转换器 → XML生成器 → NM3
| 颜色 | 语义含义 | 触发器 |
|---|---|---|
pastel-pink | 紧急/关键 | 错误、警告、关键、紧急 |
pastel-blue | 信息 | 主要部分、文档 |
pastel-green | 解决方案/成功 | 解决方案、完成、成功 |
pastel-yellow | 问题/想法 | 问题、如何、为什么、什么 |
pastel-purple | 参考/来源 | 引用、参考、来源、链接 |
pastel-orange | 警告/注意 | 注意、谨慎、注释 |
pastel-mint | 新颖的想法 | 新的、创新、想法、提案 |
pastel-lavender | 技术/代码 | 代码块、技术内容 |
pastel-peach | 个人笔记 | 主观、意见、注释 |
pastel-gray | 存档/深度内容 | 嵌套内容、已完成项目 |
| 形状 | 使用 | 最佳用途 |
|---|---|---|
| 🔵 球体 | 原子概念 | 单一想法、定义、独立概念 |
| 📦 立方体 | 结构化数据 | 类别、表格、结构化信息 |
| 🔄 圆柱体 | 过程 | 时间轴、步骤、顺序过程 |
| 🔺 金字塔 | 层次结构 | 优先列表、组织结构 |
| 🍩 环面 | 循环 | 循环、反馈系统、连续过程 |
Markdown3D MCP针对生产负载进行了优化,并在第4阶段进行了性能增强:
| 指标 | 目标 | 描述 |
|---|---|---|
| 缓存请求 | <10ms | 重复转换从缓存提供 |
| 小文档 | <500ms | 小于100个节点的文档,第一次请求 |
| 中型文档 | <2s | 100-1000个节点的文档 |
| 大型文档 | <5s | 1000-5000个节点的文档(带流式处理) |
| 内存占用 | <500MB | 在正常生产负载下 |
| 缓存命中率 | >80% | 初始预热期后 |
为了获得最佳性能:
get_performance_stats工具监控内存使用clear_cache工具markdown3d-mcp/
├── src/
│ ├── index.ts # 入口点
│ ├── server.ts # MCP服务器实现
│ ├── core/
│ │ ├── parser.ts # Markdown解析
│ │ ├── transformer.ts # 基本转换
│ │ ├── enhanced-transformer.ts # 高级转换(第二阶段)
│ │ ├── optimized-transformer.ts # 性能优化转换器(第四阶段)
│ │ ├── xml-builder.ts # NM3 XML生成
│ │ ├── reference-extractor.ts # 交叉引用检测
│ │ ├── content-classifier.ts # 语义分析
│ │ ├── intelligent-shape-assigner.ts
│ │ ├── intelligent-color-mapper.ts
│ │ ├── spatial-optimizer-v2.ts # 空间布局优化(第三阶段)
│ │ ├── collision-detector.ts # 碰撞检测(第三阶段)
│ │ ├── force-directed-3d.ts # 力导向布局(第三阶段)
│ │ ├── layout-templates.ts # 布局模板(第三阶段)
│ │ ├── octree.ts # 八叉树空间索引(第三阶段)
│ │ ├── cache-manager.ts # 多层缓存(第四阶段)
│ │ ├── stream-processor.ts # 流式处理器(第四阶段)
│ │ ├── worker-pool.ts # 工作线程池(第四阶段)
│ │ ├── metrics.ts # 性能指标(第四阶段)
│ │ └── memory-monitor.ts # 内存管理(第四阶段)
│ ├── models/
│ │ └── types.ts # TypeScript接口
│ ├── constants/
│ │ └── validation.ts # 有效颜色和形状
│ ├── utils/ # 工具函数
│ └── handlers/ # 额外处理器
├── docs/ # 文档
│ ├── Markdown3D-Phase0.md # 概览
│ ├── Markdown3D-Phase1.md # 基础实现
│ ├── Markdown3-Phase2.md # 高级功能
│ ├── Markdown3D-Phase3.md # 空间优化
│ ├── Markdown3D-Phase4.md # 性能与可扩展性
│ └── instruct/ # 详细阶段指令
├── tests/ # 测试套件
├── output/ # 生成的NM3文件
└── specs/ # NM3规范
# 安装依赖
npm install
# 开发模式(监视更改)
npm run dev
# 构建生产环境
npm run build
# 运行测试
npm run test
# 启动MCP服务器
npm start
# 克隆仓库
git clone https://github.com/yourusername/markdown3d-mcp.git
cd markdown3d-mcp
# 安装依赖
npm install
# 构建TypeScript
npm run build
# 测试构建
node dist/index.js
该项目分为6个开发阶段:
第一阶段:基础及基本功能 ✅
第二阶段:高级解析与智能 ✅
第三阶段:空间优化 ✅
第四阶段:性能与可扩展性 ✅
第五阶段:测试与质量保证(计划中)