@zeph-to/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZEPH_API_KEY | Yes | API key from Settings > API Keys | |
| ZEPH_HOOK_ID | No | Hook ID for interactive tools (zeph_prompt, zeph_input) | |
| ZEPH_BASE_URL | No | API base URL (default: https://api.zeph.to/v1) | https://api.zeph.to/v1 |
| ZEPH_DEVICE_ID | No | Target device ID. Omit to send to all devices |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zeph_notifyA | Send a one-way push notification to the user's devices. Use this to inform the user about task completion, errors, or status updates. Long bodies are automatically uploaded as a file for full viewing. |
| zeph_clipboardA | Copy text to the user's device clipboard. The text will appear in their clipboard history and can be pasted immediately. |
| zeph_listA | List recent push notifications. Use this to check notification history, avoid duplicates, or reference previous messages. |
| zeph_dismissA | Dismiss (mark as read) a specific push notification by ID. Use after processing a notification to clear it from the user's feed. |
| zeph_dismiss_allA | Dismiss all push notifications at once. Clears the entire notification feed. |
| zeph_broadcastB | Send a push notification to all subscribers of a channel. Use zeph://channels resource to find available channels. |
| zeph_fileA | Send a file to the user's device. Pass |
| zeph_promptA | Ask the user to choose from predefined options via push notification. The tool blocks until the user responds or the timeout is reached. Requires ZEPH_HOOK_ID environment variable. |
| zeph_inputA | Request text input from the user via push notification. The tool blocks until the user responds or the timeout is reached. Requires ZEPH_HOOK_ID environment variable. The user may also attach screenshots or files: those arrive as local absolute paths in the |
| zeph_askA | Ask the user a question with quick-reply buttons and a text input field. Combines prompt (buttons) and input (text) in a single notification. The user can either tap a button or type a response. |
| zeph_session_renameA | Set a custom display name for THIS agent session in the user's Zeph app (the Streams › Agents list). Label what this session is working on — e.g. "Prod deploy" or "Auth refactor" — so the user can tell parallel sessions apart on their phone. Renames the current session; the name persists until changed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| devices | List of user devices connected to Zeph with online status |
| channels | List of channels the user owns or subscribes to. Use to find channelId for broadcasting. |
TDQS
Scored across 11 tools
Most tools are clearly distinct: notification history and dismissal tools are separate from sending and interactive-request tools. A few sending-oriented tools (notify vs broadcast, notify vs file, prompt vs input vs ask) could be confused at a glance, but the descriptions clearly define their boundaries.
All tools share the zeph_ prefix and snake_case naming, which provides a consistent overall look. However, the structure is mixed: some are bare verbs (list, dismiss, notify, ask), some are nouns (clipboard, file), and one is object-verb (session_rename), so the pattern is readable but not fully predictable.
11 tools is a well-scoped set for a device-notification and user-interaction server. Each tool has a clear role in sending, receiving, dismissing, requesting input, or managing the session, with no obvious bloat or thinness.
The tool surface covers the core domain: sending one-way notifications, broadcasting to channels, sending files, prompting for choices, collecting text input, listing/dismissing notifications, copying to clipboard, and renaming sessions. There are no obvious dead ends for typical agent workflows.