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客户端和数据模型。
