添加 LLM/MCP 工具
io.github.TriliumNext/Trilium/adding-llm-mcp-tools
在 Trilium 中新增、修改或评审 LLM/MCP 工具时使用(packages/trilium-core/src/services/llm/tools/ 下 defineTools 定义的笔记/属性/附件/层级/图标/skill 等工具)——即同时暴露给应用内 LLM 聊天与外部 MCP server 的内容。涵盖 execute 为何必须是同步的(NotAPromise<T> 编译防护 + better-sqlite3 同步事务)、mutates:true→getSql().transactional 的接线、同时供给两方的唯一 allToolRegistries 注册点、返回 {error} 而非抛错的约定、受保护/系统笔记的守卫,以及 getTool()/cls.init() 测试框架。不适用于客户端笔记 UI、ETAPI 端点或一般性 Vitest 问题(见 writing-unit-tests)。