项目简介

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协议调用服务器提供的功能:

  1. 列出Org文件: LLM可以请求 'org://' 资源或调用 'org-file-list' 工具来获取所有Org文件的列表。
  2. 获取文件内容: LLM可以通过 'org://{文件名.org}' 资源路径直接读取特定Org文件的原始文本内容。
  3. 查询文件大纲: LLM可以利用 'org-outline://{文件名.org}' 资源来获取文件标题的结构化大纲,帮助其理解文件组织。
  4. 提取特定标题: 对于需要聚焦某个话题的场景,LLM可以通过 'org-heading://{文件名.org}#{标题路径}' 资源直接获取指定标题下的全部内容。
  5. 按ID查找: 如果Org-mode元素定义了 'ID' 属性,LLM可以使用 'org-id://{ID值}' 资源进行精确查找。
  6. 智能搜索: LLM可以调用 'org-search' 工具,传入关键词和可选参数(如'limit'、'snippet_max_size'、'tags')来执行模糊搜索,找到相关笔记片段。

通过这些功能,您的LLM可以像智能助理一样访问、分析和利用您庞大的Org-mode知识库。

信息

分类

生产力应用