obsidian-bridge
GrokBot ↔ Obsidian Bridge
Небольшой обратный прокси-сервер OAuth с закрытием при сбое, который позволяет Grok Bot и другим совместимым MCP-клиентам получать доступ к самостоятельно размещенному хранилищу Obsidian. Публичный процесс завершает одобрение владельца. Аутентифицированный Streamable HTTP пересылается только на внутренний сервер Optimike Obsidian MCP на loopback.

Этот репозиторий по умолчанию использует профиль инструментов standard и среду выполнения headless-readonly. Он не содержит реального хранилища, имени хоста, учетных данных, приватных путей или заметок.
Как это работает
Клонируйте этот репозиторий и запустите интерактивный установщик.
Установщик фиксирует и собирает публичный Optimike Obsidian MCP
v3.0.0, устанавливает мост в локальную виртуальную среду (venv) и записывает файл окружения с правами 600. Он не запускает прокси, не запускает Optimike и не касается хранилища.Вы сами запускаете Optimike на loopback, затем запускаете этот прокси на loopback, а затем ставите 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Проверка Optimike, зафиксированная установщиком на теге
v3.0.0(0a40387206a19deb6430f9b61b81fc7a07704717)Копия хранилища, которой вы уже управляете. Этот установщик никогда не создает, не открывает и не изменяет его.
Одна команда после клонирования
./scripts/install.sh --non-interactiveСкрипт отказывается работать от root и sudo, никогда не передает загрузку в оболочку и никогда не выводит сгенерированный код владельца. Затем проверьте работоспособность:
python3 scripts/doctor.pyЗаполните оставшийся локальный плейсхолдер хранилища в .env.local. Запустите Optimike самостоятельно с headless-readonly, standard, readonly, производственной JWT-аутентификацией и сгенерированным внутренним секретом:
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 для более чем 1000 приложений через 7 мета-инструментов. Это не буквально каждый MCP-сервер, и он не входит в этот репозиторий.
Держите два подключения раздельно:
Клиент | Этот репозиторий | Необязательное подключение Composio |
Grok Bot | Установите плагин Grok и подключите | Добавьте Composio Connect как второй MCP-коннектор |
Cursor | Установите плагин Cursor или добавьте этот MCP URL | Добавьте Composio Connect как второй MCP-сервер |
Codex | Установите плагин Codex или добавьте этот MCP URL | Предпочтите нативный плагин Codex от Composio или явно выберите Connect MCP |
Манифесты .grok-plugin, .cursor-plugin и .codex-plugin здесь устанавливают только мост Obsidian в режиме только для чтения. Трафик Composio не проходит через хранилище, и Composio не заменяет этот мост. См. руководство для полной модели настройки и границ безопасности.
Модель безопасности
OAuth 2.1 с одним владельцем, DCR, S256 PKCE и ротацией refresh-токенов
код владельца требуется на странице одобрения и никогда не является bearer-токеном
привязка к loopback; TLS остается вне этого процесса
bearer-токен клиента удаляется и заменяется кратковременным, отдельно подписанным внутренним JWT до того, как Optimike увидит запрос
/mcp/fullи режимы, отличные от readonly, закрываются при сбоесекреты хранятся в локальном файле с правами 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