Skip to main content
Glama

What you get

  • ๐ŸŽฒ Build a whole table. Create and arrange objects, work with cards and templates, define player areas, zones and snaps.

  • ๐Ÿค– Use your preferred assistant. Claude Code, Codex, Cursor, VS Code and other clients that support local MCP servers.

  • ๐Ÿ–ฅ๏ธ Watch it work. Keep the table open in your browser. MCP works alongside your player session without taking your seat or disconnecting the tab.

  • ๐Ÿ“œ Write and debug Lua. Let the assistant read scripts, edit local files, compile changes and inspect the console.

  • ๐ŸŽจ Bring your assets. Upload images, models, audio, fonts and PDFs for use in templates and objects.

  • ๐Ÿงฉ Repeat a setup. Blueprints update tracked objects instead of making another copy of every piece.

  • ๐Ÿ’พ Keep a backup. Export a portable table archive before a large change, or add content from module archives.

  • ๐Ÿ“š Give the agent the actual manual. The package includes TTCraft documentation and a searchable command reference.

Related MCP server: DesyncedMCP

The easiest way to start

Codex and Claude Desktop can connect without installing this package. Add https://ttcraft.net/mcp as a remote Streamable HTTP connector and sign in with your TTCraft account through OAuth. Codex CLI users can run:

codex mcp add ttcraft --url https://ttcraft.net/mcp
codex mcp login ttcraft

In Claude Desktop use Connectors โ†’ Add custom connector, enter the URL and choose OAuth. Both published client identities and dynamic registration are supported. Your existing table permissions apply, and access can be revoked in TTCraft Settings โ†’ Security. Remote file tools use your private /workspace/; files_write / files_read transfer bounded chunks. See remote hosting for deployment and limits.

Local filesystem workflows

Give your assistant this message:

Set up TTCraft MCP using https://ttcraft.net/docs/mcp-setup.md . Install it on this computer and configure this client, preserving my existing MCP servers. Verify that the tools load, help me sign in through the browser, then list my running tables. Ask me which table to use before changing anything.

The assistant handles installation and configuration. You approve the TTCraft login in your browser and choose the table. Your client may need a restart to load the new tools. The complete guide explains each step.

Install it yourself

You need Node.js 22 or newer, a TTCraft account and a client that can launch local MCP servers. Get Node.js LTS if needed. No VS Code extension or GitHub token is required.

npm install --global https://ttcraft.net/downloads/ttcraft-mcp-0.1.2.tgz
ttcraft-mcp setup

Copy the Claude Code or Codex command printed by setup, run it and reload MCP or restart the client. The commands contain the correct absolute paths for your computer. For other clients, use the JSON configuration printed by setup; VS Code's servers format is included in setup --json. Running setup alone does not change settings.

On Windows, use npm.cmd and ttcraft-mcp.cmd if PowerShell blocks .ps1 launchers. If global installation needs administrator access, follow the private-folder installation. The release is served directly by TTCraft as a versioned archive; do not substitute an unqualified npm registry package name.

Sign in and open a table

  1. Start the table from its room on ttcraft.net. You need Manage table permission; owners and moderators normally have it.

  2. Ask your assistant to sign in. It gives you a TTCraft approval link and short code. Approve in the browser, then tell the assistant you are ready. Your password stays in the browser.

  3. Choose your table from the list the assistant retrieves. It inspects the existing state before making changes.

  4. Keep the browser tab open and describe what you want to build.

You can also use ttcraft-mcp login in a terminal. Reconnect an already-running MCP server afterward so it reads the saved credential.

Things to try

Inspect my table. Add a draw pile, a discard area and four player areas. Reuse existing pieces and show me the plan first.

Find why scoring does not update. Read the Global and dice scripts, fix them, compile and check the console.

Create a repeatable six-player setup. Dry-run it, apply it and verify that a second application does not duplicate pieces.

Export a backup to a ZIP before changing the layout.

The assistant has 37 tools and a reference for 144 native commands. Describe the result you want without learning tool names. Details are in tools and workflows, Lua scripting and table plans.

Good to know

  • Changes affect the shared table. Export a backup before a large replacement. Archive import replaces the world; module import adds content.

  • Your permissions still apply. MCP follows your account permissions and table rules.

  • Tables must be running. Start them from the room page. Practice/tutorial tables are excluded.

  • Browser and agents coexist. Several agents can connect; coordinate edits to the same scripts or objects. Older instances need a saved restart onto a server with tool-session support. MCP refuses them before connecting.

  • Two transports. The hosted OAuth connector uses HTTPS; local filesystem workflows can use stdio. Over SSH or in a container, install the stdio package where the assistant runs.

  • Login can be revoked. Use TTCraft Settings โ†’ Security to revoke the device. ttcraft-mcp logout removes the local credential.

Troubleshooting

Problem

What to check

Tools do not appear

Run the client command printed by setup, then reload MCP or restart the client.

Launcher not found

Reopen the terminal after installing Node. Use the absolute paths from setup.

Empty table list

Start the table and check Manage table permission.

Signed out

