Skip to main content
Glama

GrokBot ↔ Obsidian Bridge

Ein kleiner, fail-closed OAuth-Reverse-Proxy, der es Grok Bot und anderen kompatiblen MCP-Clients ermöglicht, einen selbst gehosteten Obsidian-Vault zu erreichen. Der öffentliche Prozess beendet die Eigentümerfreigabe. Authentifiziertes Streamable HTTP wird nur an ein Loopback-Optimike-Obsidian-MCP-Backend weitergeleitet.

GrokBot to Obsidian bridge overview

Dieses Repository verwendet standardmäßig das standard-Toolprofil und die headless-readonly-Laufzeit. Es enthält keinen echten Vault, Hostnamen, keine Anmeldedaten, keinen privaten Pfad und keine Notiz.

So funktioniert es

  1. Klonen Sie dieses Repository und führen Sie den geführten Installer aus.

  2. Der Installer pinnt und baut das öffentliche Optimike Obsidian MCP v3.0.0, installiert die Brücke in einer lokalen venv und schreibt eine Umgebungsdatei mit Modus 600. Er startet weder den Proxy noch Optimike und berührt keinen Vault.

  3. Sie starten Optimike selbst auf Loopback, dann starten Sie diesen Proxy auf Loopback und setzen dann HTTPS vor den Proxy.

  4. Grok Bot entdeckt OAuth, registriert einen Client und wartet auf die Eigentümerfreigabe. Nach dem PKCE-Austausch ruft es /mcp auf. Der Proxy entfernt Client-Geheimnisse und leitet die Sitzung an Optimike weiter.

Der Optimike-Quellcode ist hier nicht enthalten. Siehe docs/UPSTREAM.md.

Related MCP server: obsidian-vault-mcp

Anforderungen

  • Python 3.11+

  • Node.js 22.7.5+ und npm

  • git

  • Ein öffentlicher HTTPS-Hostname, der an 127.0.0.1:8099 weiterleitet

  • Ein Optimike-Checkout, das vom Installer auf Tag v3.0.0 (0a40387206a19deb6430f9b61b81fc7a07704717) gepinnt wird

  • Eine Vault-Kopie, die Sie bereits verwalten. Dieser Installer erstellt, öffnet oder verändert niemals einen.

Ein Befehl nach dem Klonen

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

Das Skript lehnt root und sudo ab, leitet niemals einen Download in eine Shell um und gibt niemals den generierten Eigentümercode aus. Überprüfen Sie dann den Gesundheitsstatus:

python3 scripts/doctor.py

Füllen Sie den verbleibenden lokalen Vault-Platzhalter in .env.local aus. Starten Sie Optimike selbst mit headless-readonly, standard, readonly, Produktions-JWT-Authentifizierung und dem generierten internen Geheimnis:

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

Starten Sie in einem zweiten Terminal den öffentlichen OAuth-Proxy:

.venv/bin/python -m obsidian_bridge serve

GET /health sollte {"status":"ok"} zurückgeben. Setzen Sie den Python-Port nicht direkt frei.

Plugin konfigurieren

python3 scripts/configure_plugin.py https://mcp.example.com/mcp

Die generierten mcp.json und .mcp.json enthalten nur die öffentliche URL. Fügen Sie keinen Authorization-Header hinzu. Grok Bot, Codex und Cursor verwenden OAuth-Discovery und PKCE.

Composio neben dieser Brücke hinzufügen

Der Grok-Bot-Tipp von Corey Ganim verwendet Composio Connect, um über den nativen Connector-Katalog eines Clients hinauszugehen. Composio beschreibt Connect als einen gehosteten MCP-Endpunkt für über 1000 Apps über 7 Meta-Tools. Es ist nicht buchstäblich jeder MCP-Server und ist nicht in diesem Repository enthalten.

Halten Sie die beiden Verbindungen getrennt:

Client

Dieses Repository

Optionale Composio-Verbindung

Grok Bot

Grok-Plugin installieren und obsidian-bridge verbinden

Composio Connect als zweiten MCP-Connector hinzufügen

Cursor

Cursor-Plugin installieren oder diese MCP-URL hinzufügen

Composio Connect als zweiten MCP-Server hinzufügen

Codex

Codex-Plugin installieren oder diese MCP-URL hinzufügen

Bevorzugen Sie Composios natives Codex-Plugin oder wählen Sie explizit Connect MCP

Die hier enthaltenen Manifeste .grok-plugin, .cursor-plugin und .codex-plugin installieren nur die schreibgeschützte Obsidian-Brücke. Composio-Datenverkehr fließt nicht durch den Vault und Composio ersetzt diese Brücke nicht. Siehe das Tutorial für das vollständige Einrichtungsmodell und die Sicherheitsgrenzen.

Sicherheitsmodell

  • OAuth 2.1 mit einem einzigen Eigentümer, DCR, S256 PKCE und rotierenden Refresh-Tokens

  • Der Eigentümercode ist auf der Genehmigungsseite erforderlich und ist niemals ein Bearer-Token

  • Loopback-Bindung; TLS bleibt außerhalb dieses Prozesses

  • Das Client-Bearer-Token wird entfernt und durch ein kurzlebiges, separat signiertes internes JWT ersetzt, bevor Optimike die Anfrage sieht

  • /mcp/full und nicht-schreibgeschützte Modi schlagen fehl (fail closed)

  • Geheimnisse bleiben in einer lokalen Datei mit Modus 600 und außerhalb von git, argv und stdout

Lesen Sie docs/SECURITY.md und docs/ARCHITECTURE.md, bevor Sie den Endpunkt freigeben.

Testen und Prüfen

python3 -m unittest discover -s tests -v
python3 src/privacy_scan.py --root .
python3 scripts/audit_git_history.py

Lizenz

Diese Brücke ist MIT-lizenziert. Optimike Obsidian MCP bleibt ein separates Apache-2.0-Projekt und wird nicht in diesen Baum kopiert. Siehe 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