pebble-index-mcp
pebble-index-mcp
MCP 桥接器,将本地 Obsidian 仓库和 Hermes Agent 实例暴露给 Pebble Index 01 智能戒指的双击 MCP 沙箱。来自戒指的语音捕获由 Pebble 应用的云代理路由到此服务器的工具中,答案以手机通知的形式返回。
架构
[Index ring] → [Pebble app] → [Pebble cloud agent] → [this MCP server]
├─ vault tools (local files)
└─ ask_hermes → Hermes API server服务器通过 Streamable HTTP 使用 MCP 协议(官方
mcpSDK,FastMCP)。每个请求都必须携带 bearer token;否则返回 401。
FastMCP 的 DNS 重绑定保护已开启:允许的主机为 loopback 加上
MCP_ALLOWED_HOSTS中列出的任何主机。公网暴露是通过 cloudflared 隧道连接到 loopback 端口;除此之外不需要任何云基础设施。
Related MCP server: mcp-obsidian
组件
路径 | 角色 |
|
|
|
|
| FastMCP 应用:注册四个工具和 |
工具
vault_search(query, max_results=5)— 不区分大小写的文本搜索;返回path: excerpt行。vault_read(note_path, max_chars=1500)— 读取笔记的开头部分。vault_append(note_path, text)— 追加一行带时间戳的- HH:MM text,必要时创建笔记。ask_hermes(question)— 转发到 Hermes API 服务器;60 秒超时,未命中时给出坦诚的确认。
安全
认证:静态 bearer token(
MCP_BEARER_TOKEN),常量时间比较,每个请求都必须携带。空 token 默认拒绝(所有请求返回 401)并在启动时记录警告。传输:TLS 在隧道边缘终止;源服务仅监听 loopback。
主机校验:DNS 重绑定保护会拒绝 Host 头不是 loopback 或不在
MCP_ALLOWED_HOSTS中的请求。路径沙箱:仓库工具解析所有路径并要求它们保持在仓库根目录内;符号链接逃逸会被拒绝,文件打开时对最终组件使用
O_NOFOLLOW。沙箱可防范意外和远程滥用;但一个恶意的本地进程如果与父目录替换进行竞态,仍可能获胜(已记录的 TOCTOU 边界——仓库被假定为可信的单用户目录)。配置在导入时只读取一次:轮换 bearer token 或更改允许的主机需要重启服务。
机密:Hermes API 密钥和 MCP token 存放在本仓库之外的 0600 权限环境变量文件中,绝不进入代码、日志或提交。
隐私说明:通过双击沙箱路由的录音会经过 Pebble 应用的云代理。单击捕获保留在设备本地。敏感想法应使用单击。
配置(env)
变量 | 默认值 | 用途 |
| — | 必需。 文件工具使用的仓库根目录 |
|
| 监听地址 |
| — | 必需;请求认证 token |
| — | 逗号分隔的额外允许 Host 值(公网隧道主机名填写在此处) |
|
| ask_hermes 目标 |
| — | API 服务器 bearer 密钥 |
|
| 发送到上游的模型别名(可通过 API 服务器的 |
| — | 可选:用于替换通用云代理的人设的文本文件路径 |
HERMES_API_URL 接受任何兼容 OpenAI 的 chat completions 端点,因此 ask_hermes 可以直接用于 OpenRouter、Ollama 或任何其他兼容 API——Hermes 只是默认选项。
开发
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -v本地运行:设置上述环境变量,然后执行 python -m pebble_index_mcp.server。
部署
deploy/ 包含一个 systemd 用户单元模板和一个 cloudflared 隧道模板(主机名和凭据在主机上填写,不在此仓库中)。手机端设置和测试矩阵请参阅 docs/ring-checklist.md。
许可证
MIT — 见 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