mcpField
C
chartremotely-mcp

chartremotely-mcp

Remote
github.com/lonnievFinance0Updated 1d ago
Repository

About chartremotely-mcp

chartremotely-mcp is an MCP control service for remote desktop chart displays, relaying chart commands to agents on users’ own machines. It supports pairing, status checks, chart actions, and snapshots without accessing broker APIs or trading interfaces.

Key features

  1. 01Pair agents with displays
  2. 02Send security chart commands to a display
  3. 03Read the chart currently shown
  4. 04Capture and retrieve display snapshots
  5. 05Manage displays and capture records

Use cases

  1. 01Show a security on a remote screen by voice or tool call
  2. 02Check the chart on a paired display
  3. 03Capture a chart window for later review
  4. 04Check display connection status

MCP support

The MCP server exposes pairing and display-management tools, and relays a limited set of chart commands to agents on users’ devices. It does not connect to broker APIs or control trading interfaces.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://chartremotely-mcp.fastmcp.app/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

ChartRemotely — operator

A Tollbooth-DPYC Operator MCP. It meters and relays chart commands to agents running on patrons' own machines, so a security can be put on a wall monitor anywhere by voice or by tool call.

The operator never touches a broker API and never drives a GUI itself. It pairs agents, bills per request, and relays a narrow vocabulary.

Why this exists

Desktop charting applications have no automation surface. thinkorswim in particular has no API, no URL scheme, and nothing addressable — so "put Palantir on the screen in the other building" is not a thing anyone can currently buy.

The control plane is the product. Chart analysis is abundant; remote input automation with a voice front end is not.

Web app

frontend/ is the site at https://chartremotely.tollbooth-dpyc.com: a welcome page, npub sign-in, a carousel of your screens with a live snapshot on request, and a profile for your balance and paired displays. It is built on @tollbooth-dpyc/web, the shared browser SDK, and deploys to Cloudflare Pages through the fleet's shared workflow on every push to main that touches frontend/.

cd frontend && npm install && npm run dev   # tests run as part of npm run build

Tools

ToolPriceWhat it does
get_shortcutfreeReturns the Apple Shortcut, ready to import
pair_agentfreeBinds an agent to the caller's npub
agent_statusfreeWhich displays are paired, and are they connected
forget_displayfreeRemoves a display and the secret it signed in with
show_chartmeteredPut a security on a paired display
read_chartmeteredWhat a display is currently showing
snapshot_displaymeteredA JPEG of the display's chart window, right now - also kept as a capture
latest_snapshotmeteredA kept capture: the newest, a symbol's newest, or one by capture id

Every tool that takes an npub needs a proof of that npub (request_npub_proof, then receive_npub_proof); get_shortcut hands out a public file and does not.

A metered call to a display that never answers - offline, or not running the agent - is refunded, and so is one naming a display you do not have. A display keeps captures by symbol: the newest 6 of each of its last 20 symbols, sealed with the vault cipher, each for four hours. One lands after every chart change the agent pushes, and one with every snapshot_display (filed under the symbol the display says it shows, or "Chart"). The AAD binds each capture to its display, its symbol and its capture id. agent_status lists them per display - symbols by newest capture, each with its captures newest first - and latest_snapshot(capture=...) shows one exactly.

A picture reply leads with one line of text naming what is known about it - display, symbol, scale, capture time, e.g. Mac mini · PLTR · half · captured 2026-09-24 22:10 UTC - then the JPEG. Anything unknown is left out. The line survives when a client drops images to compact a long conversation, and it is all a client that cannot render images gets.

display may be said loosely: "mini mac", "mini" or "mack meeny" all find "Mac mini". A name that could mean several displays is answered with them (see PROTOCOL.md for the rules).

What it deliberately cannot do

The vocabulary relayed to an agent is fixed, and the agent enforces it independently — see vocab.py in the agent repository. Nothing in this operator can reach an order ticket, an account balance, or a position. Widening that surface would require changes in both repositories, in public.

Related

License

Apache-2.0

Comments

Markdown supported

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.