obsidian-mcp-server:为大型语言模型提供知识库交互方案
项目介绍
obsidian-mcp-server 是一款基于 Model Context Protocol (MCP) 的服务器应用,旨在让大型语言模型(LLMs)能够与 Obsidian 知识库进行交互。该项目采用 TypeScript 编写,具备安全高效的 API 通信、文件操作和全面的搜索功能,通过简洁灵活的工具接口,使得 AI 助理能够无缝地管理知识库。
项目技术分析
obsidian-mcp-server 采用了多种技术来确保其高性能和稳定性:
- TypeScript:提供了类型安全,使得代码更加健壮,易于维护。
- Model Context Protocol (MCP):一种标准化接口,允许 AI 模型与外部工具和资源进行交互。
- 文件操作:支持原子性的文件和目录操作,具备验证、资源监控和错误处理功能。
- 搜索系统:提供全文搜索,支持配置上下文、高级 JsonLogic 查询、glob 模式和 frontmatter 字段支持。
- 属性管理:支持 YAML frontmatter 解析,智能合并,自动时间戳和自定义字段支持。
- 安全与性能:API 密钥认证、速率限制、SSL 选项、资源监控和优雅关机。
项目技术应用场景
obsidian-mcp-server 可以应用于以下场景:
- AI 助理集成:集成到 AI 助理中,使得助理能够访问和操作 Obsidian 知识库中的数据。
- 知识库自动化:自动化处理知识库中的数据,如自动更新、整理和搜索。
- 数据挖掘与分析:用于数据挖掘和文本分析,从知识库中提取有价值的信息。
- 自定义工具开发:作为基础服务,为开发自定义工具提供支持。
项目特点
obsidian-mcp-server 的特点如下:
- 高效文件操作:通过原子性操作和资源监控,确保文件操作的可靠性和安全性。
- 强大的搜索能力:支持全文搜索和高级查询,快速定位所需信息。
- 灵活配置:提供多种环境变量配置选项,适应不同使用场景。
- 安全性:通过 API 密钥认证和 SSL 选项,确保通信安全。
- 性能优化:通过速率限制和资源监控,提高服务性能和稳定性。
以下是一个详细的指南,帮助您更好地了解和使用 obsidian-mcp-server。
安装
在开始之前,请确保已启用 Obsidian 的 Local REST API 插件。
方法一:克隆和构建(适用于开发或直接使用)
- 启用 Local REST API 插件。
- 克隆仓库,安装依赖,并构建项目:
git clone git@github.com:cyanheads/obsidian-mcp-server.git cd obsidian-mcp-server npm install npm run build
- 使用环境变量配置服务器。
- 在 MCP 客户端设置中包括服务器。
方法二:通过 npm 安装(作为依赖项或全局安装)
- 启用 Local REST API 插件。
- 使用 npm 安装包:
# 局部安装(例如,在另一个项目中) npm install obsidian-mcp-server # 或全局安装 npm install -g obsidian-mcp-server
- 在 MCP 客户端设置中包括服务器。
配置
在 MCP 客户端设置文件中添加以下内容:
{
"mcpServers": {
"obsidian-mcp-server": {
"command": "node",
"args": ["/path/to/obsidian-mcp-server/dist/index.js"],
"env": {
"OBSIDIAN_API_KEY": "your_api_key_here",
"VERIFY_SSL": "false",
"OBSIDIAN_PROTOCOL": "https",
"OBSIDIAN_HOST": "127.0.0.1",
"OBSIDIAN_PORT": "27124",
"REQUEST_TIMEOUT": "5000",
"MAX_CONTENT_LENGTH": "52428800",
"MAX_BODY_LENGTH": "52428800",
"RATE_LIMIT_WINDOW_MS": "900000",
"RATE_LIMIT_MAX_REQUESTS": "200",
"TOOL_TIMEOUT_MS": "60000"
}
}
}
}
确保正确设置环境变量,以适应您的使用场景。
工具
obsidian-mcp-server 提供了以下工具:
obsidian_list_files_in_vault
:列出 Obsidian 仓库中的所有文件和目录。obsidian_list_files_in_dir
:列出特定目录中的文件和目录。obsidian_get_file_contents
:获取指定文件的内容。obsidian_append_content
:向指定文件追加内容。obsidian_update_content
:更新指定文件的内容。obsidian_find_in_file
:在仓库中执行全文搜索。
通过以上功能和工具,obsidian-mcp-server 成为了一个强大的知识库交互解决方案,适用于各种复杂场景。无论您是 AI 助理开发者还是知识库管理员,都能从中受益。立即尝试使用 obsidian-mcp-server,提升您的工作效率!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考