pebble-index-mcp
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 serverDer Server spricht MCP über Streamable HTTP (offizielles
mcpSDK, 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_HOSTSaufgefü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 |
|
|
|
|
| FastMCP-App: registriert die vier Tools und den |
Tools
vault_search(query, max_results=5)— case-insensitiv Textsuche; gibtpath: 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_HOSTSist.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_NOFOLLOWauf 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 |
| — | Erforderlich. Vault-Root für die Datei-Tools |
|
| Lauschadresse |
| — | Erforderlich; Anfrage-Auth-Token |
| — | Kommagetrennte zusätzliche erlaubte Host-Werte (der öffentliche Tunnel-Hostname gehört hierher) |
|
| ask_hermes-Ziel |
| — | API-Server-Bearer-Schlüssel |
|
| Modell-Alias, der nach oben gesendet wird (karten Sie ihn über die |
| — | 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 -vLokal 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.
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
- AlicenseAqualityDmaintenanceEnables 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.103,8604MIT
- AlicenseNot gradedqualityBmaintenanceConnects 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.23213MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Obsidian notes via local REST API, supporting file CRUD, search, commands, and periodic notes.2,4727Apache 2.0
- AlicenseBqualityDmaintenanceEnables AI assistants to search, create, and manage notes in an Obsidian vault via 40+ local tools.5222MIT
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…
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/jcrabapple/pebble-index-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server