chatgpt-box-mcp

chatgpt-box-mcp

A private MCP server that lets ChatGPT create, manage, and operate Box by ASCII Linux environments through secure MCP tools.

Category
Visit Server

README

ChatGPT Box MCP

English | 简体中文

A private MCP server that lets ChatGPT create and operate your own Box by ASCII Linux environments.

The control direction is deliberately one-way:

ChatGPT
  → private Developer Mode MCP app
  → OpenAI Secure MCP Tunnel
  → this local MCP server
  → Box Public API
  → your Box Linux environments

ChatGPT remains the conversational interface and tool orchestrator. This project does not automate the ChatGPT website, extract ChatGPT responses, expose a ChatGPT account as an API, or call Box's built-in Codex/Claude prompt runner.

What it can do

The server exposes explicit, accurately annotated MCP tools:

Area Tools
Discovery box_list, box_get, box_list_events
Lifecycle box_create, box_stop, box_resume, box_fork
Work box_execute_command, box_read_file, box_write_file
Long-running work box_job_start, box_job_status, box_job_logs, box_job_cancel
Visual inspection box_open_desktop

Short commands wait for at most 60 seconds, matching the Box command API. Background jobs run independently inside the Box and persist their pid, status, and logs under .chatgpt-box-mcp/jobs/ in the Box work directory.

Safety model

  • BOX_API_KEY is read only from the MCP server's environment. It is never a tool argument or tool result.
  • Tool descriptions and MCP annotations state which actions write, may destroy data, or affect external systems.
  • File tools reject absolute paths and .. traversal segments.
  • Long-job scripts are base64 encoded before being installed in the Box, so their contents are not interpolated into the launcher shell.
  • A forced stop is marked destructive because it can lose changes since the last successful snapshot.
  • Desktop URLs are secret-bearing. The tool tells ChatGPT not to log, persist, or share them.
  • HTTP mode binds to loopback by default. Binding to a non-loopback address requires MCP_HTTP_TOKEN.

The server deliberately does not expose Box account secret-management or API-key-management endpoints.

Requirements

Developer Mode and tunnel permissions are separate. Availability depends on your ChatGPT workspace/plan and OpenAI Platform organization permissions.

Install

npm.cmd install
npm.cmd run build
Copy-Item .env.example .env

Edit .env and set:

BOX_API_KEY=box_your_secret_here

Do not commit .env.

Run locally over stdio:

npm.cmd run start:env

The process waits for an MCP client on stdin/stdout. Log messages go to stderr so they do not corrupt the MCP stream.

Connect through OpenAI Secure MCP Tunnel

  1. Create a tunnel in OpenAI Platform tunnel settings and associate it with the ChatGPT workspace that will use it.
  2. Download the latest tunnel-client.
  3. Use an absolute path for the MCP command. On Windows, for example:
$env:CONTROL_PLANE_API_KEY = "sk-your-runtime-key"

tunnel-client init `
  --sample sample_mcp_stdio_local `
  --profile chatgpt-box `
  --tunnel-id tunnel_replace_me `
  --mcp-command 'node --env-file=D:\Chat-box-mcp\.env D:\Chat-box-mcp\dist\src\index.js'

tunnel-client doctor --profile chatgpt-box --explain
tunnel-client run --profile chatgpt-box

Keep tunnel-client run healthy while using the app.

  1. Open ChatGPT Plugins, create a developer-mode app, choose Tunnel, and select the tunnel.
  2. Scan the tools and name the private app, for example ChatGPT Box MCP.

You can then ask:

@ChatGPT Box MCP list my running boxes.

@ChatGPT Box MCP create a one-hour small box, clone this repository,
run the tests, fix the failures, and show me the diff. Use a background
job if the work will take more than a minute.

ChatGPT should explain and confirm consequential tool calls according to the tool annotations and the current product policy.

Local HTTP mode and MCP Inspector

HTTP mode is useful for MCP Inspector and local diagnostics.

Set these values in .env:

MCP_TRANSPORT=http
MCP_HOST=127.0.0.1
MCP_PORT=3000

Then run:

npm.cmd run start:env

Endpoints:

  • MCP: http://127.0.0.1:3000/mcp
  • Health: http://127.0.0.1:3000/healthz

If you intentionally bind beyond loopback, also set a strong MCP_HTTP_TOKEN and send it as Authorization: Bearer .... A public plugin needs additional authentication, deployment, and review work; this repository is designed for a private, manually configured Developer Mode app.

Development

npm.cmd run check
npm.cmd test

The tests cover Box request construction, structured API errors, credential isolation, long-job launcher safety, job status parsing, MCP initialization, tool discovery, and the missing-credential error path.

Operational notes

  • Box creation, resume, and fork operations can start billable machine time.
  • box_stop snapshots before stopping unless force=true is explicitly requested.
  • Cancelling a background job sends SIGTERM to its process group. It cannot roll back files or external side effects already produced.
  • Box API command output may itself be truncated by Box; large MCP results are also capped to protect the conversation context.
  • The MCP server does not retain ChatGPT conversations or Box API responses.

Disclaimer

Unofficial project. Not affiliated with, endorsed by, or supported by OpenAI or Dedale/ASCII. Users configure and operate their own ChatGPT account, OpenAI tunnel, Box account, credentials, environments, and permissions.

Use this project only for systems and resources you are authorized to access. Review the current OpenAI terms and Box terms for your use case.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured