Logseq知识库交互服务

一个基于Model Context Protocol (MCP)的服务,使AI助手能够与Logseq知识库文件进行交互,提供搜索笔记、阅读页面、按标签查询和整合项目信息等功能。

  • by Bakstyx
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Bakstyx/mcp-python-logseq

使用说明

MCP Logseq知识库

A. 模型上下文协议(MCP) 使AI助手能够与之交互的服务器 Logseq 知识库文件。此服务器提供用于搜索笔记、阅读页面、按标签查询和整合项目信息的工具。

特性

  • 全文搜索 在所有具有上下文感知结果的Logseq页面中
  • 页面检索 按名称阅读完整的笔记内容
  • 基于标签的查询 通过标签查找页面
  • 日志导航 具有日期范围过滤功能
  • 项目整合 聚合所有标记有项目标记的笔记
  • 智能缓存 通过增量索引更新实现最佳性能
  • 增量索引 仅重新读取已更改的文件

可用工具

工具 说明
search_notes(query) 在所有Logseq页面上进行全文搜索
get_page(page_name) 按名称读取特定的Logseq页面
list_pages(folder) 列出文件夹中的所有页面(页面、日记或全部)
get_pages_by_tag(tag) 查找包含特定内容的所有页面 #tag
get_journal_range(start_date, end_date) 读取日期之间的日记账条目(YYYY-MM-DD)
consolidate_project(project_tag) 聚合所有标记有项目标记的笔记
get_all_tags() 获取知识库中使用的所有标签的列表
refresh_index() 强制对Logseq图进行全面重新扫描

安装

先决条件

  • Python 3.10或更高版本
  • 诗歌 用于依赖关系管理
  • Logseq图形目录

设置

  1. 克隆存储库:

    git clone <repository-url>
    cd mcp-python-logseq
    
  2. 使用Poetry安装依赖项:

    poetry install
    

使用Claude代码进行配置

使用以下方法之一将此MCP服务器添加到Claude Code:

方法1:使用 claude mcp add

claude mcp add logseq \
  -e LOGSEQ_DIR="~/logseq-graph" \
  -e CACHE_TTL=300 \
  -- poetry run python /path/to/mcp-python-logseq/server.py

方法2:使用 fastmcp install

poetry run fastmcp install claude-code server.py \
  --server-name "logseq" \
  --env LOGSEQ_DIR=~/logseq-graph \
  --env CACHE_TTL=300

配置其他MCP客户端

将以下内容添加到MCP客户端配置中:

{
  "mcpServers": {
    "logseq": {
      "command": "poetry",
      "args": [
        "run",
        "python",
        "/path/to/mcp-python-logseq/server.py"
      ],
      "env": {
        "LOGSEQ_DIR": "~/logseq-graph",
        "CACHE_TTL": "300"
      }
    }
  }
}

环境变量

变量 描述 默认值
LOGSEQ_DIR Logseq图目录的路径 ~/logseq-graph
CACHE_TTL 缓存生存时间(秒) 300 (5分钟)

用法示例

搜索笔记

"Search my notes for 'machine learning'"

AI将使用 search_notes("machine learning") 查找相关内容。

阅读特定页面

"Show me my notes on the Python project"

AI将使用 get_page("Python project") 以检索页面内容。

按标签查询

"What notes do I have tagged with #work?"

AI将使用 get_pages_by_tag("work") 列出所有匹配的页面。

日记账分录

"Show me journal entries from last week"

AI将使用 get_journal_range("2025-03-25", "2025-03-31") 检索条目。

项目整合

"Summarize all my notes for the website redesign project"

AI将使用 consolidate_project("website-redesign") 收集所有相关笔记。

建筑

服务器构建于:

  • FastMCP:用于构建MCP服务器的高级Python库
  • LogseqIndex:一个自定义索引类,它:
    • 扫描 .md Logseq目录中的文件
    • 提取元数据(标签、修改时间)
    • 实施增量更新以提高效率
    • 缓存结果以最小化I/O操作

指数化策略

这 LogseqIndex 使用两层缓存策略:

  1. 文件索引缓存:根据文件修改时间逐步更新

    • 每次进行完整目录扫描 CACHE_TTL 检测新文件/已删除文件的秒数
    • 扫描之间仅检查已知文件的快速路径
  2. 结果缓存:缓存每个工具具有可配置TTL的工具输出

    • 搜索结果:5分钟
    • 页面内容:1分钟
    • 项目整合:10分钟

发展

项目结构

.
├── server.py              # Main MCP server implementation
├── pyproject.toml         # Poetry configuration
├── README.md             # This file
├── doc.md                # Installation guide
├── fastmcp_documentation.md  # FastMCP reference
└── command.txt           # Example CLI commands

本地运行

# Set environment variables
export LOGSEQ_DIR="~/Documents/MyLogseqGraph"
export CACHE_TTL=300

# Run the server
poetry run python server.py

MCP检验员测试

npx @modelcontextprotocol/inspector poetry run python server.py

需求

  • Python>=3.10,<4.0
  • fastmcp >= 3.1.1, < 4.0.0

看 pyproject.toml 对于完整的依赖性规范。

许可证

本项目根据GNU通用公共许可证v3.0(GPL-3.0)获得许可。看 许可证 了解详情。

贡献

欢迎投稿!请随时提交问题或拉取请求。

致谢


备注:这是一个社区项目,与Logseq或Anthropic没有正式联系。