obsidian
by ZNaiGaomu
README.md
# Obsidian MCP — hardened Codex integration
Obsidian Local REST API 5.2.0 的隐私安全发行版,包含原生 Streamable HTTP MCP 服务、可移植 Codex 插件清单和默认只读工具配置。它适合让 Codex 在本机检索、读取和理解 Obsidian Vault,同时把认证信息与 Vault 内容保留在用户设备中。
**English summary:** a privacy-sanitized, read-first Codex package for Obsidian Local REST API with MCP. The public repository contains source and configuration templates only—never a user's vault, API key, certificates or plugin `data.json`.
## 为什么需要这个发行版
上游插件提供成熟的 REST/MCP 能力。本仓库在固定上游版本之上增加公开部署所需的安全层:
- Codex 标准 `.codex-plugin/plugin.json` 与 `.mcp.json`;
- API key 仅通过 `OBSIDIAN_MCP_API_KEY` 注入;
- MCP 地址固定为 `127.0.0.1` 回环接口;
- 默认只开放 8 个读取、检索和结构查看工具;
- 不分发 `data.json`、证书、私钥、Vault 内容或用户路径;
- 删除自动发布/文档部署工作流,只保留只读权限 CI;
- 明确记录上游版本、commit、改动与许可证归属。
## 默认工具
| 工具 | 用途 |
| --- | --- |
| `vault_list` | 列出 Vault 路径 |
| `vault_read` | 读取文本笔记 |
| `vault_get_document_map` | 获取文档结构 |
| `active_file_get_path` | 获取当前文件路径 |
| `search_query` | 结构化搜索 |
| `search_simple` | 简单文本搜索 |
| `tag_list` | 列出标签 |
| `command_list` | 只读取可用命令列表 |
写入、移动、删除、命令执行、二进制上传和签名 URL 工具不在默认 allowlist。需要这些能力时,应逐项审查、由用户明确授权后再单独启用。
## 架构
```text
Codex / MCP client
│ Bearer token from environment
▼
http://127.0.0.1:27123/mcp/
│
▼
Obsidian desktop plugin
│
├── authentication
├── vault path containment
├── MCP annotations
└── Obsidian vault adapter
```
详见 [docs/architecture.md](docs/architecture.md)。
## 项目结构
```text
obsidian/
├── .codex-plugin/plugin.json # Codex 插件元数据
├── .mcp.json # 不含密钥的回环 MCP 配置
├── skills/obsidian/SKILL.md # 读取优先的使用规则
├── src/ # 上游 TypeScript 插件源码
├── scripts/ # 构建、文档与安装辅助脚本
├── docs/ # API 与安全架构文档
├── manifest.json # Obsidian 插件清单
├── package.json # Node 22 构建与测试入口
└── LICENSE / NOTICE.md
```
## 环境要求
- Obsidian Desktop 1.13.1 或更新版本;
- Node.js 22;
- Codex 插件环境或其他支持 Streamable HTTP MCP 的客户端;
- Windows、macOS 或 Linux 本机环境。
## 构建与安装
```powershell
git clone https://github.com/ZNaiGaomu/obsidian.git
Set-Location .\obsidian
npm ci
npm run build
```
把 `main.js`、`manifest.json` 和 `styles.css` 放入目标 Vault 的:
```text
.obsidian/plugins/obsidian-local-rest-api/
```
Windows 用户也可以明确指定测试 Vault:
```powershell
pwsh -File .\scripts\install-codex-build.ps1 -VaultPath 'D:\Obsidian\DisposableVault'
```
脚本不会读取或写入 API key。启用插件后,在 Obsidian 设置中生成自己的 key,并把它放入当前用户环境,而不是项目文件:
```powershell
$env:OBSIDIAN_MCP_API_KEY='<your-own-key>'
```
不要把真实值写入 `.env.example`、`.mcp.json`、Codex 技能或 Git 提交。
## Codex 配置
仓库中的 `.mcp.json` 默认 `enabled: false`。完成以下检查后再启用:
1. Obsidian 插件版本为 `5.2.0-hardened.1`;
2. 服务仅监听 `127.0.0.1:27123`;
3. `OBSIDIAN_MCP_API_KEY` 已在本机设置;
4. 使用 disposable Vault 验证读取工具;
5. 确认没有额外写入工具被意外加入 allowlist。
## 测试
```powershell
npm ci
npm run lint
npm test
npm run typecheck
npm run build
```
本发行基线曾通过 822 项测试、TypeScript 类型检查、生产构建及零生产依赖漏洞审计。该记录描述固定源码快照,不替代下载者在自身 Node/Obsidian 环境中的复测。
## 上游与版本
- Upstream: `coddingtonbear/obsidian-local-rest-api`
- Tag: `5.2.0`
- Commit: `ca20f7d783c191e2ea8a3474b99de9f175e9f219`
- Hardened release: `5.2.0-hardened.1`
上游完整说明保存在 [docs/upstream-readme.md](docs/upstream-readme.md)。修改记录见 [CHANGELOG.md](CHANGELOG.md)。
## 安全与许可证
源码遵循上游 [MIT License](LICENSE),归属说明见 [NOTICE.md](NOTICE.md)。安全报告和默认权限边界见 [SECURITY.md](SECURITY.md)。本项目不是 Obsidian 官方产品。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues