项目简介
Org-mode MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的后端服务,专注于管理和提供Org-mode文件中的知识。它允许大型语言模型 (LLM) 通过标准化的 JSON-RPC 协议与您的Org-mode笔记进行交互,从而将您的个人知识库无缝集成到AI工作流中。
主要功能点
- 文件列表和访问: 轻松列出并读取配置目录下的所有 '.org' 文件内容。
- 结构化大纲: 获取任何Org-mode文件的层级结构(标题大纲),以JSON格式呈现,便于LLM理解文件结构。
- 标题内容提取: 根据路径精确提取Org-mode文件中指定标题(及其子标题)的完整内容。
- ID内容查找: 通过Org-mode文件中定义的唯一 'ID' 属性,快速定位并提取任何Org-mode元素(如标题、段落、文档本身)的内容。
- 全文模糊搜索: 利用模糊匹配技术在所有Org-mode文件中进行文本内容搜索,支持结果限制和摘要长度定制,并可通过标签进行过滤。
- 标签过滤: 在列出文件和进行搜索时,可以根据一个或多个标签对结果进行筛选。
安装步骤
您可以选择以下任一方式安装Org-mode MCP 服务器和其配套的命令行工具 'org-cli':
1. 通过预构建二进制文件安装(推荐)
从项目的 GitHub Releases 页面下载最新版本的预构建二进制文件。以下为Linux示例,其他平台请访问发布页获取对应文件:
# 下载并安装 org-cli 命令行工具 curl -LO https://github.com/szaffarano/org-mcp-server/releases/latest/download/org-cli-x86_64-unknown-linux-gnu.tar.gz tar xzf org-cli-x86_64-unknown-linux-gnu.tar.gz sudo mv org-cli /usr/local/bin/ # 下载并安装 org-mcp-server 服务器 curl -LO https://github.com/szaffarano/org-mcp-server/releases/latest/download/org-mcp-server-x86_64-unknown-linux-gnu.tar.gz tar xzf org-mcp-server-x86_64-unknown-linux-gnu.tar.gz sudo mv org-mcp-server /usr/local/bin/
2. 使用 Cargo 安装(适用于Rust开发者)
如果您已经安装了 Rust 语言环境,可以通过 Cargo 包管理器直接安装:
# 安装 CLI 工具 cargo install org-cli --locked # 安装 MCP 服务器 cargo install org-mcp-server --locked
3. 使用 Nix Flakes 安装(适用于Nix用户)
如果您使用 Nix 包管理器:
# 直接运行服务器或 CLI 命令 nix run github:szaffarano/org-mcp-server # 安装到您的用户环境 nix profile install github:szaffarano/org-mcp-server # 进入开发环境 nix develop github:szaffarano/org-mcp-server
服务器配置(供MCP客户端使用)
MCP 客户端(如AI代理)需要一个JSON格式的配置来启动并连接到Org-mode MCP服务器。以下是一个常见的配置结构示例,以及各参数的说明:
{ "mcpServers": { "org-mode": { "command": "/path/to/org-mcp-server", "args": [ "--root-directory", "/path/to/your/org/files" ], "env": { "ORG_LOGGING__LEVEL": "info", "ORG_SERVER__MAX_CONNECTIONS": "20" } } } }
- 'mcpServers': 这是您AI代理配置中用于定义MCP服务器连接的顶层键。
- 'org-mode': 这是您为Org-mode MCP服务器定义的唯一名称,可以根据您的偏好进行修改。
- 'command': 指定 'org-mcp-server' 可执行文件的完整路径。例如,如果您通过预构建二进制安装并移动到了 '/usr/local/bin/',则路径可能为 '/usr/local/bin/org-mcp-server'。
- 'args': 一个字符串数组,用于向 'org-mcp-server' 进程传递命令行参数。常用的参数包括:
- '"--root-directory", "/path/to/your/org/files"': 指定包含您所有Org-mode文件的根目录。这是服务器正常工作的关键配置。
- '"--config", "/path/to/server-config.toml"': (可选)指定自定义的服务器配置文件路径。
- '"--log-level", "debug"': (可选)覆盖配置文件中的日志级别设置。
- 'env': 一个键值对字典,用于设置 'org-mcp-server' 进程的环境变量。这些环境变量会覆盖配置文件中的设置,常用的包括:
- '"ORG_ORG__ORG_DIRECTORY": "/path/to/your/org/files"': 类似于 'args' 中的 '--root-directory',用于指定Org文件的根目录。
- '"ORG_LOGGING__LEVEL": "info"': 设置服务器的日志输出级别,可选值有 'trace', 'debug', 'info', 'warn', 'error'。
- '"ORG_SERVER__MAX_CONNECTIONS": "20"': 设置服务器允许的最大并发连接数。
基本使用方法
一旦Org-mode MCP服务器配置完成并被您的LLM客户端成功启动,LLM即可通过MCP协议调用服务器提供的功能:
- 列出Org文件: LLM可以请求 'org://' 资源或调用 'org-file-list' 工具来获取所有Org文件的列表。
- 获取文件内容: LLM可以通过 'org://{文件名.org}' 资源路径直接读取特定Org文件的原始文本内容。
- 查询文件大纲: LLM可以利用 'org-outline://{文件名.org}' 资源来获取文件标题的结构化大纲,帮助其理解文件组织。
- 提取特定标题: 对于需要聚焦某个话题的场景,LLM可以通过 'org-heading://{文件名.org}#{标题路径}' 资源直接获取指定标题下的全部内容。
- 按ID查找: 如果Org-mode元素定义了 'ID' 属性,LLM可以使用 'org-id://{ID值}' 资源进行精确查找。
- 智能搜索: LLM可以调用 'org-search' 工具,传入关键词和可选参数(如'limit'、'snippet_max_size'、'tags')来执行模糊搜索,找到相关笔记片段。
通过这些功能,您的LLM可以像智能助理一样访问、分析和利用您庞大的Org-mode知识库。
信息
分类
生产力应用