obsidian-bridge
GrokBot ↔ Obsidian Bridge
一个小型、故障关闭的 OAuth 反向代理,让 Grok Bot 和其他兼容的 MCP 客户端能够访问自托管的 Obsidian 保险库。公共进程终止所有者批准。经过身份验证的流式 HTTP 仅转发到回环地址上的 Optimike Obsidian MCP 后端。

此仓库默认使用 standard 工具配置文件和 headless-readonly 运行时。它不包含任何真实的保险库、主机名、凭据、私有路径或笔记。
工作原理
克隆此仓库并运行引导式安装程序。
安装程序固定并构建公共 Optimike Obsidian MCP
v3.0.0,在本地 venv 中安装桥接器,并写入一个 mode-600 环境文件。它不会启动代理、启动 Optimike 或触碰任何保险库。您自己在回环地址上启动 Optimike,然后在回环地址上启动此代理,再在代理前面放置 HTTPS。
Grok Bot 发现 OAuth,注册客户端,并等待所有者批准。在 PKCE 交换后,它调用
/mcp。代理剥离客户端密钥并将会话转发给 Optimike。
Optimike 源代码未在此处捆绑。请参阅 docs/UPSTREAM.md。
Related MCP server: obsidian-vault-mcp
要求
Python 3.11+
Node.js 22.7.5+ 和 npm
git
一个公共 HTTPS 主机名,转发到
127.0.0.1:8099由安装程序固定到标签
v3.0.0(0a40387206a19deb6430f9b61b81fc7a07704717)的 Optimike 检出您已经管理的保险库副本。此安装程序从不创建、打开或修改任何保险库。
克隆后的一条命令
./scripts/install.sh --non-interactive该脚本拒绝 root 和 sudo,从不将下载内容通过管道传递给 shell,也从不打印生成的所有者代码。然后检查健康状况:
python3 scripts/doctor.py在 .env.local 中填写剩余的本地保险库占位符。使用 headless-readonly、standard、readonly、生产 JWT 身份验证以及生成的内部密钥自行启动 Optimike:
set -a
. ./.env.local
set +a
cd .runtime/upstream
NODE_ENV=production MCP_TRANSPORT_TYPE=http MCP_HTTP_HOST=127.0.0.1 \
MCP_HTTP_PORT=3010 MCP_AUTH_MODE=jwt \
MCP_AUTH_SECRET_KEY="$OBSIDIAN_BRIDGE_UPSTREAM_JWT_SECRET" \
node dist/index.js在第二个终端中,启动公共 OAuth 代理:
.venv/bin/python -m obsidian_bridge serveGET /health 应返回 {"status":"ok"}。不要直接暴露 Python 端口。
配置插件
python3 scripts/configure_plugin.py https://mcp.example.com/mcp生成的 mcp.json 和 .mcp.json 仅包含公共 URL。不要添加 Authorization 头。Grok Bot、Codex 和 Cursor 使用 OAuth 发现和 PKCE。
在此桥接器旁边添加 Composio
Corey Ganim 的 Grok Bot 提示 使用 Composio Connect 来超越客户端的原生连接器目录。Composio 将 Connect 描述为一个托管 MCP 端点,通过 7 个元工具支持 1000+ 应用。它并不是字面上的每个 MCP 服务器,也不随此仓库捆绑。
保持两个连接分开:
客户端 | 此仓库 | 可选的 Composio 连接 |
Grok Bot | 安装 Grok 插件并连接 | 将 Composio Connect 添加为第二个 MCP 连接器 |
Cursor | 安装 Cursor 插件或添加此 MCP URL | 将 Composio Connect 添加为第二个 MCP 服务器 |
Codex | 安装 Codex 插件或添加此 MCP URL | 优先使用 Composio 的原生 Codex 插件,或明确选择 Connect MCP |
此处的 .grok-plugin、.cursor-plugin 和 .codex-plugin 清单仅安装只读的 Obsidian 桥接器。Composio 流量不经过保险库,Composio 也不会替代此桥接器。请参阅教程了解完整的设置模型和安全边界。
安全模型
单所有者 OAuth 2.1,支持 DCR、S256 PKCE 和轮换刷新令牌
批准页面上需要所有者代码,且该代码绝不是承载令牌
回环绑定;TLS 保持在此进程之外
在 Optimike 看到请求之前,客户端承载令牌会被剥离,并替换为短期、单独签名的内部 JWT
/mcp/full和非只读模式故障关闭密钥保存在 mode-600 本地文件中,不进入 git、argv 和 stdout
在暴露端点之前,请阅读 docs/SECURITY.md 和 docs/ARCHITECTURE.md。
测试与审计
python3 -m unittest discover -s tests -v
python3 src/privacy_scan.py --root .
python3 scripts/audit_git_history.py许可证
此桥接器采用 MIT 许可证。Optimike Obsidian MCP 仍是一个独立的 Apache-2.0 项目,未复制到此树中。请参阅 docs/UPSTREAM.md。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected. Runs locally via Docker or remotely with Obsidian Sync + OAuth 2.1.4301,20417MIT
- AlicenseNot gradedqualityBmaintenanceMulti-tenant remote MCP server that exposes any GitHub-backed Obsidian vault to any MCP client via OAuth authentication.9MIT
- AlicenseNot gradedqualityBmaintenanceActs as a secure OAuth 2.0/2.1 proxy gateway for MCP servers, enabling integration with Claude and ChatGPT platforms.12MIT
- FlicenseDqualityCmaintenanceEnables Claude Desktop to securely search and retrieve knowledge from an Obsidian vault through a stateless MCP interface, with progressive disclosure and gated write capabilities.13
Related MCP Connectors
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamsupersocks/grokbot-obsidian-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server