Ask the assistant to start browser sign-in and wait for approval.

Table needs an update

Save and restart it after the server upgrade. Do not bypass the compatibility check.

Operation timed out

Reconnect and inspect the result before repeating a change.

More help: full guide ยท report an issue.

Update or remove

Install the version listed in the guide again, then reload MCP. If the installation path changed, rerun setup and update the client configuration.

To remove it, delete ttcraft from your client's MCP settings and run npm uninstall --global ttcraft-mcp for a global installation. Revoke its device in TTCraft settings if you also want to end account access.

Development

See CONTRIBUTING.md for builds, tests and backend integration. Bug reports and ideas are welcome in Issues.

MIT ยฉ TTCraft.

Available Tools

37 tools
archives_exportA
Destructive

Export the whole table and assets to an absolute local ZIP path. Useful as a backup before major edits. Streams to disk and refuses to overwrite unless requested.

Inputs: output_path (required), table_id, overwrite.

archives_importA
Destructive

Load a local TTCraft ZIP archive into the shared table, REPLACING current objects. Requires Admin. Export a backup first. Reconnects after success. Never automatically retries the import.

Inputs: file_path (required), table_id.

assets_listB
Read-onlyIdempotent

Read/search the uploaded asset gallery (images, models, fonts, audio, PDFs) with pagination.

Inputs: limit, query, offset, table_id.

asset_uploadA
Destructive

Upload a local image/model/model ZIP/font/audio/PDF to the table gallery. Uses bounded-memory chunked uploads. Returns a library/assets path to reference in templates and objects. Path must be absolute.

Inputs: file_path (required), name, table_id.

auth_beginA

Start the same browser device-code sign-in as the VS Code extension. Opens a browser by default; disable on a headless host. Show the returned URL and code to the user, then call auth_poll after the indicated interval.

Inputs: open_browser.

auth_logoutA
Destructive

Disconnect all tables and remove the local login. Revocation on the TTCraft website is separate.

Inputs: no named parameters.

auth_pollA

Check browser approval once, respecting server polling intervals. Stores the token securely without exposing it to the model.

Inputs: no named parameters.

auth_statusA
Read-onlyIdempotent

Check TTCraft login and identity. Never returns credentials.

Inputs: no named parameters.

batch_executeA
Destructive

Run up to 100 native commands sequentially without interleaving other MCP commands. Prevalidates names. dry_run defaults true; set false to apply. Not atomic; returns completed steps on failure, with no automatic replay.

Inputs: commands (required), dry_run, table_id, stop_on_error.

blueprint_applyA
Destructive

Build/update a complete table from a validated blueprint: plan, templates, tracked objects, poses, properties and scripts. Stable id/key mappings persist locally. Dry run first; set dry_run=false to apply. Reapplying updates GUIDs without duplicating existing objects. Does not delete omitted objects or provide atomic rollback. Templates are cloned into standalone objects.

Inputs: blueprint (required), dry_run, table_id.

command_describeA
Read-onlyIdempotent

Read exact native command fields, required capability and reference handler from the bundled server source snapshot. Fields are inferred hints; use docs and the handler for types/defaults. Native commands may return no acknowledgement.

Inputs: command (required), offset, max_characters.

connections_statusA
Read-onlyIdempotent

Show active table, connections, protocol versions and granted capabilities.

Inputs: no named parameters.

console_readA
Read-onlyIdempotent

Read bounded console logs, including compilation/runtime errors. Pass after_cursor from the previous call. wait_ms optionally waits for new logs up to 20 seconds.

Inputs: wait_ms, table_id, after_cursor.

docs_readB
Read-onlyIdempotent

Read a bundled TTCraft manual page with character pagination. Examples: table-plan, table-archives, scripting, scripting-world, scripting-objects, scripting-ui, scripting-events.

Inputs: slug (required), offset, max_characters.

events_readA
Read-onlyIdempotent

Read table event history with a cursor (up to 500 retained messages). Filter by message types. Reports truncation; state_read/objects_list are the authoritative current state.

Inputs: types, wait_ms, table_id, after_cursor.

library_listA
Read-onlyIdempotent

Search library templates by name/category/id/kind. Includes scripts and large geometry only with details=true; script_read reads template scripts separately.

Inputs: limit, query, offset, details, +2 more.

library_saveA
Destructive

Create a template or update an existing template by id, preserving omitted fields from the cached full template. Changes may affect linked instances. Locked built-ins cannot be overwritten.

Inputs: spec (required), id, table_id.

modules_importA
Destructive

Additively merge one or more local TTCraft module ZIP archives. Supports per-package layout and optional table shape/global-script selection. Requires Admin. Reconnects after success.

Inputs: packages (required), table_id, table_shape_from, apply_global_script.

object_readA
Read-onlyIdempotent

Read one object by stable GUID or runtime id. refresh asks the server for current properties. Returns paginated JSON text.

Inputs: object (required), offset, refresh, table_id, +1 more.

objects_listB
Read-onlyIdempotent

Find objects by name, kind, GUID or id, including live positions and rotations. Paginated. details includes full properties.

