Skip to main content
Glama

GrokBot ↔ Obsidian Bridge

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

GrokBot to Obsidian bridge overview

Этот репозиторий по умолчанию использует профиль инструментов standard и среду выполнения headless-readonly. Он не содержит реального хранилища, имени хоста, учетных данных, приватных путей или заметок.

Как это работает

  1. Клонируйте этот репозиторий и запустите интерактивный установщик.

  2. Установщик фиксирует и собирает публичный Optimike Obsidian MCP v3.0.0, устанавливает мост в локальную виртуальную среду (venv) и записывает файл окружения с правами 600. Он не запускает прокси, не запускает Optimike и не касается хранилища.

  3. Вы сами запускаете Optimike на loopback, затем запускаете этот прокси на loopback, а затем ставите 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

  • Проверка 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 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 для более чем 1000 приложений через 7 мета-инструментов. Это не буквально каждый MCP-сервер, и он не входит в этот репозиторий.

Держите два подключения раздельно:

Клиент

Этот репозиторий

Необязательное подключение Composio

Grok Bot

Установите плагин Grok и подключите obsidian-bridge

Добавьте 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.

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