Skip to main content
Glama
CameronFoxly

ASCII Motion MCP

by CameronFoxly

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LIVEYesEnable live browser sync via WebSocket. Required for visual output. Set to 'true' to enable.true
PORTNoWebSocket port for live mode (default: 9876).9876
PROJECT_DIRNoProject directory for file operations (default: current working directory).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_cellA

Get the character and colors at a specific canvas position

set_cellA

Set the character and/or colors at a specific canvas position

clear_cellA

Clear a cell, resetting it to empty (space with transparent background)

set_cells_batchA

Set multiple cells in a single operation. More efficient than calling set_cell repeatedly.

paste_ascii_blockB

Paste a multi-line ASCII art block onto the canvas at a specified position. Great for pasting found ASCII art.

fill_regionB

Fill a region with a character and colors. Can be contiguous (flood fill) or global (all matching cells).

resize_canvasA

Resize the canvas. Content outside the new bounds will be clipped.

clear_canvasA

Clear all cells on the current frame, leaving it empty

list_framesA

List all frames in the animation with their metadata

add_frameC

Add a new frame to the animation

delete_frameA

Delete a frame from the animation. Cannot delete the last remaining frame.

duplicate_frameB

Duplicate a frame, inserting the copy immediately after the original

go_to_frameB

Navigate to a specific frame, making it the current/active frame

set_frame_durationB

Set the duration of a frame in milliseconds

set_frame_nameB

Set or change the name of a frame

new_projectA

Create a new empty project, discarding any unsaved changes

save_projectB

Save the current project to a .asciimtn file

load_projectA

Load a project from a .asciimtn file

get_project_infoC

Get information about the current project

set_project_nameC

Set the project name

list_project_filesB

List all .asciimtn project files in the project directory

get_canvas_summaryA

Get a compact summary of the canvas (dimensions, fill count, bounding box). Use this first to understand the canvas before requesting more detail.

get_canvas_previewB

Get non-empty cells in a region. Use for inspecting specific areas.

get_canvas_asciiA

Get the canvas as raw ASCII text (characters only, no color info). Good for verifying visual appearance.

get_frame_diffA

Get the cells that differ between two frames. Useful for understanding animation changes.

describe_animationA

Get a high-level description of the animation: frame count, timing, and motion patterns.

undoB

Undo the last action

redoA

Redo the last undone action

get_history_statusA

Check if undo/redo is available and what actions can be undone/redone

copy_frame_and_modifyA

Duplicate a frame and apply modifications in a single operation. Efficient for creating animation sequences.

shift_frame_contentA

Shift all content on the current frame by an x/y offset. Useful for creating scrolling or movement animations.

flip_regionB

Flip/mirror content horizontally or vertically

copy_region_to_frameC

Copy a region of cells from one frame to another

interpolate_framesC

Generate intermediate frames between two keyframes. Creates smooth transitions.

select_rectangleC

Select a rectangular region of the canvas

select_by_colorA

Select cells that match specific criteria (magic wand style)

get_selectionB

Get the current selection bounds and contents

clear_selectionA

Clear the current selection (deselect)

apply_to_selectionC

Apply an operation to all cells in the current selection

delete_selection_contentB

Delete all cell content within the current selection

export_textA

Export the current frame or all frames as plain text (.txt). Returns ASCII art as text.

export_jsonA

Export the project as structured JSON data. Good for programmatic processing.

export_sessionA

Export the project as an .asciimtn session file (can be loaded by Ascii-Motion app).

export_htmlB

Export the animation as a self-contained HTML file with embedded animation player.

export_reactB

Export the animation as a React component (JSX or TSX).

export_ansiB

Export the current frame with ANSI escape codes for terminal display.

apply_effectC

Apply a visual effect to the current frame or selection. Effects modify colors and/or characters.

get_color_statsA

Get statistics about colors used in the current frame. Useful before applying color effects.

batch_recolorB

Replace one color with another across the entire frame or selection.

batch_replace_charA

Replace one character with another across the entire frame or selection.

get_effect_blocksA

List all procedural effect blocks across layers, groups, and global effects. Shows effect type, timing, enabled status, and keyframe count.

add_effect_blockA

Add a non-destructive procedural effect to a layer, group, or global effects. Available types: levels, hue-saturation, remap-colors, remap-characters, scatter, wave-warp, wiggle.

update_effect_blockB

Update a procedural effect block's settings, timing, or enabled state.

remove_effect_blockB

Remove a procedural effect block from its owner (layer, group, or global).

add_effect_keyframeA

