---
title: "MCP Server - s&box library"
description: "AI coding MCP server with 48 tools"
canonical: "https://sbox.watch/libraries/jtc/mcp-server/"
generated_at: "2026-07-23T00:20:23.594Z"
---

# MCP Server

AI coding MCP server with 48 tools

- Type: library
- Ident: jtc.mcp-server
- Creator: jtc
- Canonical: https://sbox.watch/libraries/jtc/mcp-server/
- Markdown: https://sbox.watch/libraries/jtc/mcp-server.md
- sbox.game: https://sbox.game/jtc/mcp-server/
- Generated: 2026-07-23T00:20:23.594Z

## Stats

- 24h momentum: +0
- Terry score: 68%
- Favorites: 8
- Upvotes: 10
- Downvotes: 1
- Updated: May 1, 2026
- Created: May 1, 2026
- Size: 34.8 MB
- Files: 212
- Tags: 

## Description

In-editor MCP server for s&box — drive the editor in natural language with Claude Code (or any MCP client). Editor open = MCP up, close = gone. No subprocess, no WebSocket bridge, no reconnect dance.

What it can do (48 tools)

Scene graph (12) — scene\_list\_objects, scene\_get\_object, scene\_create\_object, scene\_delete\_object, scene\_clone\_object, scene\_reparent\_object, scene\_set\_transform, scene\_get\_hierarchy, scene\_load, scene\_find\_objects (wildcards), scene\_find\_by\_component, scene\_find\_by\_tag

Components (5) — component\_list, component\_get, component\_set (typed: Model, Material, Color, Vector3, Angles, cloud-asset idents), component\_add, component\_remove

Tags (3) — tag\_add, tag\_remove, tag\_list

Cloud assets (4) — asset\_search (s&box library), asset\_fetch, asset\_mount (auto-pins into .sbproj PackageReferences), asset\_browse\_local

Editor (11) — editor\_get\_selection, editor\_select\_object, editor\_undo/editor\_redo, editor\_save\_scene, editor\_take\_screenshot (CameraComponent → PNG), editor\_play/editor\_stop/editor\_is\_playing, editor\_scene\_info, editor\_console\_output

Files & execution (7) — file\_read, file\_write (.cs → code/, else Assets/), file\_list (glob), project\_info, console\_run, execute\_csharp (Roslyn scripting when available), get\_server\_status

Docs & API search (6) — built-in crawler over docs.facepunch.com (180+ pages) and the Facepunch API schema (1,800+ types):
- sbox\_search\_docs (fuzzy search, optional category filter)
- sbox\_get\_doc\_page (Markdown, chunked output)
- sbox\_list\_doc\_categories
- sbox\_search\_api (types + members)
- sbox\_get\_api\_type (full type details — methods, properties, fields, XML docs)
- sbox\_cache\_status

Features under the hood
- HTTP/SSE transport on localhost:29015 — no external processes
- Reflection-based tool discovery via \[McpToolGroup\] + \[McpTool\] attributes — new tool = new method with an attribute
- Main-thread dispatch — all editor-API calls land safely on the editor's main thread (no Qt crash)
- Dirty tracking via FullUndoSnapshot + OnEdited + reflection setters — close-without-save prompt works
- Process singleton — survives hot-reloads, no bind-conflict loop
- Dock UI with live status, request counter, uptime, activity log
- Graceful degradation — Roslyn-scripting fallback, multi-stage schema-URL resolver, doc-crawl cold-start retry

Setup in 30 seconds
- Clone the repo
- s&box: File → Open Project → src/SboxMcp/.sbproj
- claude mcp add --transport http -s user sbox http://localhost:29015/mcp
- Done — Claude sees all 48 tools

Architecture
Claude / MCP client ── HTTP :29015 ──> s&box editor
 ├── McpHttpServer (HttpListener)
 ├── ToolRegistry (reflection)
 ├── HandlerDispatcher (main-thread)
 ├── Handlers/ (editor APIs)
 └── DocsService (crawler + fuzzy index)

One process. 48 tools. Direct access to every editor API. Ask Claude what you want.


