内容
# ChatGPT 侧边栏
[](https://github.com/Faust-Donf/chatgpt-sidebar/stargazers)
[](https://github.com/Faust-Donf/chatgpt-sidebar/forks)
[](https://github.com/Faust-Donf/chatgpt-sidebar/actions/workflows/validate.yml)
[](LICENSE)
[](SKILL.md)
[](https://obsidian.md)
[](https://modelcontextprotocol.io)

将 Obsidian 知识库变成 ChatGPT 可直接使用的本地知识工作台:桌面端 ChatGPT 侧边栏、知识库级 MCP 服务器、ngrok 远程访问、安全的文件读写工具,以及可选的外部资料发现与读取工具。
ChatGPT Sidebar 是一个 **Codex 技能包**,用于建立 Obsidian + ChatGPT 工作流的端到端解决方案。它不是一个知识库备份工具,不是一个 Obsidian 市场插件包,也不是一个 ChatGPT 自动化爬虫。
## 工作空间预览

预期的工作流在单个屏幕上可见:Obsidian 在左侧保留图谱、文件和长期笔记,而 ChatGPT 在右侧使用 MCP 工具来检查和组织知识库。
## 中文导读
`chatgpt-sidebar` 面向想把 ChatGPT 和 Obsidian 长期知识库连接起来的人。它提供一套可复用的安装和维护流程,让 Codex 能在目标知识库中搭好:
- Obsidian 桌面端 ChatGPT 网页侧边栏。
- 清晰的 `raw/`、`wiki/`、`mcp-server/` 知识库结构。
- 让 ChatGPT 读取、搜索和整理知识库文件的 MCP 服务器。
- 可选的外部学习工具:网页搜索、GitHub 搜索、YouTube 搜索/字幕、RSS 阅读、网页正文读取。
- 通过 ngrok 暴露给 ChatGPT 远程 MCP 的连接方式。
- 默认保护 `.git`、`.obsidian`、`.env`、插件缓存、cookies 和 token 的安全边界。
本 README 借鉴了热门 Obsidian 项目的常见写法:先说明项目价值,再给出安装、触发方式、功能边界、仓库结构、验证命令和安全模型。
## 为什么重要
Obsidian 适合长期知识存储,而 ChatGPT 适合推理和综合。连接它们的部分很尴尬:浏览器标签、手动复制、随机脚本、ngrok URL、MCP 认证等许多容易忘记的小事情。
这个技能包把连接部分变成一个可重复的设置:
| 需求 | 该技能包设置的解决方案 |
|---|---|
| 在 Obsidian 中使用 ChatGPT | 桌面端 ChatGPT 网页侧边栏 |
| 让 ChatGPT 检查知识库 | 知识库范围的 MCP 读取工具 |
| 让 ChatGPT 组织笔记 | 明确的写入、追加、移动、删除工具 |
| 让 ChatGPT 发现新知识 | 网页、GitHub、YouTube、RSS 发现工具 |
| 连接 ChatGPT 到本地文件 | ngrok + token 保护的 SSE 端点 |
| 避免泄露本地状态 | Git 忽略、路径保护、秘密边界 |
## Codex 可以构建的内容
### ChatGPT 网页侧边栏
一个 Obsidian 社区插件,打开 `https://chatgpt.com` 在桌面侧边栏。
它故意不:
- 调用 OpenAI API
- 爬取 ChatGPT 响应
- 向 ChatGPT 注入脚本
- 自动化登录、CAPTCHA、点击或发送
- 同步 ChatGPT 历史记录
### 知识库 MCP 服务器
一个基于 `Faust-Donf/chatgpt-mcp-server-template` 的本地 MCP 服务器,使用 Express、官方 MCP SDK、SSE 传输和 ChatGPT 兼容的 OAuth/DCR 模拟。
服务器可以暴露受控的知识库工具:
| 工具 | 目的 |
|---|---|
| `get_vault_structure` | 检查知识库布局 |
| `list_vault_files` | 列出暴露的文件,分页 |
| `read_vault_file` | 读取类似文本的文件 |
| `search_vault` | 搜索带有行预览的笔记 |
| `write_vault_file` | 创建或覆盖文件,显式 `overwrite=true` |
| `append_vault_file` | 追加内容到文件 |
| `delete_vault_file` | 删除文件,显式 `confirm=true` |
| `move_vault_path` | 移动或重命名文件/目录 |
| `create_vault_directory` | 创建文件夹用于组织 |
| `runtime_context` | 返回 MCP 服务器日期、时间、时区和运行时用户 |
服务器还可以暴露可选的外部发现工具:
| 工具 | 目的 |
|---|---|
| `agent_reach_status` | 诊断 Agent Reach 和上游 CLI 可用性 |
| `web_search` | 搜索网页来源,带有可选的主机名限制 |
| `github_search` | 通过 `gh` 搜索 GitHub 仓库 |
| `youtube_search` | 通过 `yt-dlp` 搜索 YouTube 视频 |
| `rss_read` | 读取 RSS 或 Atom 源 |
| `read_url` | 通过 Jina Reader 或直接回退读取 HTTP(S) 页面 |
| `youtube_transcript` | 提取 YouTube 字幕或自动字幕 |
这故意不是任意的 shell 访问。ChatGPT 网页调用限制了 MCP 工具;这些工具在 MCP 服务器运行时运行,并仅通过固定的处理程序调用 Agent Reach 或上游 CLI。
### 学习工作流
启用可选的发现工具后,ChatGPT 可以遵循此循环:
```text
discover: web_search / github_search / youtube_search / rss_read
read: read_url / youtube_transcript
write: write_vault_file / append_vault_file
```
对于诸如“最新”、“最近”、“今天”或“今年”等时间敏感的提示,ChatGPT 应该首先调用 `runtime_context()` 以获取 MCP 服务器的当前日期、年份和时区。这避免了依赖过时的模型内存。
### ngrok 远程访问
该技能包包括通过 ngrok 暴露本地 MCP 服务器并将其连接到 ChatGPT 的运行手册:
```text
https://<ngrok-host>/sse?token=<MCP_ACCESS_TOKEN>
```
## 谁适合使用
如果您想要:
- 一个个人 Obsidian 知识库,ChatGPT 可以搜索和更新
- 一种让 ChatGPT 发现高质量外部来源并保存精炼笔记的方法
- 一个可复制的设置,而不是分散的临时脚本
- 一个本地优先的工作流,知识库文件保留在您的机器上
- 明确的读取/写入工具,而不是广泛的文件系统访问权限
- 一个记录在案的 MCP 和 ngrok 重启路径
这不适用于:
- 自动同步 ChatGPT 会话历史记录
- 绕过 ChatGPT 登录、速率限制、CAPTCHA 或浏览器检查
- 发布完整的 Obsidian 知识库备份
- 爬取 ChatGPT 网页内容
- 替换官方的 Obsidian 插件发布流程
## 安装技能包
将此仓库克隆到您的 Codex 技能目录:
```bash
mkdir -p ~/.codex/skills
git clone https://github.com/Faust-Donf/chatgpt-sidebar.git ~/.codex/skills/obsidian-web-mcp
```
启动一个新的 Codex 会话,以便发现该技能包。
## 触发它
使用类似的提示:
```text
使用 obsidian-web-mcp 将此 Obsidian 知识库设置为带有 ChatGPT 网页侧边栏和 ngrok 公开的 MCP 服务器。
```
其他有用的提示:
```text
使用 obsidian-web-mcp 安全地为此知识库添加写入/删除/移动 MCP 工具。
```
```text
使用 obsidian-web-mcp 为此知识库的 MCP 服务器添加由 Agent Reach 支持的 web_search、youtube_search、rss_read、read_url 和 youtube_transcript 工具。
```
```text
使用 obsidian-web-mcp 记录如何在关闭后重启 Obsidian MCP 服务器。
```
```text
使用 obsidian-web-mcp 为 GitHub 准备此 Obsidian MCP 设置,而不提交秘密。
```
## 典型输出
在 Codex 在知识库上使用此技能包后,目标项目通常具有:
```text
.obsidian/plugins/chatgpt-web-sidebar/
mcp-server/
raw/
wiki/
AGENT.md
README.md
```
MCP 服务器有其自己的:
```text
mcp-server/.env.example
mcp-server/package.json
mcp-server/src/
mcp-server/README.md
```
真正的 `.env` 保留在本地,并被 Git 忽略。
## 仓库内容
```text
chatgpt-sidebar/
├── SKILL.md # Codex 使用的主要工作流
├── README.md # 面向人类的项目页面
├── LICENSE
├── CONTRIBUTING.md
├── agents/
│ └── openai.yaml # UI 元数据
├── references/
│ └── repo-layout.md # 推荐的知识库/仓库布局
└── assets/
└── cover.png # README 封面图片
```
## 安全模型
该技能包告诉 Codex 保持这些边界:
- 永远不要提交 `.env`、ngrok token、MCP token、cookie 或插件会话状态
- 将 MCP 文件访问限制在目标知识库内
- 从 MCP 暴露中排除 `.git`、`.obsidian`、`mcp-server`、`node_modules`、`.env` 和缓存文件
- 需要明确的标志来进行破坏性操作
- 通过狭窄的只读 MCP 工具暴露外部发现,而不是任意的 shell
- 仅在与 MCP 服务器相同的用户/容器/机器运行时中安装 Agent Reach
- 在解释“最新”或“最近”之前使用 `runtime_context`
- 将 ChatGPT 工具执行设置为在运行前询问
- 避免 ChatGPT DOM 爬取和自动化
这很重要,因为远程 MCP 隧道可以暴露本地文件,如果它是随意构建的。该技能包偏爱明确的工具、路径保护、token 认证和重启文档。
## 验证
运行本地技能验证器:
```bash
python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py ~/.codex/skills/obsidian-web-mcp
```
此仓库还在每次推送时运行一个轻量级的 GitHub Actions 工作流,以验证技能包的形状。
## 星历史
[](https://www.star-history.com/#Faust-Donf/chatgpt-sidebar&Date)
## 状态
此技能包是有偏见的,但很实用。它设计用于个人/本地 Obsidian 工作流,您了解通过公共隧道暴露本地 MCP 服务器的风险。
使用私人仓库并在共享 URL 或截图时轮换 token。
连接信息
猜你喜欢
暂无推荐服务器