Inputs: limit, query, offset, details, +1 more.

objects_lockC
Destructive

Lock or unlock a list of objects.

Inputs: locked (required), objects (required), table_id.

objects_moveA
Destructive

Place an object in metres with optional quaternion rotation [x,y,z,w] and scale [x,y,z]. Locked objects must be explicitly unlocked with objects_lock first. Inspect state afterwards to verify clamping/physics.

Inputs: object (required), scale, position, rotation, +1 more.

objects_patchA
Destructive

Patch appearance/physics/name properties on one or more objects. Properties follow setprops; use command_describe for exact fields. label is the display name.

Inputs: objects (required), properties (required), table_id.

objects_removeA
Destructive

Remove objects from the live shared table. Cascade rules include attached contents. Export a backup first when needed.

Inputs: objects (required), table_id.

objects_spawnA
Destructive

Spawn an object or a native linked library template. For a template, spawn fields come from the template; use objects_patch afterwards. Returns observed new objects, which can also include concurrent spawns by others. Use blueprint_apply for reliably tracked repeated builds.

Inputs: position (required), spec, table_id, template.

script_readA

Read a Global, object or template Lua script with SHA-256 for conflict detection. Page large source or write to an absolute output_path for local editing. Existing files are never overwritten.

Inputs: object, offset, target, table_id, +3 more.

script_writeA
Destructive

Compile and install Lua source on the live table. Supply exactly one of code/file_path. expected_sha256 checks the current source before writing. A compile failure returns isError and the previous script stays active. Read console afterwards.

Inputs: code, object, target, table_id, +3 more.

state_readA
Read-onlyIdempotent

Read a cached authoritative state section (table, zones, snaps, drawings, decals, players, groups, timemachine, policy, lighting, music, etc.). Omit section for a compact overview. Large sections are paged as JSON text.

Inputs: offset, section, table_id, max_characters.

table_commandA
Destructive

Run a native TTCraft command from the catalog. Read command_describe first. Supply protocol fields in arguments; object id must be a current runtime id. Server enforces all permissions and script vetoes. processed_unverified is not a success acknowledgement.

Inputs: command (required), table_id, arguments, timeout_ms, +1 more.

table_connectA
Read-onlyIdempotent

Connect to a running table and make it active. Supports multiple connected tables; pass table_id on later calls to select explicitly.

Inputs: table_id (required).

table_disconnectA
Read-onlyIdempotent

Disconnect this MCP client from a table. Does not shut down the shared table.

Inputs: table_id.

table_plan_applyA
Destructive

Apply the TTCraft declarative table plan: shape, seats, areas, snaps. Read table-plan docs first. Returns server validation errors/warnings. merge patches the stored plan.

Inputs: plan (required), merge, table_id.

table_reconnectA
Read-onlyIdempotent

Reconnect and get a fresh full state after connection loss. Does not replay commands.

Inputs: table_id (required).

table_saveA
Destructive

Create a named snapshot in the table server database (native savetable). This is separate from TTCraft account save slots. Use archives_export for a portable backup.

Inputs: name (required), table_id.

tables_listA
Read-onlyIdempotent

List TTCraft tables that your account can manage, with running status, room and channel.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    B3.4/5.0

    Scored across 37 tools

    Disambiguation3/5

    Most tools have clear resource/action targets, but several clusters overlap: table_command vs. batch_execute, commands_search vs. command_describe, and objects_spawn vs. blueprint_apply vs. table_plan_apply. The descriptions help distinguish intent, but an agent can still misselect among creation and command-execution paths.

    Naming Consistency4/5

    The set largely follows a predictable resource_action pattern (docs_search, objects_list, script_read, archive_export-style). Minor inconsistencies exist, such as singular/plural mixes (object_read vs. objects_list, asset_upload vs. assets_list) and a few noun_status or noun_noun names like connections_status and table_command.

    Tool Count3/5

    37 tools is heavy for most MCP servers, though this server covers a broad domain spanning auth, tables, objects, scripts, assets, archives, blueprints, and native commands. Each tool is reasonably purposeful, but the surface is at the borderline of being too large and could benefit from consolidation.

    Completeness4/5

    The surface is broad and covers core workflows well: docs, auth, table lifecycle, object CRUD, scripting, console/events, commands, blueprints, assets, archives, and snapshots. Minor gaps remain, such as no delete operations for library templates or uploaded assets, and no table creation operation, but most agents can work around these.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Integrates with FoundryVTT tabletop gaming sessions, allowing AI assistants to query game data, roll dice, generate content (NPCs, loot, encounters), manage combat, and provide tactical suggestions through natural language.
      8 npm
      -
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI assistants to develop Desynced mods by providing direct access to the game's Lua API reference, base-game source, live logs, and installed mods, plus live control via a debugger link for evaluating and reloading Lua in the running game.
      9
      2
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI assistants to interact with running games in real time โ€” introspecting game state, simulating keyboard and mouse input to actually play, capturing screenshots, executing Lua code, hot-reloading files, and receiving push notifications when state changes.
      8
      MIT