About Hostbeam
Hostbeam is an MCP server for coding agents running on a remote server. It lets an agent retrieve screenshots sent from a Mac or iPhone over SSH, without requiring the screenshot path to be pasted into the agent.
Key features
- 01Retrieve the latest screenshot beam
- 02List recent screenshots and metadata
- 03Read a screenshot by filename
- 04Restrict reads to delivered image files
- 05Reject unsafe folders and symlinks
Use cases
- 01Inspect a phone screenshot from a remote coding session
- 02Give an agent a screenshot without pasting its path
- 03Check recently beamed files before reading one
MCP support
Runs alongside the coding agent and exposes tools to retrieve, list, and read screenshots delivered by Hostbeam.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @hostbeam/mcpHOSTBEAM_DIRThe folder Hostbeam beams to on this server. Leave unset for /tmp/hostbeam.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEHostbeam MCP server
Hostbeam sends a screenshot from your Mac or your iPhone to a server over SSH and puts the remote path on your clipboard, so you can paste it to a coding agent running there.
This MCP server runs on that server, next to the agent. The agent can ask for the screenshot you just beamed and read it, without you pasting the path.
Install
On the server your agent runs on, not on your Mac or your phone. Node 18 or later.
For Claude Code:
claude mcp add -s user hostbeam -- npx -y @hostbeam/mcp
-s user makes it available in every project on that server.
For Codex:
codex mcp add hostbeam -- npx -y @hostbeam/mcp
For other MCP clients, in their JSON config:
{
"mcpServers": {
"hostbeam": {
"command": "npx",
"args": ["-y", "@hostbeam/mcp"]
}
}
}
If the server can't reach npm, copy hostbeam-mcp.mjs to it and run that
instead. It has no dependencies.
claude mcp add -s user hostbeam -- node /path/to/hostbeam-mcp.mjs
Hostbeam beams to /tmp/hostbeam unless you changed the folder for that host.
If you did, give the server the same folder: -e HOSTBEAM_DIR=/your/folder for
Claude Code, --env HOSTBEAM_DIR=/your/folder for Codex, or
"env": { "HOSTBEAM_DIR": "/your/folder" } in JSON.
Tools
latest_screenshotreturns the most recent beam as images, with how long ago it arrived. If you beamed several files at once, it returns all of them, up to six, and names the rest.list_screenshotslists recent beams with file names, sizes and times. No image data.read_screenshotreturns one file by name.
What it reads
Only files Hostbeam delivered: names starting with hostbeam- with an image
extension, in that one folder. It doesn't look in subfolders, and it refuses a
name with a path in it. It never writes, moves or deletes anything.
It skips symlinks, and it won't read a folder that belongs to another user or that any user can write to, because a file there may not be one you beamed.
JPEG, PNG, GIF and WebP come back as images, up to 3.75 MB each. Other formats
and larger files come back as a path instead: models only accept those four
formats, and model APIs refuse bigger images. When a beam holds several files,
latest_screenshot includes images up to 7.5 MB in total and names the rest.
Check it by hand
It speaks newline-delimited JSON-RPC on stdin and stdout:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_screenshots"}}' \
| npx -y @hostbeam/mcp
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.