Claude Code + Ollama + Obsidian + Windows 实现本地大模型及知识库
本文详细介绍了在Windows环境下构建本地知识库的技术方案,整合了Claude Code、Ollama和Obsidian三大工具。系统采用三层架构设计:知识存储层(Obsidian管理Markdown笔记)、AI推理层(Ollama运行本地大语言模型)和智能交互层(Claude Code作为AI Agent)。通过MCP协议实现组件间通信,支持自然语言指令处理、笔记内容分析和智能问答等功能。文章
在Windows下用Claude Code、Ollama和Obsidian构建本地知识库的详细方案,包含机理、步骤、UML建模和项目文件结构。
涉及多个工具的配合,先了解它们各自在Windows上的安装配置、核心功能以及如何协同工作。
几个关键方向:Claude Code的Windows安装和使用、MCP配置方法、Ollama在Windows上的部署、以及Obsidian与AI插件集成的信息。
关于Claude Code,主要安装方式是通过PowerShell脚本或npm,依赖Node.js 18+,并且官方提供了详细的Windows安装指南。
MCP配置方面,有专门的npm包(如obsidian-mcp)可以连接Obsidian库,这正好是连接Claude Code和Obsidian的关键。
Ollama在Windows上安装很简单,有官方安装包,也支持通过winget安装。
Obsidian有“LLM Wiki”这类插件可以直接基于Ollama构建可查询的知识库。
另外,本地REST API插件是实现MCP连接的一个基础。
Claude Code + Ollama + Obsidian:Windows 本地大模型知识库深度实施指南
一、系统架构总览
1.1 三层架构
整个系统采用“知识存储层→AI推理层→智能交互层”的三层架构,各层之间通过标准化接口(MCP协议、REST API)实现松耦合通信。
| 层级 | 组件 | 职责 | 在Windows上的形态 |
|---|---|---|---|
| 知识存储层 | Obsidian | 管理Markdown笔记文件,支持双向链接、标签、YAML Frontmatter元数据 | Windows桌面应用程序,笔记以.md文件形式存储在本地磁盘 |
| AI推理层 | Ollama + MCP Server | 运行本地大语言模型和嵌入模型,提供推理和向量化服务;MCP Server作为协议桥接 | Windows服务进程(默认端口11434),模型存储在%USERPROFILE%\.ollama |
| 智能交互层 | Claude Code | 作为AI Agent,通过MCP协议调用工具,读写Obsidian笔记库 | Windows命令行工具(PowerShell/Git Bash),通过MCP发现并调用下层服务 |
1.2 数据流动路径
数据流说明:
| 步骤 | 方向 | 数据内容 | 传输协议 | 说明 |
|---|---|---|---|---|
| ① | 用户 → Claude Code | 自然语言指令 | 终端输入 | 用户在终端中描述任务需求 |
| ② | Claude Code → MCP Server | 工具调用请求(如读取/搜索笔记) | MCP/stdio(JSON-RPC) | Agent决定调用某个MCP工具完成任务 |
| ③ | MCP Server → Obsidian | 文件读/写操作 | 操作系统文件系统调用 | 直接操作.md文件,无需Obsidian打开 |
| ④ | Claude Code → Ollama | 模型推理请求(对话/嵌入) | Ollama REST API(HTTP/11434) | Agent需要模型推理时向Ollama发请求 |
| ⑤ | Ollama → Claude Code | 模型推理结果 | HTTP Response(JSON) | 返回生成文本或嵌入向量 |
| ⑥ | MCP Server → Claude Code | 工具执行结果 | MCP/stdio(JSON-RPC) | 返回文件内容或操作状态给Agent |
| ⑦ | Claude Code → 用户 | 最终回答 | 终端输出 | Agent整合上下文和工具结果,生成最终回答 |
1.3 架构决策记录(ADR)
| 决策编号 | 决策内容 | 理由 | 权衡 |
|---|---|---|---|
| ADR-001 | 选择MCP协议而非HTTP直接调用 | MCP提供标准化工具发现、调用和权限管理机制 | 增加了额外服务进程,但换取了更好的可扩展性和安全性 |
| ADR-002 | 选择文件系统直接访问而非Local REST API | 文件系统访问更轻量,不依赖Obsidian运行状态 | 无法利用Obsidian插件生态(如Dataview动态查询) |
| ADR-003 | 选择qwen2.5:7b作为默认对话模型 | 中文理解能力强,7B参数量在消费级硬件上可流畅运行 | 在复杂推理任务上不如大型云端模型 |
| ADR-004 | Windows原生安装而非WSL | 与Windows文件系统和Obsidian的直接集成更简便 | WSL环境可能提供更丰富的Linux工具链支持 |
二、核心机理深入解析
2.1 MCP协议:AI Agent与工具之间的“USB-C接口”
MCP(Model Context Protocol)是Anthropic提出的一种开放标准协议,其核心理念类似于USB-C——为AI模型与外部工具之间提供一个统一的“插拔”接口。它基于JSON-RPC 2.0协议,定义了三种核心通信原语:
| 原语 | 方向 | 作用 | 示例 |
|---|---|---|---|
| Tools | Server → Client | 服务器暴露可调用的工具列表 | read_note、search_content、create_note |
| Resources | Server → Client | 暴露可读取的数据资源 | 笔记内容、文件夹结构、标签列表 |
| Prompts | Server → Client | 预定义的提示词模板 | “总结这篇笔记”、“提取关键概念” |
在Claude Code中,MCP Server通过stdio传输(标准输入/输出流)与Claude Code通信。Claude Code启动时,会自动启动配置文件中定义的MCP Server子进程,并通过子进程的stdin/stdout交换JSON-RPC消息。整个交互遵循严格的请求-响应模型:
2.2 Ollama模型推理的内部机制
Ollama在Windows上以系统服务形式运行,默认监听 127.0.0.1:11434 端口,提供兼容OpenAI格式的REST API。当Claude Code配置为使用Ollama作为模型后端时,所有推理请求都会路由到这个本地端点。
对话模型推理流程(以问答为例):
- 请求构建:Claude Code将用户问题与系统提示词组装成Chat Completions格式的JSON请求体
- HTTP发送:POST请求发往
http://localhost:11434/v1/chat/completions - 模型加载:Ollama检查请求的模型是否已加载到内存(若未加载,从磁盘加载GGUF格式的量化模型)
- GPU加速:若系统有NVIDIA/AMD显卡且驱动正常,Ollama自动将计算卸载到GPU
- 流式响应:模型逐token生成文本,通过Server-Sent Events实时流式返回
- 结果整合:Claude Code接收完整响应,进行后续处理或展示
嵌入模型的作用:nomic-embed-text 模型负责将文本段落转换为高维向量(768维),这些向量能捕捉文本的语义信息。在知识库场景中:
- 离线索引阶段:Ollama遍历Obsidian Vault中所有笔记,将每篇笔记的内容和标题分别向量化,建立向量索引
- 在线查询阶段:用户提问后,Claude Code先将问题向量化,然后在索引中通过余弦相似度搜索最相关的笔记,最后将这些笔记作为上下文注入给对话模型生成答案
2.3 Obsidian Vault的Markdown文件结构
Obsidian Vault的本质是磁盘上的一个文件夹,其中所有笔记都以标准.md文件存储。文件内部使用以下结构化约定:
| 语法元素 | 格式 | 作用 | 示例 |
|---|---|---|---|
| YAML Frontmatter | 文件顶部的---包裹块 |
存储结构化元数据(标签、日期、状态等) | tags: [AI, 机器学习] |
| WikiLink双向链接 | [[笔记名]] 语法 |
建立笔记之间的关联 | 参见[[监督学习详解]] |
| 标签 | #标签名 |
分类和过滤笔记 | #project/active |
| Markdown标题 | # ## ### 层级标题 |
组织结构化内容 | ## 核心算法 |
2.4 Windows特有的技术考量
在Windows上部署此方案,有以下关键差异需注意:
| 技术点 | Linux/macOS | Windows | 解决方案 |
|---|---|---|---|
| 路径分隔符 | / |
\ |
统一使用正斜杠/或双反斜杠\\,Node.js自动处理 |
| 环境变量引用 | $HOME |
%USERPROFILE% |
在MCP配置中使用绝对路径 |
| Shell环境 | Bash/Zsh | PowerShell/CMD | 推荐安装Git for Windows获取Bash环境 |
| MCP stdio传输 | 原生支持 | 部分MCP Server需要cmd.exe /c包装 |
使用mcp2win工具自动包装 |
| 文件权限 | Unix权限模型 | NTFS ACL | 以管理员身份运行首次安装,后续无需特殊权限 |
三、项目实施:完整部署步骤
3.1 前置环境准备
系统要求(Windows 10 version 1809+ 或 Windows 11) :
步骤一:安装Node.js
- 访问 nodejs.org,下载LTS版本(18.x或20.x)
- 运行安装程序,勾选“Add to PATH”
- 验证安装:
node --version # 应输出 v18.x.x 或 v20.x.x
npm --version # 应输出 9.x.x 或 10.x.x
步骤二:安装Git for Windows
- 访问 git-scm.com,下载安装包
- 安装时选择“Git Bash Here”和“Use Git from the Windows Command Prompt”
- 验证安装:
git --version # 应输出 git version 2.x.x
3.2 安装Ollama
推荐方法:官方MSI安装包
- 访问 ollama.com/download,下载Windows版本安装包
- 右键安装包,选择“以管理员身份运行”
- 安装完成后,系统托盘会出现Ollama图标,表示服务已启动
- 也可以使用winget命令行安装:
winget install Ollama.Ollama
- 验证安装并检查端口:
ollama --version # 输出 Ollama v0.x.x
ollama list # 列出已安装的模型(初始为空)
netstat -ano | findstr 11434 # 确认11434端口已在监听
拉取核心模型:
# 对话模型(推荐qwen2.5:7b,中文能力强,约4.7GB)
ollama pull qwen2.5:7b
# 嵌入模型(用于语义搜索,约274MB)
ollama pull nomic-embed-text
模型下载完成后,存储在 %USERPROFILE%\.ollama\models 目录下。
模型选择参考:
| 模型名称 | 参数量 | 大小 | 适用场景 | 中文支持 | 推荐理由 |
|---|---|---|---|---|---|
qwen2.5:7b |
7B | ~4.7GB | 对话/问答/摘要 | ⭐⭐⭐⭐⭐ | 通义千问系列,中文效果优异 |
qwen2.5:14b |
14B | ~8.9GB | 复杂推理/长文理解 | ⭐⭐⭐⭐⭐ | 更强的推理能力,需16GB+内存 |
qwen2.5:3b |
3B | ~1.9GB | 轻量对话/快速响应 | ⭐⭐⭐⭐ | 低配设备首选,响应快 |
llama3:8b |
8B | ~4.7GB | 通用对话 | ⭐⭐⭐ | Meta开源,生态丰富 |
nomic-embed-text |
137M | ~274MB | 文本向量化 | ⭐⭐⭐ | 支持8192 token,短长文本均衡 |
验证模型可用性:
# 快速测试对话模型
ollama run qwen2.5:7b "请用一句话介绍你自己。"
# 测试嵌入模型
ollama run nomic-embed-text "这是一段测试文本"
3.3 安装Claude Code
推荐方法:PowerShell一键安装
- 以管理员身份打开PowerShell(右键开始菜单 → “Windows PowerShell (管理员)”)
- 执行安装命令:
irm https://claude.ai/install.ps1 | iex
-
等待安装完成,配置PATH:
- 打开“系统属性 → 高级 → 环境变量”
- 在“用户变量”的
Path中添加%USERPROFILE%\.local\bin - 重启终端
-
验证安装:
claude --version
- 首次启动Claude Code时,按提示完成账号认证:
claude # 启动后按提示登录Anthropic账号
3.4 创建Obsidian Vault
- 下载并安装 Obsidian
- 打开Obsidian,点击“创建新库”,选择或创建文件夹,例如:
D:\MyKnowledgeBase\
- 创建基础的笔记结构:
D:\MyKnowledgeBase\
├── 00-Inbox/ # 收集箱:暂存未整理的笔记
├── 10-Notes/ # 日常笔记
├── 20-Projects/ # 项目相关
├── 30-Resources/ # 参考资料
├── 40-Archive/ # 归档笔记
└── Templates/ # 模板
💡 提示:记下Vault的完整绝对路径,后续配置MCP时需要用到。例如
D:/MyKnowledgeBase(Windows路径建议在配置文件中使用正斜杠)。
3.5 配置MCP Server:连接Claude Code与Obsidian
这是整个方案中最关键的环节。推荐使用 @istrejo/obsidian-mcp,它通过直接文件系统访问方式连接Obsidian Vault,无需Obsidian插件配合,即使Obsidian未打开也能正常工作。
配置步骤:
- 为Claude Code注册Obsidian MCP Server:
claude mcp add obsidian -e OBSIDIAN_VAULT_PATH=D:/MyKnowledgeBase -- npx -y @istrejo/obsidian-mcp
或者手动编辑全局MCP配置文件 %USERPROFILE%\.claude\mcp.json:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@istrejo/obsidian-mcp"],
"env": {
"OBSIDIAN_VAULT_PATH": "D:/MyKnowledgeBase",
"OBSIDIAN_READ_ONLY": "false",
"OBSIDIAN_MAX_FILE_SIZE": "10485760",
"OBSIDIAN_BACKUP_ENABLED": "true",
"OBSIDIAN_LOG_LEVEL": "info"
}
}
}
}
关键环境变量说明:
| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
OBSIDIAN_VAULT_PATH |
✅ | - | Obsidian Vault的绝对路径(Windows用正斜杠) |
OBSIDIAN_READ_ONLY |
❌ | false |
设为true禁用所有写入操作,适合只读查询场景 |
OBSIDIAN_MAX_FILE_SIZE |
❌ | 10485760(10MB) |
读写操作的文件大小上限(字节) |
OBSIDIAN_BACKUP_ENABLED |
❌ | true |
删除笔记前自动备份,强烈建议保持启用 |
OBSIDIAN_LOG_LEVEL |
❌ | info |
日志级别:debug/info/warn/error |
- 验证MCP Server连接:
# 在Claude Code中查看MCP状态
claude
# 进入Claude Code交互界面后,输入:
/mcp
# 应能看到 obsidian 服务器状态为 connected
- 测试基本工具调用:
在Claude Code交互界面中输入:
请用 obsidian 工具列出我的知识库中所有的笔记文件。
Claude Code将自动调用 list_notes 工具并返回结果。
备选方案:@mseep/obsidian-mcp-server
如果需要更丰富的功能(如通过Local REST API进行更细粒度的操作),也可以选择 @mseep/obsidian-mcp-server。这个方案需要先在Obsidian中安装“Local REST API”插件,然后通过HTTP协议进行通信。适合需要Obsidian插件生态支持的场景。
3.6 配置Claude Code使用Ollama本地模型
编辑 %USERPROFILE%\.claude\settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:11434/v1",
"ANTHROPIC_AUTH_TOKEN": "ollama"
},
"preferred_model": "qwen2.5:7b"
}
⚠️ 注意:由于Claude Code原生设计用于连接Anthropic API,通过上述配置将其指向Ollama的兼容端点是一种变通方案。如果遇到兼容性问题,可以保持Claude Code使用Anthropic云端API作为“大脑”,而Ollama本地模型作为辅助工具使用。
工作模式说明:
实际上,Claude Code的核心推理引擎仍需要Anthropic API支持,因为它依赖Claude模型的高级推理和工具调用能力。Ollama在本方案中的角色有以下两种使用模式:
| 模式 | Claude Code推理 | 本地Ollama模型作用 | 适用场景 |
|---|---|---|---|
| 混合模式(推荐) | Anthropic API | 通过MCP工具间接调用,用于本地嵌入向量化和辅助推理 | 充分发挥各组件优势 |
| 纯本地模式 | Ollama API(替代端点) | 完全替代云端API | 完全离线场景,但功能可能受限 |
四、UML详细建模
4.1 用例图
用例详述:
UC-01:摄入新知识
- 参与者:知识管理者
- 前置条件:原始资料文件(Markdown/文本)位于指定目录
- 主流程:
- 用户将新文章放入
raw/目录 - 用户在Claude Code中输入:
处理 raw/ 中的新文章 - Claude Code调用MCP工具读取文件内容
- AI分析文章结构,提取核心概念和实体
- AI在
wiki/目录下创建摘要页面和相关概念页面 - AI通过
[[双向链接]]将新页面与已有页面关联 - 更新
index.md总目录
- 用户将新文章放入
- 后置条件:新知识已结构化融入知识库
- 异常流程:若文章内容过长超出上下文窗口,分批处理
UC-03:AI问答
- 参与者:知识管理者
- 前置条件:知识库已有索引化的笔记内容
- 主流程:
- 用户在Claude Code中提问:
机器学习中的过拟合如何解决? - Claude Code调用
search_content工具进行关键词搜索 - Claude Code调用Ollama嵌入模型对问题和笔记向量化,进行语义匹配
- 将最相关的笔记内容(Top-K=5)作为上下文注入对话模型
- 模型基于检索到的笔记内容生成回答
- 回答中附带源笔记的
[[链接]],方便用户溯源
- 用户在Claude Code中提问:
- 后置条件:用户获得基于知识库的准确回答
- 特殊需求:当知识库中无相关信息时,模型应明确告知而非编造
4.2 组件图
4.3 部署图
4.4 知识摄入序列图
4.5 语义搜索序列图
4.6 状态图:AI Agent决策流程
状态说明:
| 状态 | 描述 | 触发条件 | 输出 |
|---|---|---|---|
| 空闲等待 | Agent等待用户输入 | 系统启动或上一轮对话结束 | - |
| 解析用户意图 | 分析用户指令确定需要的操作 | 用户输入自然语言指令 | 意图分类结果 |
| 调用read_note工具 | MCP协议调用文件读取工具 | 意图为“读取笔记” | 笔记内容 |
| 调用search_content工具 | 全文搜索Obsidian Vault | 意图为“搜索知识” | 候选笔记列表 |
| 语义重排序 | 使用嵌入模型计算语义相似度 | 候选笔记数量较多 | Top-K最相关笔记 |
| 调用对话模型 | 向Ollama发送推理请求 | 需要生成回答 | 模型生成的文本 |
| 调用create_note/update_note | MCP协议调用文件写入工具 | 意图为“写入笔记” | 操作状态 |
五、项目文件结构组织
5.1 Obsidian Vault结构
D:\MyKnowledgeBase\ ← Obsidian Vault 根目录
│
├── .obsidian\ ← Obsidian 配置目录(自动生成)
│ ├── app.json # 应用设置
│ ├── appearance.json # 主题外观
│ ├── community-plugins.json # 社区插件列表
│ ├── core-plugins.json # 核心插件配置
│ └── hotkeys.json # 快捷键
│
├── 00-Inbox\ ← ① 收集箱:暂存待整理内容
│ ├── .gitkeep
│ └── 快速笔记模板.md
│
├── 10-Notes\ ← ② 日常笔记
│ ├── 学习笔记\
│ │ ├── 机器学习.md
│ │ ├── 深度学习.md
│ │ └── 自然语言处理.md
│ ├── 工作日志\
│ │ ├── 2025-01.md
│ │ └── 2025-02.md
│ └── 读书笔记\
│ ├── 《统计学习方法》.md
│ └── 《深度学习入门》.md
│
├── 20-Projects\ ← ③ 项目相关
│ ├── 项目A\
│ │ ├── 需求分析.md
│ │ ├── 技术方案.md
│ │ └── 会议纪要\
│ │ └── 2025-01-15.md
│ └── 项目B\
│ └── 进展跟踪.md
│
├── 30-Resources\ ← ④ 参考资料
│ ├── 论文笔记\
│ │ └── Attention-is-All-You-Need.md
│ ├── 技术文档\
│ │ └── Ollama部署指南.md
│ └── 外部链接\
│ └── 优质资源汇总.md
│
├── 40-Archive\ ← ⑤ 归档笔记
│ └── 2024\
│ └── 已完成项目\
│
├── Templates\ ← ⑥ 模板
│ ├── 日常笔记模板.md
│ ├── 项目笔记模板.md
│ └── 读书笔记模板.md
│
├── CLAUDE.md ← ⑦ AI操作指南(Agent指令手册)
├── index.md ← ⑧ 知识库总索引
└── README.md ← ⑨ Vault说明文档
5.2 CLAUDE.md:AI Agent操作指南
# CLAUDE.md — Obsidian Vault AI 操作手册
## 角色定义
你是我的个人知识库管家 AI,运行在 Claude Code 中。
你可以通过 MCP 工具直接操作此 Obsidian Vault 中的所有 Markdown 文件。
## 核心规则
### 写入规则
- 所有新建的笔记必须放在相应的文件夹下:
- 临时/未分类 → `00-Inbox/`
- 日常笔记 → `10-Notes/`
- 项目相关 → `20-Projects/`
- 参考资料 → `30-Resources/`
- 归档内容 → `40-Archive/`
- 文件命名:使用中文描述性名称,以 `.md` 结尾
- 每个笔记必须包含 YAML Frontmatter:
```yaml
---
title: 笔记标题
date: YYYY-MM-DD
tags: [标签1, 标签2]
status: draft | reviewed | final
---
链接规则
- 统一使用 Obsidian 的
[[WikiLink]]语法建立笔记间关联 - 创建新概念页面时,自动在引用它的笔记中添加双向链接
- 避免创建“孤立页面”(没有任何其他笔记链接到它的页面)
摄入规则(处理 raw/ 文件时)
- 读取文件,提取核心主题
- 为每个主题在对应文件夹创建摘要笔记
- 提取关键概念、人物、技术术语,创建概念页面
- 在概念页面之间建立 [[双向链接]]
- 更新
index.md的索引
搜索规则
- 优先使用 MCP 的 search_content 进行关键词搜索
- 结合语义搜索提高相关性
- 回答问题时必须引用来源笔记的 [[链接]]
安全规则
- 删除前必须备份
- 不修改
.obsidian/目录下的配置文件 - 修改重要笔记前先确认
### 5.3 Windows全局配置目录结构
%USERPROFILE%
├── .claude\ ← Claude Code 配置目录
│ ├── settings.json # Claude Code 设置(模型、API)
│ └── mcp.json # MCP Server 注册配置
│
├── .ollama\ ← Ollama 数据目录
│ └── models\ # 已下载的模型文件
│ ├── blobs\ # 模型层缓存
│ └── manifests\ # 模型注册清单
│
├── .local\ ← Claude Code 可执行文件
│ └── bin
│ └── claude.exe
│
└── AppData
└── Roaming
└── npm\ ← npm 全局模块
└── node_modules
└── @istrejo
└── obsidian-mcp\ ← MCP Server 包
## 六、日常使用工作流
### 6.1 启动流程
```powershell
# 1. 确认 Ollama 服务运行中
ollama list
# 应看到已安装的模型列表
# 2. 进入知识库目录
cd D:\MyKnowledgeBase
# 3. 启动 Claude Code
claude
6.2 常用交互指令示例
知识检索类:
| 指令示例 | 背后调用 | 说明 |
|---|---|---|
列出我所有的笔记 |
list_notes |
遍历Vault所有.md文件 |
搜索包含“机器学习”的笔记 |
search_content("机器学习") |
全文关键词搜索 |
找出所有标签为 #project/active 的笔记 |
search_by_tags("#project/active") |
按标签过滤 |
[[深度学习]] 这篇笔记被哪些笔记引用了? |
get_backlinks("深度学习") |
反向链接查询 |
知识摄入类:
| 指令示例 | 背后调用 | 说明 |
|---|---|---|
创建一篇关于“Transformer架构”的新笔记 |
create_note |
在指定文件夹创建笔记 |
在“机器学习.md”中补充正则化部分 |
update_note(append模式) |
追加内容到已有笔记 |
把“草稿/临时笔记”移动到 00-Inbox/ 下 |
move_note |
重命名/移动笔记 |
知识整理类:
| 指令示例 | 背后调用 | 说明 |
|---|---|---|
总结“深度学习.md”的核心内容 |
read_note → LLM推理 |
读取后交给模型总结 |
帮我整理 00-Inbox/ 中的所有笔记 |
list_notes → LLM分类 → move_note |
批量分类整理 |
分析我的知识库中哪些主题笔记最多 |
list_notes → 统计分析 |
知识结构分析 |
6.3 维护任务
# 定期清理Ollama旧版本模型
ollama list # 查看所有模型
ollama rm 模型名 # 删除不需要的模型
# 更新Claude Code
irm https://claude.ai/install.ps1 | iex
# 更新MCP Server
npm update -g @istrejo/obsidian-mcp
# 备份知识库
# 将整个 D:\MyKnowledgeBase 复制到外部存储或云盘
七、故障排除指南
7.1 Ollama服务问题
| 问题 | 症状 | 解决方案 |
|---|---|---|
| Ollama未启动 | ollama list 报连接错误 |
从开始菜单启动Ollama应用,或运行 ollama serve |
| 端口冲突(11434) | netstat -ano | findstr 11434 显示多个进程 |
以管理员身份运行PowerShell,执行端口排除命令 |
| 模型加载慢 | 首次推理延迟较长 | 首次加载需从磁盘读取模型文件到内存,7B模型约需30-60秒 |
| 内存不足 | Windows报错,模型加载失败 | 关闭其他应用释放内存;或使用更小的模型(如 qwen2.5:3b) |
| GPU加速未生效 | CPU使用率高,推理慢 | 确认显卡驱动已安装:nvidia-smi;Ollama自动检测GPU |
7.2 MCP连接问题
| 问题 | 症状 | 解决方案 |
|---|---|---|
| MCP Server启动失败 | /mcp 显示 disconnected |
检查 mcp.json 路径是否正确(使用正斜杠);确保 npx 可访问 |
| 文件访问被拒 | 读取笔记报 Permission Denied | 检查Vault路径是否有读写权限;以管理员身份运行终端 |
| stdio传输错误(Windows特有) | BrokenPipeError | 使用 @operatorkit/mcp2win 包装命令 |
| 中文路径乱码 | 搜索中文文件名无结果 | 确认终端编码为UTF-8:chcp 65001 |
7.3 性能优化建议
| 优化项 | 方法 | 预期效果 |
|---|---|---|
| 模型量化 | 使用 qwen2.5:7b-q4_K_M 等低量化版本 |
减少约30%内存占用,推理速度提升20% |
| 笔记索引缓存 | 首次索引后,后续增量更新 | 避免每次全量扫描 |
| 文件数量控制 | 单个Vault保持在3000个文件以内 | 避免MCP Server响应变慢 |
| GPU加速 | 确保NVIDIA驱动 ≥ 11.7 | 推理速度提升5-10倍 |
7.4 常见错误码速查
| 错误码 | 含义 | 快速解决 |
|---|---|---|
ECONNREFUSED 127.0.0.1:11434 |
Ollama服务未启动 | 启动Ollama应用 |
MODEL_NOT_FOUND |
未拉取指定模型 | ollama pull 模型名 |
ENOENT: no such file |
Vault路径配置错误 | 检查 OBSIDIAN_VAULT_PATH 环境变量 |
EPERM: operation not permitted |
文件权限不足 | 以管理员运行终端;检查文件是否被其他程序占用 |
Cannot find module |
npm依赖缺失 | npm install -g @istrejo/obsidian-mcp |
八、后续扩展方向
当基础方案稳定运行后,可以考虑以下扩展:
| 扩展方向 | 工具/方法 | 说明 |
|---|---|---|
| 知识图谱可视化 | Obsidian原生图谱 + Dataview | 直观展示笔记间的关联关系 |
| 自动化工作流 | QuickAdd + Templater插件 | 一键创建标准化笔记模板 |
| 多格式摄入 | 使用LLM将PDF/网页转换为Markdown | 丰富知识库来源 |
| 定期自动整理 | Windows计划任务 + 脚本 | 每周自动运行AI整理脚本 |
| 移动端同步 | Obsidian Sync 或 Git | 在手机端访问知识库 |
| 多Agent协作 | inbox模式配置多个Agent | 不同Agent负责不同领域的知识管理 |
九、总结
本方案通过在Windows操作系统上部署Claude Code + Ollama + Obsidian三大组件,并利用MCP协议建立它们之间的标准化通信,实现了一个完全本地化、保护隐私、功能强大的个人知识库系统。
核心价值回顾:
| 特性 | 实现方式 | 用户收益 |
|---|---|---|
| 完全本地化 | Ollama运行本地模型,数据不离开电脑 | 隐私安全,无网络也可使用 |
| 零成本 | Ollama社区模型免费,无需API付费 | 长期使用无经济负担 |
| 知识结构化 | Obsidian的双向链接和MCP的读写能力 | AI帮助建立知识网络,而非简单堆砌 |
| 自然语言交互 | Claude Code作为Agent理解并执行复杂指令 | 降低使用门槛,“说人话”即可 |
| 可扩展性 | MCP协议标准化工具接口 | 未来可接入更多工具和服务 |
更多推荐



所有评论(0)