Skip to main content
Glama

ScriptIt

One control plane for your agent's tools. Connect remote MCP servers once; every agent — in any sandbox — gets them back two ways:

  • a remote MCP endpoint (/mcp) with compact meta-tools (no tool-list bloat), and

  • a CLI (scriptit) an agent can pair from inside any sandbox via a public-key handshake approved over an MCP tool call — upstream credentials never enter the sandbox.

Plus a proxied LLM endpoint for scripting, and watches: run a command or tool on an interval, optionally have an LLM verify the output, and emit structured events your agent can poll or stream.

Local-first build: everything runs on your machine (SQLite, one server process).

Quick start

pnpm install
pnpm build
pnpm start            # control plane on http://127.0.0.1:4747 (prints admin + mcp tokens)

Dev mode (server + web UI + demo upstream MCP, all watching):

pnpm dev

Related MCP server: ChatGPT Gateway MCP Nyan

Connect an agent (MCP)

Add to Claude Code (or any MCP client):

claude mcp add --transport http scriptit http://127.0.0.1:4747/mcp --header "Authorization: Bearer <mcp token>"

Tools: list_connectors, search_tools, call_tool, approve_cli, create_watch, list_watches, run_watch, delete_watch, get_events, llm.

Pair the CLI (the handshake)

In the sandbox / any shell:

scriptit pair                 # prints a code like AB3D-9XKQ and waits

Then either ask your agent to call approve_cli with that code over its ScriptIt MCP connection, or approve it in the dashboard. From then on:

scriptit connectors
scriptit call demo list_cronjobs
scriptit llm "summarize:" - < notes.txt
scriptit watch create --name failed-crons \
  --connector demo --tool list_cronjobs --interval 5m \
  --verify "Emit an event iff any cronjob is failing; type=cron_failure, summarize which."
scriptit events --follow --json      # structured events, one JSON per line

The CLI signs every request with an ed25519 key; sessions are short-lived and revocable from the dashboard. Upstream tokens live only in the control plane, encrypted at rest.

Layout

Path

What

apps/server

control plane: REST + MCP endpoint + OAuth broker + watch engine (port 4747)

apps/web

dashboard SPA

packages/cli

scriptit CLI

packages/shared

shared types + ed25519 signing

packages/demo-mcp

demo upstream MCP server (port 4748)

PROTOCOL.md

the contract: pairing, signing, REST, MCP tools, watches

Notes

  • Local build trusts localhost: admin/mcp tokens are the auth boundary. Don't expose 4747.

  • OAuth connectors use Dynamic Client Registration + PKCE (works with Linear, Notion, Sentry, Atlassian, Stripe, Supabase, …). Bearer/PAT connectors cover GitHub's MCP and friends.

  • scriptit watch command-type watches execute shell commands on the server host — that's the point (local build), but remember it when you deploy this anywhere shared.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP-compatible AI clients to invoke CLI-driven agent tools over Streamable HTTP, including shell execution, file operations, patching, image viewing, web search, and nested agent tasks, with permission modes and real-time progress streaming.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agent clients to safely connect to tools and execution resources through MCP with authorization, approvals, audit, chat-context isolation, SSH/Docker access, and long-running command session tracking.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables secure remote management of the platform through nine MCP tools over STDIO and HTTP, including terminal execution, service controls, and live status monitoring.
    360 npm
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    Enables AI agents to create and control persistent terminal sessions, run and monitor asynchronous jobs, page through ordered event history, and resolve registered device connection details without exposing stored secrets. Exposes 15 MCP tools over stdio that mirror a REST API, keeping session state alive independently of the agent that started it.
    15
    -