Add a keyframe to a procedural effect property. Creates the property track if it doesn't exist.

remove_effect_keyframeB

Remove a keyframe from a procedural effect property track.

run_generatorC

Generate procedural animation frames. Creates new frames with animated patterns.

preview_generatorA

Preview a single frame from a generator without applying to the project.

export_inkA

Export the current frame as an Ink (React CLI) component for Node.js terminal apps.

export_bubbleteaA

Export the current frame as a Bubbletea (Go TUI) component.

export_opentuiB

Export the current frame as an OpenTUI (Python TUI) component.

import_imageB

Import an image file and convert it to ASCII art on the canvas. Requires optional "sharp" or "jimp" package for image processing.

import_videoB

Import a video file and convert each frame to ASCII art animation. Requires ffmpeg and optional image processing package.

import_ascii_textC

Import ASCII art from a plain text file onto the canvas.

list_character_palettesA

List all available character palettes for ASCII art.

get_character_paletteA

Get all characters from a specific palette.

list_color_palettesB

List all available color palettes.

get_color_paletteB

Get all colors from a specific palette.

get_active_colorsA

Get the currently active foreground and background colors.

set_foreground_colorB

Set the active foreground (text) color.

set_background_colorB

Set the active background color.

set_selected_characterB

Set the active character used for drawing.

suggest_palette_for_styleC

Get palette recommendations for a specific style.

refresh_state_from_browserA

Request the browser to send its current state. Use this before reading canvas data to ensure you have the latest state. Returns success if browser is connected and responded.

compare_framesB

Compare two frames and show what cells changed between them. Useful for understanding motion and edits in an animation.

get_layersA

Get all layers in the project with their metadata, content frame count, and property track info.

add_layerA

Add a new layer to the project. If project is in legacy frame mode, this switches it to layer mode.

remove_layerA

Remove a layer by ID. Cannot remove the last remaining layer.

duplicate_layerA

Duplicate a layer with all its content frames and property tracks.

set_active_layerA

Set which layer is active for drawing and editing operations.

rename_layerB

Rename a layer.

reorder_layersB

Move a layer from one z-order position to another. Index 0 = bottom layer.

set_layer_visibilityC

Set visibility, solo, lock, or opacity on a layer.

add_content_frameB

Add a new content frame (canvas data segment) to a layer at a specific timeline position.

remove_content_frameB

Remove a content frame from a layer.

add_keyframeA

Add a keyframe to a layer property track. Creates the property track if it doesn't exist.

remove_keyframeC

Remove a keyframe from a property track.

get_layer_propertiesA

Get all transform property values for a layer at the current frame, including keyframe status.

create_groupB

Create a layer group to organize layers together.

ungroup_layersA

Dissolve a layer group, keeping the layers.

set_frame_rateA

Set the timeline frame rate (FPS). Preserves frame count — only changes playback speed.

set_timeline_durationA

Set the total timeline duration in frames.

get_connection_statusA

Check browser connection status. Returns whether browser is connected and client count

get_auth_tokenA

Get the authentication token for browser connection.

export_imageA

Export the current frame as an image (PNG, JPG, or SVG). The browser renders the image at full quality. Requires live mode with a connected browser.

export_videoA

Export the animation as a video file (MP4 or WebM). The browser renders each frame and encodes the video. Requires live mode with a connected browser.

Prompts

Interactive templates invoked by user choice

NameDescription
create-animationCreate a simple animation with multiple frames
import-and-animateImport an image and create an animation from it
generate-rainGenerate a digital rain (Matrix-style) animation
create-bannerCreate an animated text banner or logo
apply-effectsApply visual effects to existing ASCII art
export-for-cliExport ASCII art for use in terminal/CLI applications
add-effectsAdd procedural (non-destructive) effects to an animation for color adjustments, distortions, or character remapping

Resources

Contextual data attached and managed by the client

NameDescription
project-stateCurrent project state including canvas, frames, and settings. Returns a complete snapshot.
project-canvasCurrent frame canvas data as a sparse map of cell positions to cell data.
project-framesList of all animation frames with their metadata (id, name, duration, cell count).
project-selectionCurrent selection state including type and selected cells.
project-historyUndo/redo history status including available actions.
project-asciiPlain text ASCII art preview of the current frame.
project-layersLayer structure with content frames, property tracks, and groups. Only available in layer mode (v2).
guide-llm-best-practicesBest practices for LLMs using ASCII Motion MCP. Read before complex animation tasks.
guide-tool-categoriesQuick reference of all available tool categories.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CameronFoxly/ascii-motion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server