Skip to main content
Glama

GrokBot ↔ Obsidian Bridge

Un pequeño proxy inverso OAuth de cierre ante fallos que permite que Grok Bot y otros clientes MCP compatibles accedan a una bóveda de Obsidian autoalojada. El proceso público termina la aprobación del propietario. El HTTP Streamable autenticado se reenvía únicamente a un backend MCP de Optimike Obsidian en loopback.

Descripción general del puente GrokBot a Obsidian

Este repositorio usa por defecto el perfil de herramientas standard y el tiempo de ejecución headless-readonly. No contiene ninguna bóveda real, nombre de host, credencial, ruta privada ni nota.

Cómo funciona

  1. Clona este repositorio y ejecuta el instalador guiado.

  2. El instalador fija y compila el MCP público Optimike Obsidian v3.0.0, instala el puente en un venv local y escribe un archivo de entorno con permisos 600. No inicia el proxy, no inicia Optimike ni toca una bóveda.

  3. Tú mismo inicias Optimike en loopback, luego inicias este proxy en loopback y después pones HTTPS delante del proxy.

  4. Grok Bot descubre OAuth, registra un cliente y espera la aprobación del propietario. Tras el intercambio PKCE, llama a /mcp. El proxy elimina los secretos del cliente y reenvía la sesión a Optimike.

El código fuente de Optimike no está incluido aquí. Consulta docs/UPSTREAM.md.

Related MCP server: obsidian-vault-mcp

Requisitos

  • Python 3.11+

  • Node.js 22.7.5+ y npm

  • git

  • Un nombre de host HTTPS público que reenvíe a 127.0.0.1:8099

  • Un checkout de Optimike fijado por el instalador a la etiqueta v3.0.0 (0a40387206a19deb6430f9b61b81fc7a07704717)

  • Una copia de la bóveda que ya administres. Este instalador nunca crea, abre ni modifica una.

Un comando después de clonar

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

El script rechaza root y sudo, nunca canaliza una descarga a un shell y nunca imprime el código de propietario generado. Luego inspecciona el estado:

python3 scripts/doctor.py

Completa el marcador de posición restante de la bóveda local en .env.local. Inicia Optimike tú mismo con headless-readonly, standard, readonly, autenticación JWT de producción y el secreto interno generado:

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

En una segunda terminal, inicia el proxy OAuth público:

.venv/bin/python -m obsidian_bridge serve

GET /health debería devolver {"status":"ok"}. No expongas el puerto de Python directamente.

Configurar el plugin

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

Los mcp.json y .mcp.json generados contienen solo la URL pública. No agregues un encabezado Authorization. Grok Bot, Codex y Cursor usan descubrimiento OAuth y PKCE.

Añadir Composio junto a este puente

El consejo de Corey Ganim sobre Grok Bot usa Composio Connect para ir más allá del catálogo nativo de conectores de un cliente. Composio describe Connect como un único endpoint MCP alojado para más de 1000 aplicaciones a través de 7 metaherramientas. No es literalmente cada servidor MCP, y no está incluido en este repositorio.

Mantén las dos conexiones separadas:

Cliente

Este repositorio

Conexión opcional de Composio

Grok Bot

Instala el plugin de Grok y conecta obsidian-bridge

Añade Composio Connect como segundo conector MCP

Cursor

Instala el plugin de Cursor o añade esta URL MCP

Añade Composio Connect como segundo servidor MCP

Codex

Instala el plugin de Codex o añade esta URL MCP

Prefiere el plugin nativo de Codex de Composio, o elige Connect MCP explícitamente

Los manifiestos .grok-plugin, .cursor-plugin y .codex-plugin aquí instalan solo el puente de Obsidian de solo lectura. El tráfico de Composio no pasa por la bóveda y Composio no reemplaza este puente. Consulta el tutorial para el modelo de configuración completo y los límites de seguridad.

Modelo de seguridad

  • OAuth 2.1 de propietario único con DCR, PKCE S256 y tokens de actualización rotativos

  • el código de propietario es obligatorio en la página de aprobación y nunca es un token de portador

  • enlace en loopback; TLS permanece fuera de este proceso

  • el token de portador del cliente se elimina y se reemplaza con un JWT interno de corta duración y firmado por separado antes de que Optimike vea la solicitud

  • /mcp/full y los modos no solo lectura fallan de forma cerrada

  • los secretos permanecen en un archivo local con permisos 600 y fuera de git, argv y stdout

Lee docs/SECURITY.md y docs/ARCHITECTURE.md antes de exponer el endpoint.

Prueba y auditoría

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

Licencia

Este puente es MIT. Optimike Obsidian MCP sigue siendo un proyecto separado con licencia Apache-2.0 y no se copia en este árbol. Consulta 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