Logseq MCP服务器

yalms是一个模型上下文协议(MCP)服务器,提供与Logseq图交互的结构化接口,支持AI模型读取、创建、更新和管理Logseq中的页面和块。

  • by clstb
  • Go
  • 本地部署
  • 2 星标
  • 更新于

使用说明

yalms(另一个Logseq MCP服务器)

yalms 是一个模型上下文协议(MCP)服务器,它提供了一个与Logseq图交互的结构化接口。它允许AI模型在Logseq中读取、创建、更新和管理页面和块,支持一般大纲图使用和本体数据建模。

特性

  • 模型上下文协议(MCP):实施MCP标准,与AI工具和IDE无缝集成。
  • 两种操作模式:
    • 一般模式:用于管理页面和块的标准大纲视图行为。
    • 本体论模式:通过命名空间支持和snake_case属性规范化对结构化数据进行优化。
  • 智能链接管理:自动处理链接的页面创建,并将命名空间链接转换为UUID引用,以保持图的完整性。
  • 综合API:支持搜索、批处理操作、标签管理和复杂的块树操作。

安装

先决条件

  • 转到1.21或更高版本。
  • 一个正在运行的Logseq实例 HTTP API 启用。

从源代码构建

git clone https://github.com/clstb/yalms.git
cd yalms
go build -o yalms ./cmd/yalms

用法

使用CLI启动服务器:

./yalms [flags]

配置标志

标志 环境变量 默认值 描述
--logseq-url LOGSEQ_URL http://127.0.0.1:12315 Logseq HTTP API的URL。
--logseq-token LOGSEQ_TOKEN auth 用于身份验证的API令牌。
--logseq-mode LOGSEQ_MODE general 服务器模式: general 或 ontological.
--debug - false 启用详细的开发日志记录。

可用工具

服务器根据活动模式公开了几个MCP工具:

图形工具

  • read_graph_info:获取当前Logseq图的元数据。
  • query:对Logseq数据库执行高级数据日志查询。
  • list_namespaces:列出图中所有现有的命名空间。
  • get_daily_journal:检索今天期刊的页面详细信息。

页面/实体工具

  • read_page (一般)/ read_entity (本体论):检索结构化数据和属性。
  • create_entity:创建一个新的命名空间实体(Ontological)或页面(General)。
  • create_pages (常规):在一次调用中创建多个页面。
  • update_page (一般)/ update_entity (本体论):修改属性。
  • delete_page (一般)/ delete_entity (本体论):永久删除页面/实体。
  • delete_pages (常规):永久删除多个页面。
  • rename_page:按UUID重命名现有页面/实体。

命名空间工具

  • read_namespace:列出特定命名空间内的所有实体或页面。
  • create_namespace (General):创建新的命名空间/类别级别。

阻止/输入工具

  • read_block (一般)/ read_entry (本体论):检索特定块/条目的详细信息。
  • create_block (一般)/ create_entry (本体论):在父项下插入单个块/条目。
  • create_block_tree (一般)/ create_entry_tree (本体论):插入结构化层次结构。
  • append_block (一般)/ append_entry_to_entity (本体论):添加到页面/实体的末尾。
  • update_block (一般)/ update_entry (本体论):修改内容或属性。
  • remove_block (一般)/ remove_entry (本体论):删除块/条目。
  • remove_blocks (通用):删除多个块。

标记/属性工具

  • add_tag:添加a #tag 到块/条目或页面/实体(类/通用)。
  • remove_tag:删除发现标记(类/通用)。
  • add_property:添加或更新特定元数据属性(属性/关系)。
  • remove_property:删除特定的元数据属性(属性/关系)。

本体映射

yalms 支持映射到Logseq原生结构的本体数据模型:

本体论概念 定义 Logseq映射 示例
类(通用) 事物的类别或类型。 标签(链接页面) #Book, #Person, #Meeting
实例(特定) 一个特定的独特实体。 页面 [[The Hobbit]], [[Alice Smith]]
属性 实例固有的数据。 属性(文本/数字) published-date:: 1937
关系 与其他实例的连接。 属性(页面链接) author:: [[J.R.R. Tolkien]]

发展

运行测试

要运行标准单元测试,请执行以下操作:

go test ./...

要运行集成测试(需要一个正在运行的Logseq实例):

LOGSEQ_API_TOKEN=your_token go test ./pkg/logseq -v

项目结构

  • cmd/yalms:CLI入口点。
  • internal/server:MCP服务器实现和请求处理程序。
  • pkg/logseq:Logseq API客户端和数据模型。

许可证

MIT许可证