Skip to main content
Glama

pebble-index-mcp

MCP-Brücke, die einen lokalen Obsidian-Vault und eine Hermes-Agent-Instanz für die Doppelklick-MCP-Sandbox des Pebble Index 01 Smart Rings bereitstellt. Sprachaufnahmen vom Ring werden vom Cloud-Agenten der Pebble-App an die Tools dieses Servers weitergeleitet, und die Antwort kommt als Telefonbenachrichtigung zurück.

Architektur

[Index ring] → [Pebble app] → [Pebble cloud agent] → [this MCP server]
                                                        ├─ vault tools (local files)
                                                        └─ ask_hermes → Hermes API server
  • Der Server spricht MCP über Streamable HTTP (offizielles mcp SDK, FastMCP).

  • Jede Anfrage muss ein Bearer-Token enthalten; alles andere erhält 401.

  • FastMCPs DNS-Rebinding-Schutz ist aktiv: erlaubte Hosts sind Loopback plus alles, was in MCP_ALLOWED_HOSTS aufgeführt ist.

  • Die öffentliche Bereitstellung erfolgt über einen cloudflared-Tunnel zum Loopback-Port; darüber hinaus ist keine Cloud-Infrastruktur erforderlich.

Related MCP server: mcp-obsidian

Komponenten

Pfad

Rolle

src/pebble_index_mcp/vault.py

Vault: Pfad-sandboxed Lesen/Anhängen + ripgrep-Suche über den Vault. Alle Pfade werden innerhalb des Vault-Roots aufgelöst; absolute Pfade, ..-Traversierung und Symlink-Escapes werden abgelehnt. Anhängen ist nur anhängend, mit Zeitstempel und überschreibt nie.

src/pebble_index_mcp/hermes.py

HermesClient: leitet Fragen an einen OpenAI-kompatiblen Chat-Completions-Endpunkt mit einem Systemhinweis für kurze Antworten weiter. Mappt Timeouts/Transportfehler/schlechte Formen auf HermesTimeout/HermesError.

src/pebble_index_mcp/server.py

FastMCP-App: registriert die vier Tools und den ring_persona-Prompt, umhüllt die Streamable-HTTP-App mit Bearer-Auth (konstanten Zeitvergleich) und konfiguriert die Host-Zulassungsliste.

Tools

  • vault_search(query, max_results=5) — case-insensitiv Textsuche; gibt path: excerpt-Zeilen zurück.

  • vault_read(note_path, max_chars=1500) — liest den Kopf einer Notiz.

  • vault_append(note_path, text) — hängt eine mit Zeitstempel versehene - HH:MM text-Zeile an, erstellt die Notiz bei Bedarf.

  • ask_hermes(question) — leitet an den Hermes-API-Server weiter; 60s Timeout mit einer ehrlichen Bestätigung bei Fehlschlag.

Sicherheit

  • Auth: statisches Bearer-Token (MCP_BEARER_TOKEN), konstanten Zeitvergleich, bei jeder Anfrage erforderlich. Ein leeres Token schlägt fehl (alle Anfragen 401) und protokolliert eine Warnung beim Start.

  • Transport: TLS endet am Tunnelrand; der Ursprung lauscht nur auf Loopback.

  • Host-Validierung: DNS-Rebinding-Schutz lehnt Anfragen ab, deren Host-Header nicht Loopback oder in MCP_ALLOWED_HOSTS ist.

  • Pfad-Sandbox: Vault-Tools lösen alle Pfade auf und verlangen, dass sie innerhalb des Vault-Roots bleiben; Symlink-Escapes werden abgelehnt und Dateiöffnungen verwenden O_NOFOLLOW auf der letzten Komponente. Die Sandbox schützt vor versehentlichem und remote Missbrauch; ein feindlicher lokaler Prozess, der einen Elternverzeichnis-Tausch gewinnt, kann immer noch gewinnen (dokumentierte TOCTOU-Grenze — der Vault wird als vertrauenswürdiges Einzelbenutzerverzeichnis angenommen).

  • Konfiguration wird einmal beim Import gelesen: Das Rotieren des Bearer-Tokens oder das Ändern der erlaubten Hosts erfordert einen Neustart des Dienstes.

  • Geheimnisse: Der Hermes-API-Schlüssel und das MCP-Token liegen in einer 0600-Env-Datei außerhalb dieses Repos, niemals in Code, Logs oder Commits.

  • Datenschutzhinweis: Aufnahmen, die durch die Doppelklick-Sandbox geleitet werden, durchlaufen den Cloud-Agenten der Pebble-App. Einzelklick-Aufnahmen bleiben auf dem Gerät. Sensible Gedanken gehören zum Einzelklick.

Konfiguration (env)

Var

Standard

Zweck

VAULT_PATH

Erforderlich. Vault-Root für die Datei-Tools

MCP_HOST / MCP_PORT

127.0.0.1 / 8765

Lauschadresse

MCP_BEARER_TOKEN

Erforderlich; Anfrage-Auth-Token

MCP_ALLOWED_HOSTS

Kommagetrennte zusätzliche erlaubte Host-Werte (der öffentliche Tunnel-Hostname gehört hierher)

HERMES_API_URL

http://127.0.0.1:8642/v1/chat/completions

ask_hermes-Ziel

HERMES_API_KEY

API-Server-Bearer-Schlüssel

RING_MODEL

pebble-ring

Modell-Alias, der nach oben gesendet wird (karten Sie ihn über die model_routes des API-Servers auf ein günstiges Modell)

RING_PERSONA_FILE

Optionaler Pfad zu einer Textdatei, die die generische Cloud-Agenten-Persona ersetzt

HERMES_API_URL akzeptiert jeden OpenAI-kompatiblen Chat-Completions-Endpunkt, sodass ask_hermes direkt mit OpenRouter, Ollama oder jeder anderen kompatiblen API funktioniert — Hermes ist nur die Standardeinstellung.

Entwicklung

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -v

Lokal ausführen: Setzen Sie die obigen Umgebungsvariablen und führen Sie python -m pebble_index_mcp.server aus.

Bereitstellung

deploy/ enthält eine systemd-User-Unit-Vorlage und eine cloudflared-Tunnel-Vorlage (Hostname und Anmeldedaten werden auf dem Host ausgefüllt, nicht in diesem Repo). Siehe docs/ring-checklist.md für die Einrichtung auf der Telefonseite und die Testmatrix.

Lizenz

MIT — siehe LICENSE.

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

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

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with Obsidian vaults for creating, reading, searching, and managing notes, daily notes, TODOs, session reports, and backlinks through both stdio and HTTP/SSE transports.
    10
    3,860
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI assistants to Obsidian vaults via the Local REST API to search notes, retrieve content, and perform semantic searches. It features self-healing multi-URL connectivity and supports both stdio and HTTP transports for flexible deployment.
    232
    13
    MIT

View all related MCP servers

Related MCP Connectors

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

  • Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…

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/jcrabapple/pebble-index-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server