话语图MCP服务器
⚠️ 概念验证 -这是一个原型实现,用于探索如何通过模型上下文协议(MCP)将话语图与人工智能助手集成。它仅用于原型制作和实验目的。
概述
此MCP服务器通过模型上下文协议向Claude等AI助手公开话语图。它允许AI助手探索、搜索和遍历研究的结构化知识图,支持各种节点语法和关系类型。
服务器动态适应不同的话语图模式,使其适用于使用话语图格式的任何领域或研究领域。
这有什么作用
服务器为AI助手提供工具,以:
- 搜索 使用关键字和过滤器的知识图
- 检索 特定研究节点的详细信息
- 遍历 概念、论文和研究结果之间的关系
- 查询 本体论与关系类型
- 视图 研究图像内联(自动获取和显示)
- 分析 研究人员贡献和统计
所有图像内容都作为本地MCP图像块(base64编码)提供,以便在兼容的MCP客户端中进行内联显示。
建筑
- 协议:模型上下文协议(MCP)
- 运行时:使用TypeScript的Node.js
- 数据格式:JSON知识图导出
- 图像处理:获取Firebase URL并将其转换为base64以进行内联显示
提供的工具
search_nodes-带有类型和属性过滤器的全文搜索(支持任何节点类型)get_node-使用密钥图像获取完整的节点详细信息get_linked_nodes-带类型关系的图遍历get_schema-从数据集中返回动态加载的节点类型定义get_researcher_contributions-归因和统计get_node_images-获取节点的所有图像(内联显示)get_relationships-查询类型的关系(支持、通知、反对等)get_relation_types-列出所有可用的关系类型定义
主要特点: 服务器从每个数据集中动态加载节点模式,支持不同的节点语法,包括:
- 研究重点类型(结果、问题、主张、证据、假设、结论等)
- 项目管理类型(流程、工件、项目、问题、里程碑等)
- 理论和方法类型(理论、来源等)
安装
npm install
npm run build用法
运行服务器
npm start配置
环境变量
DATA_PATH:话语图JSON文件的路径(必填)SERVER_NAME:自定义服务器名称(可选,如果未提供,则根据文件名自动生成)
运行单个服务器
# Using default data path (project root JSON file)
npm start
# Using custom data path
DATA_PATH=/path/to/your/graph.json npm start
# Using custom server name
SERVER_NAME=my-custom-server DATA_PATH=/path/to/graph.json npm start自动生成的服务器名称
如果 SERVER_NAME 如果未提供,服务器会自动从数据集文件名中导出一个名称:
| 文件名 | 自动生成的服务器名称 |
|---|---|
discourse-graphs_query-results_202512290038.json | discourse-graphs-server |
akamatsulab_query-results_202512290139.json | akamatsulab-server |
mydata.json | mydata-server |
与Claude Code集成
单服务器设置
添加到MCP设置配置中(通常 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"discourse-graph": {
"command": "node",
"args": ["/path/to/discourse-graph-mcp/dist/index.js"],
"env": {
"DATA_PATH": "/path/to/discourse-graphs_query-results.json"
}
}
}
}多服务器设置(不同的数据集)
使用不同的数据集同时运行多个话语图服务器:
{
"mcpServers": {
"discourse-graphs": {
"command": "node",
"args": ["/Users/makamats/Repos/MCP-DG-demo/dist/index.js"],
"env": {
"DATA_PATH": "/Users/makamats/Repos/MCP-DG-demo/discourse-graphs_query-results_202512290038.json"
}
},
"akamatsulab": {
"command": "node",
"args": ["/Users/makamats/Repos/MCP-DG-demo/dist/index.js"],
"env": {
"DATA_PATH": "/Users/makamats/Repos/MCP-DG-demo/akamatsulab_query-results_202512290139.json"
}
}
}
}注: MCP客户端的配置密钥(例如。, "discourse-graphs", "akamatsulab2")独立于内部服务器名称。服务器名称用于工具调用和日志记录。
自定义服务器名称
需要时覆盖自动生成的名称:
{
"mcpServers": {
"production-graph": {
"command": "node",
"args": ["/path/to/discourse-graph-mcp/dist/index.js"],
"env": {
"SERVER_NAME": "production-discourse-graph",
"DATA_PATH": "/data/production/graph.json"
}
},
"staging-graph": {
"command": "node",
"args": ["/path/to/discourse-graph-mcp/dist/index.js"],
"env": {
"SERVER_NAME": "staging-discourse-graph",
"DATA_PATH": "/data/staging/graph.json"
}
}
}
}故障排除
服务器名称冲突
如果您看到有关重复服务器名称的错误,请确保每个服务器实例都有一个唯一的名称:
- 使用不同
DATA_PATH值(根据文件名自动生成的服务器名称) - OR显式设置唯一
SERVER_NAME通过环境变量确定值
找不到数据文件
ERROR: Data file not found: /path/to/file.json- 验证
DATA_PATH指向现有的JSON文件 - 使用绝对路径以避免歧义
- 检查文件权限
调试服务器实例
检查服务器启动日志(stderr)以验证配置:
Loading discourse graph data...
Server name: discourse-graphs-server
Data path: /Users/makamats/Repos/MCP-DG-demo/discourse-graphs_query-results_202512290038.json
Loaded 425 nodes项目结构
src/
├── index.ts # Main MCP server entry point
├── tools.ts # Tool handlers and schemas
├── search.ts # Keyword search implementation
├── dataLoader.ts # JSON data loading and indexing
├── imageParser.ts # Firebase image URL extraction
└── types.ts # TypeScript types and schemas开发状态
这是一个 概念验证 探索话语图与人工智能助手集成的实现。它表明:
- 如何通过MCP展示结构化知识图
- 动态支持不同的节点语法和关系类型
- 研究内容的内联图像显示功能
- 图遍历和类型化关系查询
- 基于归因的结构化知识全文搜索
- 多数据集支持(为不同的图形运行多个服务器)
已知限制
- 单一静态JSON数据源(无实时更新)
- 对于大型结果集,图像获取可能很慢
- 有限的错误处理和验证
- 无身份验证或访问控制
- 原型质量代码未针对生产进行优化
许可证
麻省理工学院
贡献
这是一个实验原型。在我们探索话语图如何增强人工智能辅助研究工作流程时,欢迎提供意见、建议和反馈。
