← All WebMCP sites

sema.run

Developer Toolshttps://sema.run/listed as of 2026-08-01
Try Sema in the browser — a Lisp with first-class LLM primitives. No install required, runs entirely in WebAssembly.
See Ora's auditWe loaded this site in a real browser and scored its tools. Score: 72/100 (B).

Tools

read_editoranswerimperative
Read Sema source from the playground editor. Use this before editing or running unfamiliar code.
Input schema
{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Zero-based character offset at which to start reading."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12000,
      "default": 1500,
      "description": "Maximum number of characters to return."
    }
  },
  "additionalProperties": false
}
write_editoractimperative
Replace the playground editor contents with Sema source code.
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "Complete Sema source to place in the editor."
    }
  },
  "additionalProperties": false,
  "required": [
    "code"
  ]
}
format_editoractimperative
Format the current Sema source in the playground editor.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
run_editoractimperative
Run the current Sema source and wait for evaluation to finish.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
stop_runactimperative
Cancel the active worker-backed Sema evaluation when one is running.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
read_outputanswerimperative
Read the current playground output, including values, printed lines, errors, and timing.
Input schema
{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Zero-based character offset at which to start reading."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12000,
      "default": 1500,
      "description": "Maximum number of characters to return."
    }
  },
  "additionalProperties": false
}
find_examplesanswerimperative
Find bundled Sema examples by filename, category, or identifier.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "default": "",
      "description": "Case-insensitive text used to filter examples."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10,
      "description": "Maximum examples to return."
    }
  },
  "additionalProperties": false
}
load_exampleactimperative
Load one bundled Sema example into the editor by identifier or filename.
Input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Example identifier such as getting-started/hello.sema or hello.sema."
    }
  },
  "additionalProperties": false,
  "required": [
    "id"
  ]
}
list_filesanswerimperative
List one directory in the playground virtual filesystem.
Input schema
{
  "type": "object",
  "properties": {
    "dir": {
      "type": "string",
      "default": "/",
      "description": "Absolute virtual directory path to list."
    }
  },
  "additionalProperties": false
}
read_fileanswerimperative
Read a UTF-8 text file from the playground virtual filesystem.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Absolute virtual file path to read."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Zero-based character offset at which to start reading."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12000,
      "default": 1500,
      "description": "Maximum number of characters to return."
    }
  },
  "additionalProperties": false,
  "required": [
    "path"
  ]
}
write_fileactimperative
Create or replace a UTF-8 text file in the playground virtual filesystem.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Absolute virtual file path to create or replace."
    },
    "content": {
      "type": "string",
      "maxLength": 1048576,
      "description": "UTF-8 text content, limited to 1 MiB."
    }
  },
  "additionalProperties": false,
  "required": [
    "path",
    "content"
  ]
}
set_breakpointsactimperative
Replace the debugger breakpoints with the requested one-based source lines.
Input schema
{
  "type": "object",
  "properties": {
    "lines": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1
      },
      "uniqueItems": true,
      "description": "One-based editor line numbers on which to pause."
    }
  },
  "additionalProperties": false,
  "required": [
    "lines"
  ]
}
start_debuggingactimperative
Start debugging the current Sema source and wait for a pause, finish, or error.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
continue_debuggingactimperative
Continue the paused Sema debugger and wait for its next stable state.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
step_debuggeractimperative
Step the paused Sema debugger into, over, or out and wait for its next stable state.
Input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "into",
        "over",
        "out"
      ],
      "description": "Debugger stepping mode."
    }
  },
  "additionalProperties": false,
  "required": [
    "mode"
  ]
}
stop_debuggingactimperative
Stop the active Sema debugger and return the playground to its idle state.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_debug_stateanswerimperative
Read debugger status, active line, breakpoints, locals, and stack frames.
Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Listings are sourced from public community registries and shown as reported.