黑曜石MCP服务器
一个MCP(模型上下文协议)服务器,它公开了 黑曜石醇 用于分析Obsidian.md Vault的Python包。这允许AI助手以编程方式分析黑曜石金库并与之交互。
特性
MCP服务器提供对黑曜石工具功能的全面访问:
Vault初始化和连接
- init_vault:使用可选的子目录筛选初始化vault进行分析
- connect_vault:构建包含可选附件的图形结构
- gather_vault:通过可选的代码删除从笔记中收集明文内容
图分析
- get_graph_stats:获取全面的图形统计数据(节点、边、密度、中心性)
- 导出图形:以多种格式导出vault图(GEXF、GraphML、JSON、YAML)
元数据抽取
- get_note_metadata:以DataFrame/JSON格式获取所有笔记的详细元数据
- 获取媒体元数据:获取媒体文件的元数据
- get_canvas_metadata:获取画布文件的元数据
文件管理
- get_file_indices:按类型列出所有文件(笔记、媒体、画布)
- get_nonexisten_files:查找指向不存在文件的断开链接
- 获取隔离文件:查找未从任何地方链接的孤立文件
链接分析
- 获取所有链接:按类型组织所有链接(维基链接、反向链接、嵌入、标记)
- get_note_links:获取特定笔记的所有链接
内容提取
- get_note_content:提取各种内容类型(源、可读、封面、标签、数学)
- search_notes:在笔记中进行全文搜索
标签管理
- 获取所有标签:获取所有使用频率标签
- find_notes_by_tag:查找包含特定标签的所有笔记
帆布支架
- get_canvas_content:获取画布文件的JSON内容
分析
- 分析文化结构:获取全面的保险库结构分析
安装
- 克隆此存储库:
git clone
cd obsidiantools-mcp-server- 安装依赖项:
pip install -r requirements.txt- 使服务器可执行:
chmod +x obsidiantools_mcp_server.py用法
作为MCP服务器
- 添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"obsidiantools": {
"command": "python",
"args": ["/path/to/obsidiantools_mcp_server.py"]
}
}
}- 服务器将可供您的AI助手用于vault分析。
直接使用Python
import obsidiantools.api as otools
# Initialize and analyze a vault
vault = otools.Vault('/path/to/obsidian/vault')
vault.connect().gather()
# Get metadata
df = vault.get_note_metadata()
print(df)
# Access the graph
import networkx as nx
print(nx.info(vault.graph))工作流示例
以下是分析黑曜石金库的典型工作流程:
- 初始化保管库:
init_vault(vault_path="/path/to/vault")- 连接以构建图形:
connect_vault(include_attachments=true)- 收集内容 (可选,文本分析所需):
gather_vault(remove_code=false)- 分析保险库:
get_graph_stats()
analyze_vault_structure()
get_note_metadata(as_json=true)- 搜索和探索:
search_notes(query="machine learning")
find_notes_by_tag(tag="research")工具参考
初始化工具
init_vault
- 参数:
- vault_path (必填):黑曜石拱顶之路 - include_subdirs (可选):要包含的子目录列表
- 退货:成功/错误消息
connect_vault
- 参数:
- include_attachments (可选,默认值:false):在图形中包含附件
- 退货:图形连接信息
gather_vault
- 参数:
- remove_code (可选,默认值:false):从文本中删除代码块
- 退货:成功/错误消息
分析工具
get_graph_stats
- 参数:无
- 退货:带有图形度量和最相关注释的词典
分析文化结构
- 参数:无
- 退货:全面的保险库分析,包括计数和统计
元数据工具
get_note_metadata
- 参数:
- as_json (可选,默认值:true):返回JSON或DataFrame字符串
- 退货:注意元数据,包括链接、标签和结构
搜索工具
search_notes
- 参数:
- query (必填):要搜索的文本 - search_type (可选):“源”或“可读”
- 退货:与上下文匹配的列表
find_notes_by_tag
- 参数:
- tag (必填):要搜索的标签(带或不带#)
- 退货:注释名称列表
需求
- Python 3.9或更高版本
- 带有标记文件的黑曜石金库
- requirements.txt中列出的所有依赖项
局限性
- 该软件包最适合使用标准wikilink语法的保管库
- 维基链接中的相对路径(如
[[../note]])不完全支持 - 该图可能与Obsidian的图视图略有不同(参见 黑曜石工具维基)
故障排除
“保险库未初始化”错误
一定要打电话 init_vault 在使用其他工具之前,请先使用有效的vault路径。
“保险库未连接”错误
呼叫 connect_vault 之后 init_vault 构建图形结构。
缺少内容错误
呼叫 gather_vault 连接后启用文本搜索和内容提取。
图形导出错误
确保您拥有输出路径和所需库的写入权限(例如,用于YAML导出的PyYAML)。
许可证
此MCP服务器遵循黑曜石工具包的许可(修改后的BSD 3条款)。
贡献
欢迎投稿!请随时提交问题或拉取请求。
致谢
此MCP服务器建立在优秀的 黑曜石醇 Mark Farragher的包裹
