ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LLM Wiki MCP Server 接入指南:通过 MCP 协议将桌面知识库能力开放给任意 AI 客户端

LLM Wiki MCP Server 接入指南:通过 MCP 协议将桌面知识库能力开放给任意 AI 客户端 人工智能AI 应用大模型RAGAI Agent知识图谱知识管理桌面应用【免费下载链接】llm_wikiLLM Wiki is a cross-platform desktop application that turns your documents into an organized, interlinked knowledge base — automatically. Instead of traditional RAG (retrieve-and-answer from scratch every time), the LLM incrementally builds and maintains a persistent wiki from your sources。项目地址https://gitcode.com/GitHub_Trending/ll/llm_wiki点击查看免费下载导读LLM Wiki MCP Server 是 LLM Wiki 桌面应用跨平台文档知识库工具的 Model Context ProtocolMCP服务端封装它让 Claude Desktop、Cursor、VS Code 等任意 MCP 兼容客户端通过标准的 stdio 协议调用桌面应用本地 HTTP APIhttp://127.0.0.1:19828/api/v1从而复用应用自身的项目注册表、文件权限、搜索后端、知识图谱后端与 Source Watch 规则无需在客户端侧重复实现检索逻辑。读完本文你将掌握如何为 LLM Wiki 桌面应用启用本地 API 与 MCP 访问、如何构建与运行mcp-server、如何在客户端配置中注册llm-wiki服务、12 个 MCP 工具的完整参数与用法以及项目会话绑定机制和整体安全模型。一、设计定位桥接层而非逻辑复制从 mcp-server/README.md 的定位描述和 mcp-server/src/index.ts 的实现可以确认这个包只做一件事把正在运行的 LLM Wiki 桌面应用暴露为一个 MCP server。它遵循三个明确的设计原则不直接扫描项目文件夹文件枚举、读取全部由桌面应用本地 API 完成MCP 进程自身不做任何文件系统遍历不复制应用的搜索或图谱逻辑搜索/search、图谱/graph、对话/chat等能力全部透传给本地 API保证 MCP 客户端与桌面 UI 看到的是同一套检索结果与图谱数据统一安全边界MCP 工具继承桌面 API 的项目权限、文件白名单、Review 数据隔离等全部约束。也就是说无论客户端从哪个入口接入桌面界面、浏览器扩展、还是 MCP 客户端最终都汇聚到同一个127.0.0.1:19828本地 API。后端 API 服务器实现在 src-tauri/src/api_server.rs第 23-24 行定义了PORT: u16 19828与API_PREFIX: str /api/v1端口冲突或绑定失败时服务器会自动重试并通过get_api_status()对外暴露starting / running / port_conflict / error四种状态。二、环境要求与桌面端前置配置运行mcp-server需要同时满足以下条件条件说明Node.js 20这是 mcp-server/package.json 中engines.node声明的硬性要求LLM Wiki 桌面应用正在运行MCP 进程本身不携带任何知识库数据所有请求都依赖本地 API设置 → API MCP → 启用本地 HTTP API桌面端必须开启本地 HTTP 服务默认监听127.0.0.1:19828设置 → API MCP → 启用 MCP 访问控制 MCP 工具是否可用llm_wiki_status除外鉴权方式二选一① 设置中开启允许无 token 访问② 设置LLM_WIKI_API_TOKEN环境变量为已配置的 API token可选环境变量LLM_WIKI_API_BASE_URL用于覆盖默认 API 地址例如桌面应用因自定义配置改用了其他地址时。在 mcp-server/src/api-client.ts 中normalizeBaseUrl会去除地址末尾多余的/空值时回退到http://127.0.0.1:19828第 166-169 行这一行为由 mcp-server/test/api-client.test.ts 中的normalizeBaseUrl trims trailing slashes and falls back to localhost用例直接验证。关于鉴权的关键细节health接口对应llm_wiki_status永远不携带Authorization头见 mcp-server/src/api-client.ts 第 212 行auth: false与对应测试用例health does not send authorization因此即使 MCP 访问被关闭你仍可以用llm_wiki_status做连通性诊断而其余全部工具在调用前都会执行assertMcpEnabled()检查mcp-server/src/index.ts 第 341-349 行若桌面端未开启 MCP 访问会返回明确的错误提示 Enable Settings - API MCP - Enable MCP access。三、构建与运行1. 构建cd mcp-server npm install npm run buildnpm run build实际执行tsc -p tsconfig.json编译配置见 mcp-server/tsconfig.json目标 ES2022、NodeNext 模块、strict 模式产物输出到dist/。也可用npm run typecheck仅做类型检查不产出或用npm test先构建、再以 Node 内置 test runner 运行dist/test/*.test.js。2. 运行LLM_WIKI_API_TOKENyour-token node dist/src/index.js启动后进程通过标准输入输出stdio与 MCP 客户端通信并在 stderr 打印一行连接信息LLM Wiki MCP server v0.4.26 connected to http://127.0.0.1:19828启动时 mcp-server/src/version.ts 的loadMcpServerVersion会尝试从../package.json源码布局或../../package.json编译产物布局读取版本号取不到时回退为0.0.0该行为在 mcp-server/test/version.test.ts 中有完整覆盖。如果桌面应用未启动API 客户端会抛出LLM Wiki API request failed. Is the desktop app running?之类的错误网络失败的提示由测试network failures include desktop app hint锁定验证。四、在 MCP 客户端中注册 llm-wiki以支持mcpServersJSON 配置的客户端如 Claude Desktop为例在客户端配置中加入{ mcpServers: { llm-wiki: { command: node, args: [/absolute/path/to/llm_wiki/mcp-server/dist/src/index.js], env: { LLM_WIKI_API_TOKEN: your-token } } } }要点说明使用绝对路径指向dist/src/index.jspackage.json中也提供了bin字段llm-wiki-mcp你也可以通过包管理器把它链接到 PATH 后直接以命令方式启动若桌面端已开启允许无 token 访问则env中的LLM_WIKI_API_TOKEN可以省略当 MCP 访问在设置中被禁用时llm_wiki_status仍可用于诊断但其他所有工具都会返回明确的禁用错误。五、MCP 工具全览12 个工具的用法与参数README 中列出的工具为 10 个实际 mcp-server/src/index.ts 中注册了12 个含llm_wiki_embed_page与llm_wiki_write_page两个较新的写入类工具。每个工具均通过ListToolsRequestSchema暴露 JSON Schema 输入定义并通过CallToolRequestSchema分发执行。5.1 状态与项目类llm_wiki_status健康检查与当前项目摘要。并行调用health()与projects()返回桌面 API 健康状态、项目列表、当前项目及本会话绑定的sessionProject。无参数且是唯一一个不校验 MCP 开关的诊断工具。llm_wiki_projects列出桌面应用已知的全部项目响应中包含currentProject应用当前活动项目与sessionProject本 MCP 会话绑定项目。无参数。llm_wiki_set_project将 MCP 进程会话固定pin到某个项目。参数参数类型必填说明project_idstring是项目 UUID、项目文件系统绝对路径或current固定到当前活动项目一旦固定后续所有项目类工具都只能访问该会话绑定的项目访问其他项目会被拒绝需调用llm_wiki_set_project更换绑定。绑定解析逻辑在 mcp-server/src/project-binding.ts 的McpProjectBinding.pin/resolve中实现未绑定时默认使用current兼容模式任何请求的project_id都会被透传已绑定时请求中的其他项目 id/路径会抛出override ... was rejected错误该行为由 mcp-server/test/project-binding.test.ts 验证。5.2 文件类llm_wiki_files列出项目文件树。参数参数类型默认值说明project_idstringcurrent项目 UUID / 路径 /currentrootenumwiki枚举wiki、sources、all三者之一决定列出的树根recursivebooleantrue是否递归列出max_filesnumber后端默认本地 API 返回的最大文件数上限 10000响应以/前缀的树形文本呈现若本地 API 因maxFiles限制截断结果会附带[warning] File tree was truncated提示。llm_wiki_read_file读取项目内允许的文本文件如wiki/index.md。参数project_id默认current与path必填项目相对路径。读取内容经 API 路径白名单校验——只有wiki/、raw/sources/等公开项目路径可读内部应用状态文件不会暴露。返回内容会附上# path头超过 120KBMAX_TEXT_BYTES见 mcp-server/src/index.ts 第 24 行时按 UTF-8 字节边界安全截断并标注[truncated: N bytes omitted]。llm_wiki_write_page创建或显式覆盖wiki/下的一篇 Markdown 页面。参数参数类型必填说明project_idstring否默认currentpathstring是wiki/下的规范 Markdown 相对路径如wiki/ideas/example.md必须小写合法、以wiki/开头、以.md结尾、各段不含./../隐藏文件段contentstring是待持久化的精确 UTF-8 页面内容上限 2MBallow_overwriteboolean否覆盖已有页面时必须为true默认false写入成功仅在字节级持久化校验通过后才返回响应含verified: true、bytes、existedBefore等字段若 API 返回verified: false客户端会直接抛错见 mcp-server/src/api-client.ts 第 374-376 行测试用例writePage rejects an unverified success response。路径规范性校验在 mcp-server/src/index.ts 的wikiWritePathArg第 391-404 行中完成。5.3 Review 与搜索llm_wiki_reviews列出 Review审阅标签页的条目。参数参数类型默认值说明project_idstringcurrent—statusenumunresolvedunresolved/resolved/alltypestring无Review 条目类型过滤如missing-page、duplicate、contradiction、confirm、suggestionlimitnumber后端默认最大返回条数后端上限 1000默认只返回未解决unresolved条目方便 Agent 客户端接手待办的知识库修补工作。响应按条目给出 ID、类型、解决状态、来源路径、受影响页面、搜索查询、描述及可执行选项label action。llm_wiki_search使用与桌面端完全相同的共享关键词/向量检索后端进行搜索。参数参数类型必填/默认说明project_idstring默认current—querystring必填检索查询词top_knumber后端默认最大结果数后端硬上限 50include_contentboolean默认falseAPI 支持时在结果中附带完整页面内容响应按结果附带Mode如hybrid、Token hits、Vector hits、每条结果的Score/Vector score、Snippet与图片 URL 列表。POST 请求体与解析逻辑见 mcp-server/src/api-client.ts 第 259-274 行测试search posts JSON body to current project锁定了请求体结构{ query, topK, includeContent }。5.4 Agent 对话llm_wiki_chat向桌面后端 Agent 对话端点提问返回回答文本、引用references、用量usage与工具事件tool events。参数参数类型默认值说明project_idstringcurrent—messagestring必填用户消息/问题session_idstring无调用方管理的会话 ID传入后服务端会持久化该会话modeenumstandardfast/standard/deep/local_firstdeep会扩大后端证据收集范围top_knumber后端默认最大 wiki 引用检索数include_contentbooleanfalse检索时是否附带完整页面内容wikibooleantrue是否启用 wiki 检索webbooleanfalse是否允许后端web.searchAgent 路由判断需要外部检索时anytxtbooleanfalse是否启用后端anytxt.search已配置 AnyTXT 时用于本地源文件问答skillsstring[]无注入的项目技能列表来自项目.llm-wiki/skills注意mode: deep只是扩大后端证据收集范围完整的 Deep Research 多轮工作流仍保留在桌面应用内MCP 侧不复制该流程。响应中的引用与工具事件会按## References、## Tool events分节格式化输出并附Usage: promptChars / completionChars / references统计格式化逻辑见 mcp-server/src/index.ts 第 489-524 行。5.5 知识图谱llm_wiki_graph查询项目的知识图谱端点。参数参数类型默认值说明project_idstringcurrent—qstring无文本过滤node_typestring无节点类型过滤limitnumber后端默认最大节点数offsetnumber0从零开始的节点偏移分页edge_scopeenum见说明page仅页面自包含边或filtered合并全部页面后的边仅当显式传offset时默认切换为filtered响应按节点类型统计Node types、按链接数排序的 Top 30 节点、当前分页信息offset / totalCount / hasMore格式化输出。后端图谱数据有 5 秒缓存GRAPH_CACHE_TTL与最多 8 个项目的缓存容量见 src-tauri/src/api_server.rs 第 46-47 行。5.6 Source Watch 与向量索引llm_wiki_rescan_sources触发桌面应用按用户已配置的 Source Watch 规则对来源文件夹进行重新扫描。仅需project_id参数。llm_wiki_embed_page为wiki/下已存在的单篇 Markdown 页面创建或替换向量索引。参数参数类型必填说明project_idstring否默认currentpathstring是项目相对 Markdown 路径如wiki/ideas/example.mdforceboolean否页面内容与嵌入配置未变化时也强制重建向量默认false成功响应包含path、pageId、revision如sha256:abc、chunks、vectorsWritten、status等字段后端对错误载荷会严格拒绝测试用例embedPage rejects malformed success payloads验证了chunks非数字时抛错。六、项目会话绑定机制多项目场景的正确打开方式MCP 进程是长驻 stdio 子进程与桌面 UI 是两条独立的会话。为支持多项目场景mcp-server实现了明确的绑定语义默认未绑定一切项目工具使用current即桌面 UI 当前活动项目绑定调用llm_wiki_set_project解析出的项目 ID 在 MCP 子进程的整个生命周期内固定即使桌面 UI 之后切换了活动项目也不受影响越权拒绝已绑定的会话访问其他项目时返回This MCP session is pinned to ...错误必须重新调用llm_wiki_set_project才能改绑结构化提示每个项目工具响应都会带[activeProject: name (id)]前缀标记withActiveProject见 mcp-server/src/project-binding.ts 第 40-45 行让客户端能持续感知当前作用域。七、安全模型MCP Server 完整继承桌面 API 的安全模型关键约束如下仅本机回环默认只与127.0.0.1通信后端默认绑定主机也通过server_bind.rs的sanitize_bind_host/bind_addr约束见 src-tauri/src/server_bind.rs统一鉴权复用桌面设置中的 API token 或无 token开关token 以Bearer头随请求携带Authorization: Bearer token文件读取白名单文件读取走 API 路径 allow-list内部应用状态文件不暴露Review 数据隔离审阅数据仅通过专用 Review 端点/工具暴露默认返回未解决条目而不是直接开放内部状态文件搜索与图谱受项目约束仅操作桌面应用已知的项目多项目时先llm_wiki_set_project固定作用域凭据保护切勿通过命令行参数传 API token应使用环境变量避免 token 出现在 shell 历史记录中后端资源保护见 src-tauri/src/api_server.rs速率限制 1 秒窗口 120 请求、最大并发 64、chat 流并发 8、页面嵌入并发 4、请求体限制 1MBchat 40MB、页面写入按 JSON 转义余量放宽到约 6 倍 2MB、文件内容 2MB、搜索 50 条、Review 1000 条等防止本地 API 被过度调用。八、故障排查速查现象原因与处理启动即退出、报Failed to start LLM Wiki MCP server桌面应用未运行或 Node 版本 20确认应用已启动且 Node ≥ 20所有工具除llm_wiki_status返回 disabled 错误桌面端启用 MCP 访问未开启见错误提示中的 Settings → API MCP 路径LLM Wiki API 401: Unauthorizedtoken 未配置或与桌面端设置不一致核对LLM_WIKI_API_TOKEN或改用允许无 token 访问override ... was rejected会话已绑定到另一项目先调用llm_wiki_set_project切换作用域项目工具指向了错误项目检查响应中的[activeProject: ...]标记与sessionProject字段自定义 API 地址不生效确认设置了LLM_WIKI_API_BASE_URL且不以/结尾客户端会自动归一化文件树被截断max_files超过后端上限10000或默认 2000 限制按需调小范围或用root参数缩小树根九、深入源码继续探索本文所有结论均可在仓库中复现验证推荐阅读顺序工具注册与参数校验mcp-server/src/index.ts工具 Schema 定义在第 35-205 行分发给CallToolRequestSchema在第 207-339 行API 客户端与请求构建mcp-server/src/api-client.ts含normalizeBaseUrl、Bearer 鉴权、各端点解析与严格校验项目绑定语义mcp-server/src/project-binding.ts版本读取策略mcp-server/src/version.ts测试用例mcp-server/test/api-client.test.ts、mcp-server/test/project-binding.test.ts、mcp-server/test/version.test.tsnpm test可一键运行后端本地 API 服务器src-tauri/src/api_server.rs端口、前缀、限流、缓存、并发上限等常量定义赞分享人工智能AI 应用大模型RAGAI Agent知识图谱知识管理桌面应用【免费下载链接】llm_wikiLLM Wiki is a cross-platform desktop application that turns your documents into an organized, interlinked knowledge base — automatically. Instead of traditional RAG (retrieve-and-answer from scratch every time), the LLM incrementally builds and maintains a persistent wiki from your sources。项目地址https://gitcode.com/GitHub_Trending/ll/llm_wiki点击查看免费下载相关推荐Semantica MCP Server 实战指南将知识图谱、决策智能与推理能力接入任意 MCP 客户端Semantica MCP Server 实战指南将知识图谱、决策智能与推理能力接入任意 MCP 客户端 Semantica 的 semantica.mcp_人工智能大模型知识图谱RAGAI 可解释性后端MCP 服务PraisonAI MCP 服务器实战指南通过 MCP 协议把 Agent 能力接入 Claude Desktop、Cursor 与任意 MCP 客户端PraisonAI MCP 服务器实战指南通过 MCP 协议把 Agent 能力接入 Claude Desktop、Cursor 与任意 MCP 客户端 Pr人工智能AI AgentAgent 框架多智能体工作流自动化RAGMCP 服务OpenSquilla MCP服务器指南将AI Agent工作流开放给任意MCP客户端OpenSquilla MCP服务器指南将AI Agent工作流开放给任意MCP客户端 OpenSquilla 是一个主打「同等预算、更高智能密度」的 Tok人工智能大模型AI Agent交互助手工具调用MCP 服务Agent 记忆RAG本地部署上一篇LeetCode 134 加油站Gas Station解法全解从暴力模拟到双指针与贪心的线性最优解下一篇Potpie Daemon 信号终止权限收敛ADR-0012 如何限制强制终止仅作用于直接子进程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表