Skip to main content
Glama

GrokBot ↔ Obsidian Bridge

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

GrokBot 到 Obsidian 桥接器概览

此仓库默认使用 standard 工具配置文件和 headless-readonly 运行时。它不包含任何真实的保险库、主机名、凭据、私有路径或笔记。

工作原理

  1. 克隆此仓库并运行引导式安装程序。

  2. 安装程序固定并构建公共 Optimike Obsidian MCP v3.0.0,在本地 venv 中安装桥接器,并写入一个 mode-600 环境文件。它不会启动代理、启动 Optimike 或触碰任何保险库。

  3. 您自己在回环地址上启动 Optimike,然后在回环地址上启动此代理,再在代理前面放置 HTTPS。

  4. 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.00a40387206a19deb6430f9b61b81fc7a07704717)的 Optimike 检出

  • 您已经管理的保险库副本。此安装程序从不创建、打开或修改任何保险库。

克隆后的一条命令

./scripts/install.sh --non-interactive

该脚本拒绝 root 和 sudo,从不将下载内容通过管道传递给 shell,也从不打印生成的所有者代码。然后检查健康状况:

python3 scripts/doctor.py

.env.local 中填写剩余的本地保险库占位符。使用 headless-readonlystandardreadonly、生产 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 serve

GET /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 插件并连接 obsidian-bridge

将 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.mddocs/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

A
license - permissive license
Not graded
quality - not tested
Not graded
maintenance - not tested

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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