Check the operational status of the NOAA and Open-Meteo weather APIs. Use this when experiencing errors or to proactively verify service availability before making weather data requests. Returns current status, helpful messages, and links to official status pages.

Get active weather alerts, watches, warnings, and advisories for a location. Coverage: the United States (NOAA), Canada (Environment and Climate Change Canada), European MeteoAlarm member countries (official national warnings, matched at country level — regional filtering within a European country is not yet available), and India (NDMA SACHET), the Philippines (PAGASA), and Indonesia (BMKG) via their official national CAP feeds — matched to your exact point by the alert polygon in the Philippines and Indonesia, and listed at country level with an explicit note in India, whose geometry is published from a separate endpoint that is not reliably reachable. With an optional `GOOGLE_WEATHER_API_KEY`, official alerts are also available for ~45+ more territories (Australia, Japan, Brazil, Mexico, and others) via the Google Weather API. Use this for safety-critical weather information when asked about "any alerts?", "weather warnings?", "is it safe?", "dangerous weather?", or "weather watches?". Returns severity, urgency, certainty, effective/expiration times, and affected areas where the source provides them. Provide the location as coordinates (latitude+longitude), a saved location_name, or a free-text city_name. For forecast data, use get_forecast instead. If this tool returns an error, check the error message for status page links and consider using check_service_status to verify API availability.

Whether to show only active alerts (default: true)

Free-text place name to geocode (e.g., "Paris, France", "Bend, Oregon"). Use instead of coordinates when you only have a place name and it is not a saved location. Include state/country for disambiguation when possible.

Output verbosity: "summary" (shortest), "standard" (default, balanced), or "full" (everything the source provides, e.g. full alert descriptions, uncapped hourly forecast, embedded imagery).

Latitude of the location (-90 to 90). Not required if location_name or city_name is provided.

Name of a saved location (e.g., "home", "cabin"). Use instead of coordinates to reference a saved location. List them with list_saved_locations.

Longitude of the location (-180 to 180). Not required if location_name or city_name is provided.

Get the most recent weather observation for a location (global coverage). Use this for current weather or when asking about "today's weather", "right now", or recent conditions without a specific historical date range. Returns NOAA station observations for US locations and Open-Meteo model data for international locations. Optionally includes fire weather indices: NOAA fire-weather indices (Haines Index, Grassland Fire Danger, Red Flag Threat) for US locations, or a computed Fosberg Fire Weather Index with dryness context elsewhere, when requested. Automatically includes frostbite-risk and heat-stress (WBGT) context when conditions are extreme. Provide the location as coordinates (latitude+longitude), a saved location_name, or a free-text city_name. For specific past dates or date ranges, use get_historical_weather instead. If this tool returns an error, check the error message for status page links and consider using check_service_status to verify API availability.

Override distance/visibility/elevation unit: "mi" or "km".

US locations get NOAA fire-weather indices (Haines, grassland, red-flag); elsewhere a computed Fosberg Fire Weather Index with dryness context. (default: false)

Include climate normals (30-year averages) for comparison with current conditions (default: false). Shows normal high/low temperatures and precipitation, with departure from normal. For US locations, also shows the record high/low for the date and the year it was set.

Override precipitation unit: "inch" or "mm".

Override pressure unit: "inHg" or "hPa".

Data source: "auto" (default, selects NOAA for US or Open-Meteo for international), "noaa" (US only), "openmeteo" (global), or "metar" (global airport station observations). Choose "metar" when the user wants an ACTUAL or REAL observation rather than a model estimate — "what is the station actually reporting?", "measured", "observed conditions", "METAR", "airport weather", "flight category", "raw observation". It is the only source that returns real instrument readings outside the US. It reports from the nearest airport, which may be tens of kilometers from the requested point, and always states the station, its distance, and the age of the observation.

Override temperature unit: "F" or "C".

Clock format for times: "12h" or "24h".

Unit system for output: "imperial" (°F, mph, inHg) or "metric" (°C, km/h, hPa). Defaults to the server setting (imperial unless configured otherwise). Individual *_unit overrides below take precedence.

Override wind speed unit: "mph", "kmh", "ms", or "kn" (knots).

Get future weather forecast for a location (global coverage). Use this for upcoming weather predictions (e.g., "tomorrow", "this week", "next 7 days", "hourly forecast"). Returns forecast data including temperature, precipitation, wind, conditions, and sunrise/sunset times. Supports both daily and hourly granularity. Automatically selects best data source: NOAA for US locations (more detailed), Open-Meteo for international locations. For current weather, use get_current_conditions. For past weather, use get_historical_weather. Provide the location in ONE of three ways: coordinates (latitude+longitude), a saved location name (location_name="home"), or a free-text city name (city_name="Paris, France") which is geocoded automatically. Can compare multiple global weather models with compare_models=true to gauge forecast confidence, or ensemble_spread=true for one model's own spread. If this tool returns an error, check the error message for status page links and consider using check_service_status to verify API availability.

Compare 5 global weather models (GFS, ECMWF, ICON, GEM, UKMO) and summarize their agreement/divergence instead of a single forecast. Use when asked how confident or certain a forecast is, or whether models agree. Daily granularity only; always Open-Meteo (default: false).

Number of days to include in forecast (1-16 for global, 1-7 for US NOAA, default: 7)

Show one model's ensemble spread (ECMWF ENS, 50 members) instead of a single forecast — how confident the model itself is, day by day. Use when asked how certain/uncertain the forecast is. Daily only; always Open-Meteo (default: false).

Forecast granularity: "daily" for day/night periods or "hourly" for hour-by-hour detail (default: "daily")

Include astronomy details for each forecast day (default: false, daily forecasts only). Use when asked about the moon phase, a full moon or new moon, moonrise/moonset, golden hour, twilight, or "when does it get dark". Adds moon phase, illumination, moonrise/moonset, civil/nautical/astronomical twilight times, and the next full/new moon dates.

Include climate normals (30-year averages) for comparison with forecasted temperatures (default: false, daily forecasts only). Shows normal high/low and departure from normal for the first forecast day. For US locations, also shows the record high/low for the date and the year it was set.

Include precipitation probability in the forecast output (default: true)

Include severe weather probabilities such as thunderstorm chance, wind gust probabilities, and tropical storm/hurricane risks (default: false, US/NOAA only)

Data source: "auto" (default, selects NOAA for US or Open-Meteo for international), "noaa" (US only), or "openmeteo" (global)

Override temperature unit: "F" or "C".

Clock format for times: "12h" or "24h".

Get a combined weather overview for a location in a SINGLE call. Best for broad questions like "What's the weather like in Seattle?", "Is it safe to hike today?", or "Give me a weather rundown". Aggregates current conditions, forecast, and active alerts by default, and can also include air quality and lightning. Provide the location as coordinates (latitude+longitude), a saved location_name, or a free-text city_name. For a single specific data product (just the forecast, just alerts, etc.), call that specialized tool directly. Sections that are unavailable for a location (e.g. alerts in a country not yet covered) are noted rather than failing the whole summary.

Number of forecast days to include when the forecast section is requested (1-16 for global, 1-7 for US NOAA, default: 7)

Which sections to include (default: ["current", "forecast", "alerts"]). Add "air_quality" and/or "lightning" for a fuller picture.

current forecast alerts air_quality lightning

Override temperature unit: "F" or "C".

Clock format for times: "12h" or "24h".

Search for locations by name to get coordinates for weather queries. Uses Nominatim (OpenStreetMap) for excellent coverage of cities, towns, villages, and hamlets worldwide. Use this when the user provides a location name instead of coordinates (e.g., "Paris", "New York", "Tokyo", "San Francisco, CA", "Small Village, County"). Returns location matches with coordinates, timezone, elevation, and other metadata. Enables natural language location queries like "What's the weather in Paris?" by converting location names to coordinates.

Maximum number of results to return (1-100, default: 5)

Location name to search for (e.g., "Paris", "New York, NY", "Tokyo")


forget

Delete a fact by number (from recall), by range (e.g. '3-30', inclusive), or by text search. Protected facts (remember with keep=true) are skipped unless force=true.

Also delete protected (keep) facts

Number, range like '3-30', or text to search for

'project' (default) or 'global'

Get the full text and metadata of a single fact by its metadata id.

The unique metadata id of the fact (e.g. '8f3a2c')

'project', 'global', or 'all' (default)

Ingest a document into the RAG knowledge base. Accepts local file paths, web URLs, or raw Markdown/text content. For type='file' the file is read from disk and indexed with a code-block wrapper. For type='url' the page is fetched and its content is indexed (not just the URL). Processes document through 3-tier hierarchy chunking (Big/Medium/Small), computes dense vectors, and extracts GraphRAG code symbols.

Raw text content, file path, or web URL. For type='file' this can be the file path (reads from disk) or the file content directly

Compute dense vector embeddings

Original document file path

Document title

Input content type: 'text' (raw content), 'file' (reads from disk, wraps in code block), or 'url' (fetches page content)

Explicitly link a Notebook memory fact to a Knowledge Base document, section, or line range. Creates Agent-driven Graph Edges connecting memory to RAG documents.

Action type

Document ID, title, or file path

Ending line number in target document

Memory fact text or keyword

Relation type (e.g. 'RULES_FOR', 'IMPLEMENTS', 'EXPLAINS')

'project' (default) or 'global'

Starting line number in target document

Link the current directory to a Git-based project identity, register aliases, and optionally migrate legacy/path stores.

Directory path to link (default: current directory)

Optional explicit remote URL to use as primary identity key

Manage the RAG knowledge base: inspect stats, list documents, read full raw document, delete documents, or export/import snapshots.

Management action

Document ID, title, or path (required for read_document and delete)

File path for snapshot export/import

Show memory storage paths (store file locations, MEMORY_DIR, SQLite DB), fact counts, Knowledge Base stats, and the installed package version.

Perform hybrid search (RSF/RRF BM25 full-text + dense vector similarity) across the RAG knowledge base. Returns top-ranked candidate document sections with breadcrumbs, GraphRAG defined code symbols, and relevance scores.

Use vector search alongside BM25

Optional task-specific retrieval instruction shaping embedding focus (e.g. 'Retrieve code snippets', 'Find user preferences'). Recommended when using E5/BGE models for domain-specific queries.

Maximum number of sections to return

Search query in natural language or symbol name

recall

Show saved facts with any Agent-linked Knowledge Base documents/lines. scope: 'project', 'global', 'all' (default), or 'list_projects'. Use project: '<directory path>' with scope 'project'/'all' to read facts of a specific project from any working directory. query filters by keyword (all space-separated terms must match). tags filters by comma-separated tags. since/until filter by date (YYYY-MM-DD, inclusive). Expired facts are shown with [EXPIRED], protected ones with [KEEP]. The response includes the store file paths.

Pagination limit (optional)

Result mode: 'full' (with body, default) or 'headers' (title and badges only)

Pagination offset (optional)

Directory path of the project to read facts from (e.g. 'F:/projects/plugins/memory')

Optional keyword filter; all space-separated terms must match

'project', 'global', 'all', or 'list_projects'

Optional start date filter, YYYY-MM-DD (inclusive)

Optional comma-separated tag filter (any match)

Optional end date filter, YYYY-MM-DD (inclusive)

Move or merge project memories from the current identity to a new target identity.

Directory path to relink (default: current directory)

New target remote URL / identity key to move memories to

remember

Save an important, durable fact to memory. Only use for high-signal information (name, goals, constraints, tech preferences, project conventions). docId/startLine/endLine/relationType are OPTIONAL and only used to link the fact to a Knowledge Base document or line range; omit them when no linking is needed. ttl is OPTIONAL (e.g. '90d', '2w', '24h') — expired facts are shown with [EXPIRED] but not auto-deleted. keep=true protects the fact from forget deletion unless force=true. tags is OPTIONAL comma-separated text for filtering. supersedes is OPTIONAL: a number (from recall), id, or text of a fact this one replaces; the target is then marked [SUPERSEDED]. Translate the fact into English and keep it concise. scope: 'project' (default) or 'global'

Optional document ID, title, or path to link this fact to

Optional ending line number in target document

The fact to remember, written in English

Protect the fact from forget deletion unless force=true

Relation type (e.g. 'RULES_FOR', 'IMPLEMENTS', 'REFERENCES')

'project' (default) or 'global'

Optional starting line number in target document

Optional number, id, or text of the fact this one replaces

Optional comma-separated tags, e.g. 'pref,arch'

Optional title for the fact. If not specified, one is auto-generated.

Optional time-to-live, e.g. '90d', '2w', '24h', '12m'

Remove the path alias link for the specified project directory.

Directory path to unlink (default: current directory)

If true, completely purge the project identity from the SQLite store

Update the text of an existing fact by number (from recall), id, or text match, preserving its original date and metadata. Linked Knowledge Base documents are re-pointed to the new text.

Number (from recall), metadata id, or text of the fact to update

New fact text

'project' (default) or 'global'

Optional new title for the fact


Used to setup a custom theme for your Chakra UI. You can define new tokens or modify existing ones.

The category of the token to customize

aspectRatios animations blurs borders colors durations easings fonts fontSizes fontWeights letterSpacings lineHeights radii spacing sizes zIndex cursor breakpoints conditions layerStyles textStyles globalCss

Retrieve comprehensive example code and usage patterns for a specific Chakra UI component. This tool provides practical implementation examples including basic usage, advanced configurations, and common use cases with complete code snippets.

The name of the Chakra UI component to get example code for

absolute-center accordion action-bar alert aspect-ratio avatar badge bleed blockquote box breadcrumb button card carousel center checkbox checkbox-card checkmark circle client-only clipboard code code-block collapsible color-picker color-swatch combobox container data-list date-input date-picker dialog download-trigger drawer editable em empty-state environment field fieldset file-upload flex float floating-panel focus-trap for format grid group heading highlight hover-card icon image input input-addon input-element input-group kbd link list listbox loader locale mark marquee menu native-select number-input pagination pin-input popover portal presence progress progress-circle qr-code quote radio-card radio-group radiomark rating-group scroll-area segment-group select separator show simple-grid skeleton skip-nav slider spacer span spinner splitter square stack stat status steps sticky strong switch table tabs tag tags-input text textarea timeline toast toggle tooltip tree-view visually-hidden wrap close-button overlay password-input prose radio rating rich-text-editor segmented-control theme toaster hstack vstack area-chart bar-chart bar-list bar-segment donut-chart line-chart pie-chart radar-chart radial-chart scatter-chart sparkline

Get detailed properties of a specific Chakra UI component. This tool retrieves the properties, attributes, design related props for a component, like size, variant, etc. and configuration options available for a given Chakra UI component.

The name of the Chakra UI component to get properties for

Retrieve the theme specification (colors, fonts, textStyles, etc.) to design any page, component or section

installation

Get lightweight installation steps for Chakra UI when using Vite, Next.js App Router, Next.js Pages Router, or general setup.

The framework you're using: vite, next-app, next-pages, or general

List all available components in Chakra UI. This tool retrieves the names of all available Chakra UI components.

ALWAYS use this tool to review any generated code. This tool helps you get familiar with the new Chakra UI v3 API before/after code snippets for common migration scenarios to help avoid AI hallucination.

The migration scenario to get guidance for


Delete Deployment

Permanently delete a deployment and its files. You MUST confirm with the user before calling this tool, referencing the deployment.

Deployment hostname to delete (e.g. "happy-cat-abc1234.shipstatic.com")

Delete Deployment

Get Deployment

Get deployment details including URL, status, file count, size, labels, and password protection state.

Deployment hostname (e.g. "happy-cat-abc1234.shipstatic.com"). Returned by deployments_upload or deployments_list.

Get Deployment

List Deployments

List all deployments with their URLs, status, labels, and password protection state. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.

Opaque position from the previous response's `cursor` field; omit for the first page.

Maximum number of items to return in one page. Omit for the server default.

List Deployments

Update Deployment Labels

Update deployment labels. Replaces all existing labels.

Deployment hostname (e.g. "happy-cat-abc1234.shipstatic.com"). Use deployments_list to find deployments.

Labels to set. Replaces all existing labels. Pass empty array to clear.

Update Deployment Labels

Deploy Static Site

Deploy a static site instantly — free, no account or API key required. Returns the live URL, file count, and size. Without SHIP_TOKEN, the response includes a claim URL (site expires in 3 days) — always show both the deployment URL and claim URL to the user. To make the site private, pass `password`; always show the password to the user if you set one.

Makes this deploy replayable instead of repeatable. A deploy is not naturally idempotent: if a call times out you cannot tell "it never landed" from "it landed and the response was lost", and retrying creates a second deployment. Send the same key on the retry and the original deployment is replayed instead (within 24 hours). Key the ATTEMPT — a run id, a commit sha, a uuid minted before the first try — never one minted fresh on each retry, which would defeat the point.

Labels for organizing deployments (e.g. ["production", "v1.2"]). Lowercase, 3-25 chars, allows . _ - separators. Up to 10.

Optional password to gate the deployment behind an unlock prompt (6–128 characters; whitespace significant). Visitors must enter this password before viewing the site, including on any custom domains pointing at it.

Absolute path to the build output directory to deploy (e.g. "/Users/me/project/dist")

Seconds until this deployment expires and the platform reclaims it; omit for one that never does. Only for authenticated deploys — an anonymous deployment already expires on the platform's schedule, and a requested ttl on one is refused. A deployment carrying a ttl cannot be linked to a custom domain: deploy without one if the site needs a domain.

Deploy Static Site

Delete Domain

Permanently delete a domain. You MUST confirm with the user before calling this tool, referencing the domain name.

Domain name to delete (e.g. "www.example.com")

Delete Domain

Look Up DNS Provider

Look up the DNS provider for a domain (e.g. Cloudflare, Namecheap). Helps the user know where to configure their DNS records.

Domain name to look up DNS provider for (e.g. "www.example.com")

Look Up DNS Provider

Get Domain

Get domain details including URL, linked deployment, verification status, and labels.

Domain name (e.g. "www.example.com"). Use domains_list to find names.

Get Domain

List Domains

List all domains with their URLs, linked deployment, and verification status. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.

List Domains

Get DNS Records

Get the DNS records the user needs to configure at their DNS provider. Call after domains_set. You MUST show the returned records to the user.

Domain name. Must be a domain previously created with domains_set.

Get DNS Records

Connect Custom Domain

Create or update a custom domain. Can reserve a name (omit deployment), link it to a deployment, switch deployments, or update labels. After creating, call domains_records and show the DNS records to the user.

Deployment to serve on this domain (e.g. "happy-cat-abc1234.shipstatic.com"). Omit to reserve the domain without linking.

Domain name (e.g. "www.example.com" or "blog.example.com")

Labels for organizing domains (e.g. ["production"]).

Connect Custom Domain

Share DNS Setup

Get a shareable DNS setup link for a domain. Share the link with the user so they, or whoever manages their DNS, can view the required records without needing an API key.

Domain name to generate a share link for. Must be a domain previously created with domains_set.

Share DNS Setup

Check Domain Availability

Check if a domain name is valid and available before creating it. Returns the normalized form and availability.

Domain name to check (e.g. "www.example.com"). Call before domains_set to check availability.

Check Domain Availability

Verify Domain DNS

Trigger DNS verification for a custom domain. Call after the user has configured DNS records from domains_records. Verification is asynchronous — the domain status updates once DNS propagates.

Domain name to verify DNS for. Must be a domain previously created with domains_set.

Verify Domain DNS

whoami

Show Account

Show authenticated account details including email, plan, and usage.

Show Account


Align elements to a specific position

Create multiple Excalidraw elements at once. For arrows, use startElementId/endElementId to bind arrows to shapes — Excalidraw auto-routes to element edges. Assign custom id to shapes so arrows can reference them.

Arrowhead style at end: arrow, bar, dot, triangle, or null

For arrows: ID of element to bind arrow end to

Font family: virgil/hand/handwritten (1), helvetica/sans/sans-serif (2), cascadia/mono/monospace (3), excalifont (5), nunito (6), lilita/lilita one (7), comic shanns/comic (8), or numeric ID

Custom element ID. Arrows can reference this via startElementId/endElementId.

Arrowhead style at start: arrow, bar, dot, triangle, or null

For arrows: ID of element to bind arrow start to

Stroke style: solid, dashed, dotted

rectangle ellipse diamond arrow text freedraw line image

Clear all elements from the canvas

Create a new Excalidraw element. For arrows, use startElementId/endElementId to bind to shapes (auto-routes to edges).

For arrows: ID of the element to bind the arrow end to. Arrow auto-routes to element edge.

Custom element ID (optional, auto-generated if omitted). Use with startElementId/endElementId in batch_create_elements.

For arrows: ID of the element to bind the arrow start to. Arrow auto-routes to element edge.

Stroke style: solid, dashed, dotted

Convert a Mermaid diagram to Excalidraw elements and render them on the canvas

Optional Mermaid configuration

The Mermaid diagram definition (e.g., "graph TD; A-->B; B-->C;")

Delete an Excalidraw element

Get an AI-readable description of the current canvas: element types, positions, connections, labels, spatial layout, and bounding box. Use this to understand what is on the canvas before making changes.

Distribute elements evenly

Duplicate elements with a configurable offset

IDs of elements to duplicate

Horizontal offset (default: 20)

Vertical offset (default: 20)

Export the current canvas to .excalidraw JSON format. Optionally write to a file; a path ending in .md is written in the Obsidian Excalidraw plugin format (.excalidraw.md).

Optional file path to write the scene to (.excalidraw for raw JSON, .excalidraw.md for the Obsidian Excalidraw plugin format)

Export the current canvas to a shareable excalidraw.com URL. The diagram is encrypted and uploaded; anyone with the URL can view it. Returns the shareable link.

Export the current canvas to PNG or SVG image. Requires the canvas frontend to be open in a browser.

Include background in export (default: true)

Optional file path to save the image

Image format

Take a screenshot of the current canvas and return it as an image. Requires the canvas frontend to be open in a browser. Use this to visually verify what the diagram looks like.

Include background in screenshot (default: true)

Get a single Excalidraw element by ID

The element ID

Get an Excalidraw resource

Group multiple elements together

Import elements from a .excalidraw JSON file, an Obsidian .excalidraw.md file, or raw JSON data

Raw .excalidraw JSON string (alternative to filePath)

Path to a .excalidraw JSON or Obsidian .excalidraw.md file

"replace" clears canvas first, "merge" appends to existing elements

Lock elements to prevent modification

Query Excalidraw elements with optional filters

Bounding box filter — only return elements whose origin (x, y) falls within the given coordinate range

Returns a comprehensive design guide for creating beautiful Excalidraw diagrams: color palette, sizing rules, layout patterns, arrow binding best practices, diagram templates, and anti-patterns. Call this before creating diagrams to produce professional results.

Restore the canvas from a previously saved named snapshot

Name of the snapshot to restore

Control the canvas viewport (camera). Auto-fit all elements, zoom-to-fit a subset of elements, center on a specific element, or set zoom/scroll directly. Requires the canvas frontend open in a browser.

Horizontal scroll offset

Vertical scroll offset

Auto-fit all elements in view (zoom-to-fit)

Center the view on a specific element by ID

Zoom-to-fit the bounding box of one or more elements by ID; every ID must exist

Optional fit-to-viewport zoom factor in the range (0, 1] for scrollToContent or scrollToElementIds; lower values leave more padding

Zoom level (0.1–10, where 1 = 100%)

Save a named snapshot of the current canvas state for later restoration

Name for this snapshot

Ungroup a group of elements

Unlock elements to allow modification

Update an existing Excalidraw element


Compute workflow metrics, velocity, burndown, cognitive load, decision lineages, and contradiction audits. Supported actions: summary (project overview), velocity (throughput and duration), burndown (time-series remaining tasks chart), value_metrics (token savings and ROI), cognitive_load (ICL and ECL context complexity), critical_path (longest unfinished task chain), context_snapshot (consolidated overview), decision_trail (trace decision lineage), find_related_decisions (find decisions related to an artifact), contradictions (audit for conflicting decisions or broken states).

The analytics or decision analysis action to execute.

Artifact node ID for find_related_decisions.

Number of historical days for burndown (default: 14).

Milestone ID for critical_path calculation.

Decision node ID for decision_trail.

Target project name or slug.

Number of days to analyze for velocity (default: 14).

Get Analytics

Inspect the append-only event audit ledger, query structured changesets, and generate session post-mortems. Supported actions: log (query event ledger with filters), changelog (get structured graph diff since timestamp or session), post_mortem (analyze a session and produce a structured markdown report).

The event query action to execute.

Git branch filter for changelog.

Maximum events to return (1-1000).

Pagination offset for log.

Target project name or slug.

Session ID for log or post_mortem.

ISO timestamp or relative duration (e.g. 2h, 1d) for log or changelog.

Session ID to diff from for changelog.

Ending ISO timestamp for log.

Get Events

Export and import graph structures, issue tracker items, fine-tuning trajectories, and multimodal synergy metrics. Supported actions: export_graph (export to JSON/DOT/Mermaid/HTML), export_issues (export to GitHub/Jira JSON), export_trajectories (export JSONL fine-tuning data), export_joint_trajectories (export interleaved state + vision data), export_synergy_metrics (compute dual-memory metrics), import_graph (bulk import nodes & edges), import_issues (import GitHub/Jira issues), import_spec (import PRD/Gherkin spec).

The data export or import action to execute.

Array of edge objects for import_graph.

File path for import_spec.

Force overwrite during import.

Data format.

json dot mermaid html github jira markdown gherkin openspec

Array of issue objects for import_issues.

Maximum items to export (1-1000).

Array of node objects for import_graph.

Offset for trajectories.

Target project name or slug.

Session ID filter for trajectories.

Start timestamp for trajectories.

End timestamp for trajectories.

Manage Data

Physical SQLite database maintenance, backups, integrity checks, and Git VCS state sync. Supported actions: backup (online SQLite backup), restore (destructive restore from backup), audit (foreign keys and physical integrity check), merge (merge external SQLite state DB), branch_diff (diff state nodes across git branches), branch_merge (resolve graph conflicts during branch merge).

The database administration or VCS sync action to execute.

Source backup file path for restore.

Force overwrite during restore or merge.

Target destination file path for backup.

Target project name or slug.

Conflict resolution strategy for branch_merge.

Source SQLite database path for merge.

Source git branch for branch_merge.

Target git branch to compare or merge against.

Manage Database

Manage typed graph relationships between nodes. Supported actions: add (create typed relationship), remove (delete relationship), batch_add (create multiple relationships atomically), link_visual (link task or artifact to visual memory state).

The edge management action to execute.

Array of edge objects for batch_add.

Optional metadata for link_visual.

Target project name or slug.

Optional metadata properties for the edge.

Relationship type for link_visual (e.g. renders_state, blocked_by_visual_state).

ID of the source node.

Optional URL where the visual state was captured.

ID of the target node.

The semantic relationship type.

Optional text description for the visual state.

Visual Memory snapshot/state ID for link_visual.

Manage Edges

Manage graph nodes in the state graph. Supported actions: create (add single node), update (modify node properties), get (fetch node with edges), remove (delete node and cascade edges), list (filter nodes), search (FTS5 or TF-IDF search), batch_create (create multiple nodes atomically), batch_update (update multiple nodes atomically), add_note (log observation node with optional context link).

The node management action to execute.

Search algorithm for search action.

Node ID to attach observation note to via references edge.

Whether to return a lightweight compact summary.

Optimistic concurrency version check for update.

Git branch filter.

Unique node identifier for get, update, or remove.

Array of node IDs for batch_update.

Whether to include inbound/outbound edges on get.

Maximum number of items to return (1-1000).

Arbitrary structured key-value metadata.

Array of node payloads for batch_create.

Number of items to skip for pagination.

Target project name or slug.

Search term for full-text search.

Active session identifier for change attribution.

Status of the node (e.g. pending, in_progress, done, blocked, active, accepted, current).

Array of searchable tags.

Text note content for add_note.

Title or label of the node.

The type classification of the node.

task decision artifact plan milestone blocker observation spec requirement acceptance_criterion visual_state

Manage Nodes

Manage agent tracking sessions and multi-turn workflow attribution. Supported actions: start (begin tracked session), end (conclude session), list (view active/historical sessions), bootstrap (single-turn start + context snapshot + next tasks).

The session management action to execute.

Whether to return only active unclosed sessions on list.

Agent identifier for session tracking and change attribution.

Maximum number of sessions to list (1-1000).

Arbitrary session metadata.

Target project name or slug.

Unique session identifier for end.

Maximum runnable tasks to return on bootstrap.

Manage Sessions

State checkpointing, time travel, diffing, and undo operations. Supported actions: save (create named checkpoint), list (list checkpoints), diff (compare two snapshots), get_state (reconstruct graph state at historical timestamp), revert (rollback graph to historical timestamp), undo (revert last mutation on a node), get_history (chronological audit log for a node).

The snapshot management action to execute.

Force snapshot even if node count is high.

Maximum snapshots to list (1-1000).

Node ID for undo or get_history.

Target project name or slug.

Optional session identifier for save.

First snapshot ID for diff.

Second snapshot ID for diff.

ISO 8601 timestamp for get_state or revert.

Manage Snapshots

Spec-Driven Development (SDD) lifecycle and workflow template generation. Supported actions: scaffold (generate spec template in .specs/), ingest (parse PRD/Gherkin into graph nodes), export (export spec node back to Markdown/Gherkin), compliance (calculate requirement coverage matrix), verify (mark acceptance criterion verified/failing), decompose_feature (decompose feature into plan/milestones/subtasks), template (scaffold FDD or RFC template).

The specification or template action to execute.

Acceptance criterion node ID for verify.

Feature description for decompose_feature.

File path of PRD or Gherkin feature for ingest.

Format of spec file.

Name of template or feature.

Optional observation node ID containing test proof.

Target project name or slug.

Spec node ID for export.

Verification status for verify.

Array of subtask titles for decompose_feature.

Template type for template action.

Title of feature spec or template.

Manage Specs

Task prioritization, workflow execution, blockers, and stale task management. Supported actions: next (query prioritized unblocked tasks), complete (mark done and optionally create artifact), find_blocked (find tasks blocked by a decision), find_stale (find idle/untouched tasks), find_blockers (find active blockers), find_similar_blockers (TF-IDF search for previously resolved blockers), auto_prune (cancel stale in-progress tasks).

The task management action to execute.

Optional file path for produced artifact.

Optional metadata for produced artifact.

Optional title of artifact produced on complete.

Decision node ID for find_blocked.

Git branch filter.

Whether to include parent plan/milestone and blocker context on next.

Whether to include transitive blockers.

Maximum tasks to return (1-1000).

Optional node ID to check blockers for.

Duration threshold for staleness (e.g. 7d, 24h, 30m).

Target project name or slug.

Query text for find_similar_blockers.

Status filter for find_stale.

Target status to assign when auto-pruning (e.g. cancelled).

Task node ID to complete.

Similarity threshold for find_similar_blockers (0.0 - 1.0).

Node type filter for find_stale.

Visual relationship for complete (default: renders_state).

Optional visual state ID to link on complete.

Manage Tasks

Query graph topology, neighborhoods, dependency paths, and safe read-only SQL queries. Supported actions: subgraph (fetch N-hop neighborhood around root node), trace (trace dependency chain upstream or downstream with cycle detection), raw (execute safe read-only SELECT query against SQLite), natural_language (translate natural language query into graph operations).

The graph query action to execute.

Maximum depth for subgraph query (1-10).

Direction of dependency traversal for trace.

Allowed edge types for trace (default: depends_on, blocks, child_of).

Maximum traversal depth for trace (1-50).

Starting node ID for trace.

Query parameters for raw action.

Target project name or slug.

Natural language search query for natural_language action.

Root node ID for subgraph query.

Read-only SELECT query for raw action.

Query Graph

Run graph sanity checks, health diagnostics, reference validation, audit chain verification, and storage maintenance. Supported actions: validate (check cycles, orphans, dangling edges), doctor (database WAL mode, schema version, storage health), check_refs (validate file paths and AST symbols with auto-heal), audit_chain (verify SHA-256 event hash integrity), compact (reclaim SQLite storage), archive (archive old completed tasks), prune_events (permanently prune events - admin mode required), version (retrieve package version info), dedupe (detect and merge duplicate nodes).

The diagnostic or maintenance action to execute.

For dedupe action: whether to apply merging (default: false for dry-run).

Automatically fix broken file references on check_refs.

Optional subset of validation checks.

Simulate event pruning without deleting.

Age duration threshold for prune_events (e.g. 90d).

Age threshold in days for archive (default: 30).

Event types to preserve from pruning.

Target project name or slug.

Whether to prune dangling edges during compact.

Run Diagnostics

Multi-agent shared blackboard for asynchronous agent coordination. Supported actions: post (publish ephemeral notice with topic, content, and TTL expiration), read (read active non-expired blackboard notices).

The blackboard action to execute.

Sender agent identifier.

Sender agent role (e.g. planner, coder, reviewer).

Message payload to post.

Target project name or slug.

Blackboard topic or channel name.

Time-to-live in seconds (default: 3600).

Use Blackboard


Finds articles related to a source PubMed ID (PMID) or retrieves formatted citations for it. Supports finding similar articles, articles that cite the source, articles referenced by the source (via NCBI ELink), or fetching data to generate citations in various styles (RIS, BibTeX, APA, MLA via NCBI EFetch and server-side formatting). Returns a JSON object detailing the connections or formatted citations.

An array of citation styles to format the source article into when 'relationshipType' is 'citation_formats'. Supported styles: 'ris', 'bibtex', 'apa_string', 'mla_string'. Default is ['ris'].

Maximum number of related articles to retrieve for relationship-based searches. Default is 5, max is 50.

Specifies the type of connection or action: 'pubmed_similar_articles' (finds similar articles), 'pubmed_citedin' (finds citing articles), 'pubmed_references' (finds referenced articles), or 'citation_formats' (retrieves formatted citations).

The PubMed Unique Identifier (PMID) of the source article for which to find connections or format citations. This PMID must be a valid number string.

Fetches detailed information from PubMed using NCBI EFetch. Can be used with a direct list of PMIDs or with queryKey/webEnv from an ESearch history entry. Supports pagination (retstart, retmax) when using history. Available 'detailLevel' options: 'abstract_plus' (parsed details), 'full_xml' (raw PubMedArticle XML), 'medline_text' (MEDLINE format), or 'citation_data' (minimal citation data). Returns a JSON object containing results, any PMIDs not found (if applicable), and EFetch details.

Specifies the level of detail for the fetched content. Options: 'abstract_plus' (parsed details), 'full_xml' (raw PubMedArticle XML), 'medline_text' (MEDLINE format), 'citation_data' (minimal citation data). Defaults to 'abstract_plus'.

Include grant info in 'abstract_plus' results. Default: false.

Include MeSH terms in 'abstract_plus' and 'citation_data' results. Default: true.

Output format. 'json' (default) wraps data in a JSON object. 'raw_text' returns raw text for 'medline_text' or 'full_xml' detail levels.

An array of PubMed Unique Identifiers (PMIDs) to fetch. Use this OR queryKey/webEnv.

Query key from ESearch history. Requires webEnv. Use this OR pmids.

Maximum number of records to retrieve. Used with queryKey/webEnv.

0-based index of the first record to retrieve. Used with queryKey/webEnv.

Web environment from ESearch history. Requires queryKey. Use this OR pmids.

Generates a customizable chart (PNG) from structured data. Supports various plot types and requires data values and field mappings for axes. Returns a Base64-encoded PNG image.

Specifies the type of chart to generate.

bar line scatter pie doughnut bubble radar polarArea

An array of data objects to plot the chart (e.g., [{ 'year': '2020', 'articles': 150 }]).

The height of the chart canvas in pixels.

Specifies the output format for the chart.

The field name for creating multiple data series on the same chart.

For bubble charts, the field name for encoding bubble size.

The main title displayed above the chart.

The width of the chart canvas in pixels.

The field name from `dataValues` for the X-axis.

The field name from `dataValues` for the Y-axis.

Generates a standardized JSON research plan outline from component details you provide. It accepts granular inputs for all research phases (conception, data collection, analysis, dissemination, cross-cutting concerns). If `include_detailed_prompts_for_agent` is true, the output plan will embed instructive prompts and detailed guidance notes to aid the research agent. The tool's primary function is to organize and structure your rough ideas into a formal, machine-readable plan. This plan is intended for further processing; as the research agent, you should then utilize your full suite of tools (e.g., file manipulation, `get_pubmed_article_connections` for literature/data search via PMID) to execute the outlined research, tailored to the user's request.

If applicable, strategy for collaboration, communication, roles, and authorship.

Ethical considerations, IRB/IACUC approval plans, data privacy, RCR training.

Plan for record-keeping, version control, data storage, and DMP.

If true, the tool will add more detailed instructive prompts/guidance within the output fields for a research agent. If false (default), it will primarily structure the provided inputs with minimal additional prompting.

Primary organism(s) or model systems (e.g., "Homo sapiens (iPSC-derived microglia)", "Mus musculus (5xFAD model)").

If applicable, how sequence alignment services (e.g., NCBI BLAST) will be used (purpose, programs, databases).

Description of key experimental controls and measures to ensure scientific rigor and reproducibility.

Strategy for identifying and retrieving relevant existing datasets (databases, data types, tools).

Plan for generating novel data (data types, experimental models, key procedures, deposition plan).

The overarching experimental design or study type (e.g., 'comparative multi-omics analysis', 'longitudinal cohort study').

Brief overview of the research area, its significance, and relevant background information leading to this study.

Statement clearly identifying the specific gap in current knowledge this research addresses.

Key databases (e.g., PubMed, EMBASE) and the search approach (e.g., iterative queries, snowballing).

The defined scope for the literature review (e.g., timeframes, study types, key themes).

Anticipated methodological challenges and proposed mitigation strategies.

The main, testable hypothesis. Should be clear, specific, and falsifiable.

Description of the primary literature search strategy (e.g., for PubMed), including key terms and database considerations.

Any secondary questions or hypotheses to be explored.

The precise, focused primary research question the study will answer.

Execution details for data retrieval from databases (queries, tools, accessioning).

Specific wet-lab protocols if new data is generated (sample prep, treatments, instruments).

Pipeline for data cleaning, preprocessing (e.g., alignment, normalization), and quality control (metrics, thresholds, tools).

Summary of the bioinformatics pipeline for high-throughput data analysis (tools, downstream analyses).

Strategy for contextualizing results with existing literature and addressing discrepancies.

Core statistical and computational methods to analyze data and test hypotheses (tests, software, ML models if any).

Framework for evaluating findings against hypotheses (statistical significance, biological relevance).

Strategy for depositing data in public repositories (types, repositories, FAIR principles).

Plan for manuscript preparation (core message, target journal profile, key figures).

Potential next steps, new questions, or translational applications arising from the research.

Approach to journal submission and addressing peer review.

The main scientific objective or central question the research aims to address (e.g., "To investigate the role of TREM2 in microglial response to amyloid-beta plaques").

A concise and descriptive title for the research project.

Core scientific keywords or MeSH terms defining the research domain (e.g., ["neuroinflammation", "Alzheimer's disease", "TREM2"]).

Searches PubMed for articles using a query term and optional filters (max results, sort, date range, publication types). Uses NCBI ESearch to find PMIDs and ESummary (optional) for brief summaries. Returns a JSON object with search parameters, ESearch term, result counts, PMIDs, optional summaries, and E-utility URLs.

Defines an optional date range for the search.

The type of date to filter by: 'pdat' (Publication Date), 'mdat' (Modification Date), 'edat' (Entrez Date). Default is 'pdat'.

The end date for the search range (YYYY, YYYY/MM, or YYYY/MM/DD).

The start date for the search range (YYYY, YYYY/MM, or YYYY/MM/DD).

Number of top PMIDs for which to fetch brief summaries using ESummary. Set to 0 to disable. Max 50. Default 0.

An array of publication types to filter by (e.g., ["Review", "Clinical Trial"]).

Maximum number of articles to retrieve. Corresponds to ESearch's 'retmax' parameter. Default is 20, max is 1000.

The primary keyword or phrase to search for in PubMed. Must be at least 3 characters long.

Sorting criteria for results. Options: 'relevance' (default), 'pub_date', 'author', 'journal_name'.


Check if a package name is legitimate or potentially hallucinated (AI-invented)

The package ecosystem (dart=pub.dev, perl=CPAN, raku=raku.land, npm=npmjs, pypi=PyPI, rubygems=RubyGems, crates=crates.io)

The package name to verify

Alias for scanner_health (deprecated, use scanner_health instead)

Evaluate a project against compliance frameworks (SOC2-technical, GDPR-technical, AIUC-1). Collects evidence from code scans, SBOM, vulnerability checks, and hallucination detection, then evaluates controls. Optionally saves timestamped evidence bundle.

Path to SBOM baseline file for drift comparison

Path to project root directory to evaluate

Compliance frameworks to evaluate (default: ["aiuc-1"]). Options: aiuc-1, soc2-technical, gdpr-technical

Save evidence bundle to .scanner/evidence/ (default: false)

Path to existing SBOM file (skips SBOM generation)

Response detail level (default: compact)

Scan a file and return fixes. Use verbosity='minimal' for summary only, 'compact' (default) for fix list, 'full' for complete fixed file content.

Path to the file to fix

Response detail level: 'minimal' (summary only), 'compact' (default), 'full' (includes fixed_content)

Look up compliance controls with evaluation criteria. Supports multiple frameworks: aiuc-1 (default), soc2-technical, gdpr-technical. Filter by domain, control IDs, or OWASP LLM tags.

Specific control IDs to retrieve

Filter by domain (e.g. 'security', 'safety', 'all'). Accepted values depend on the framework.

Framework to query (default: aiuc-1). Use 'soc2-technical', 'gdpr-technical', etc.

Filter by OWASP LLM tags (e.g. LLM01)

Response detail level

List statistics about loaded package lists for hallucination detection

List all available security fix templates and their descriptions

Record aggregate remediation outcomes after reviewing scanner findings. Sends counts only; never sends code, findings, paths, or rule IDs.

Findings accepted for remediation

Findings dismissed or accepted as risk

Findings confirmed fixed

Check all packages in an SBOM against official registries to detect hallucinated (AI-invented) package names. Supports npm, pypi, rubygems, dart, perl, raku, crates. Go/Java marked as unsupported.

Path to project root (generates fresh SBOM)

Path to existing SBOM file

Compare current project SBOM against a stored baseline. Reports added, removed, and version-changed packages. Use save_baseline=true to create initial baseline.

Path to baseline SBOM file (default: .scanner/sbom-baseline.json)

Path to project root directory

Save current SBOM as the new baseline

Generate an HTML or JSON audit report from SBOM data, optionally enriched with vulnerability scan results. Suitable for PCI-DSS and compliance audits.

Report format (default: html)

Include vulnerability scan in report (default: true)

Path to write report file. Absent = no write.

Path to existing SBOM file

Generate a CycloneDX v1.5 SBOM for a project. Discovers all dependencies (direct + transitive) from lock files and manifests across Node.js, Python, Go, Rust, Ruby, Java. Use verbosity='minimal' for counts, 'compact' (default) for component list, 'full' for complete CycloneDX JSON.

Path to project root directory

Include dev dependencies (default: true)

Path to write SBOM file. Absent = no write, present = write to that path.

Cross-reference SBOM components against OSV.dev vulnerability database. Returns CVE IDs, CVSS scores, severity, and fix recommendations. Accepts directory_path (generates fresh) or sbom_path (loads saved artifact).

Path to existing SBOM file

Only report vulnerabilities at or above this severity (default: low)

Pre-execution security check for agent actions (bash, file_write, file_read, http_request, file_delete, cron, process_spawn, git, docker). Returns ALLOW/WARN/BLOCK.

Type of agent action to evaluate

The command, file path, URL, or structured input to check

Response detail level: 'minimal' (action only), 'compact' (default), 'full' (all details)

Scan a prompt for malicious intent. Returns BLOCK/WARN/LOG/ALLOW. Use verbosity='minimal' for action only, 'compact' (default) for findings, 'full' for audit details.

Optional context for better analysis

Previous conversation messages for multi-turn detection

Sensitivity level - high means more strict, low means more permissive

The prompt or instruction text to analyze

Scan git diff for new security vulnerabilities. Only reports issues on changed lines. Use for PR reviews.

Base git ref (default: HEAD~1)

Target git ref (default: HEAD)

Response detail level

Scan an MCP server's source code for security vulnerabilities: overly broad permissions, missing input validation, data exfiltration, insecure patterns. Returns grade (A-F) and recommendations.

Also scan server.json manifest file for poisoning indicators (tool poisoning, name spoofing, description injection)

Path to MCP server directory or entry file

Write current server.json tool hashes as the trusted baseline for future rug pull detection. Stored in .mcp-security-baseline.json in the server directory.

Response detail level: 'minimal' (counts only), 'compact' (default, actionable info), 'full' (complete metadata)

Scan code for package imports and check for hallucinated (AI-invented) packages. Use verbosity='minimal' for counts, 'compact' (default) for flagged packages, 'full' for all details.

Path to the file to scan

Response detail level: 'minimal' (counts only), 'compact' (default), 'full' (all details)

Scan an entire directory for security vulnerabilities with .gitignore support and security grading. Use verbosity='minimal' for grade + counts, 'compact' (default) for top issues, 'full' for all details.

Enable cross-file taint analysis (max 50 files)

Only scan git-changed files

Path to the directory to scan

Glob patterns to exclude (e.g. ['*test*', 'vendor/**'])

Glob patterns to include (e.g. ['**/*.py', '**/*.js'])

Scan subdirectories recursively (default: true)

Response detail level

Scan a file for security vulnerabilities. Use verbosity='minimal' for counts only (~50 tokens), 'compact' (default) for actionable info (~200 tokens), 'full' for complete metadata.

Enable semantic/CPG analysis (default: true if available)

Analysis engine: 'auto' (default, AST+semantic with regex fallback), 'ast' (tree-sitter only), 'regex' (regex only), 'semantic' (semantic/CPG only), 'all' (all engines)

Path to the file to scan

Include surrounding code context for each issue

Output format: 'json' (default) or 'sarif' for GitHub/GitLab integration

Include project context (framework, security middleware, dependencies)

Deep security scan of an OpenClaw skill. Multi-layer analysis: prompt injection detection, code analysis (AST+taint), ClawHavoc malware signatures, package supply chain verification, rug pull detection. Returns security grade A-F with detailed findings.

Save current scan as baseline for rug pull detection

Path to skill directory or SKILL.md file

Response detail level

Check plugin health: engine status, daemon status, package data availability

Score findings using OWASP AIVSS v2. Accepts any scanner output or raw findings JSON. Returns per-finding AIVSS scores (0-10) and aggregate posture. Use verbosity='minimal' for posture only, 'compact' (default) for scores, 'full' for all metrics.

Findings from any scanner tool or raw JSON

Manual AIVSS metric overrides

Tool that produced findings, for normalization hints

Response detail level


Generate image with specified prompt and optional parameters

Aspect ratio for the generated image

Enable multi-image blending for combining multiple visual elements naturally. Use when prompt mentions multiple subjects or composite scenes

Custom file name for the output image. Auto-generated if not specified.

Image resolution for high-quality output. Specify "1K", "2K", or "4K" when you need specific resolution. Leave unspecified for standard quality.

Optional absolute path to source image for image-to-image generation. Use when generating variations, style transfers, or similar images based on an existing image (must be an absolute path)

Maintain character appearance consistency. Enable when generating same character in different poses/scenes

The prompt for image generation (English recommended for optimal structured prompt enhancement)

Intended use for the image (e.g., cookbook cover, social media post, presentation slide). Influences lighting, composition, and detail level to match the context.

Quality preset controlling speed/fidelity tradeoff. Only specify when the user explicitly requests a specific quality level; omit to use the server's configured default. "fast": best for drafts and rapid iteration. "balanced": better detail and coherence, moderate latency. "quality": highest fidelity, use for final deliverables where quality matters most.

Enable Google Search grounding to access real-time web information for factually accurate image generation. Use when prompt requires current or time-sensitive data that may have changed since the model's knowledge cutoff. Leave disabled for creative, fictional, historical, or timeless content.

Use real-world knowledge for accurate context. Enable for historical figures, landmarks, or factual scenarios


Ingest screenshot(s) via base64 or file path, check the visual state cache, and return state details. On cache miss, generates perceptual hashes (dHash/aHash), CLIP embeddings, and persists a new visual state entry. Use this tool AFTER capturing a screenshot and BEFORE invoking vision LLMs to avoid redundant token spend. For batch ingestion, pass an `items` array instead of a single screenshot/file_path.

Optional JSON string representing the simplified AX tree

Optional human/agent-provided description of the screen

Absolute path to a local image file (single mode). Use instead of screenshot to avoid base64 overhead

Bypass L1/L2 cache and force new ingestion

Override the active git branch

Batch mode: array of 1–20 screenshot items to ingest/analyze. When provided, screenshot/file_path params are ignored.

Response verbosity. compact omits internal fields like hashes, vectors, AX trees. Default: compact

Base64-encoded image string (single mode)

Optional app/page path or URL where captured

Optional classification tags

Optional session_id or trace_id for correlation with state-memory-mcp

Analyze & Cache Screenshot

Compare two visual states structurally (dHash, CLIP vector, JSON diff, layout delta) or two video trajectories (keyframe similarity, divergence point). Provide state_a_id/state_b_id for state comparison, or video_a_id/video_b_id for video trajectory comparison.

ID of visual state A (state comparison mode)

ID of visual state B (state comparison mode)

First video ID (video comparison mode)

Second video ID (video comparison mode)

Compare Visual States or Video Trajectories

Package keyframe IDs, dHash/CLIP fingerprints, OCR snippets, and linked state-memory node IDs into an immutable, cryptographically hashable evidence pack for compliance and audit trails.

Array of keyframe visual state IDs

State memory node IDs linked to this visual evidence pack

Optional source video ID

Create Evidence Pack

Export visual state transition trajectories. Formats: "json" (raw state steps), "llava" / "qwen2_vl" (VLM fine-tuning datasets), "joint" (interleaved workflow events correlated by session/trace ID for state-memory-mcp).

Export format (default: json)

Optional git branch filter

Maximum number of states to export (default: 50)

Optional trace ID / session ID filter (used with joint format)

Export Visual Trajectories

Purge a specific visual state, its vector embeddings, and perceptual hashes from storage for privacy or memory reset.

ID of visual state to purge

Forget Visual State

Trace historical pathways from current state to a target state or state matching description via BFS over the transition graph.

ID of starting state (defaults to most recently accessed state)

BFS search limit

Description match of target state

ID of target state

Find UI Navigation Path

Fetch aggregated visual context: recent states, frequently accessed states, active transitions, and memory stats. Call this at session start to orient before performing UI actions.

Count of frequent states

Count of recent states

Get Session Context

Manage visual memory snapshots. Actions: "save" creates a named checkpoint of current states; "diff" compares two snapshots for visual drift/regression; "export" serializes a snapshot to a portable JSON archive; "restore" imports a snapshot from an exported archive.

Snapshot operation to perform

JSON string of exported SnapshotArchive (required for restore)

Notes describing snapshot context (used with save)

Snapshot name (required for save, export)

Base snapshot name (required for diff)

Target snapshot name to compare against (required for diff)

Optional state-memory milestone ID to correlate

Optional state-memory snapshot ID to correlate

Manage Visual Snapshots

Manage WebM, MP4, and GIF video recordings in visual memory. Actions: "ingest" extracts keyframes, deduplicates, and builds sequence transitions; "search" queries stored video recordings by keyword/category/tags; "timeline" retrieves the chronological keyframe timeline for a specific video_id.

Action to perform: 'ingest', 'search', or 'timeline'

Video category (e.g. playwright_test, bug_repro)

Absolute file path to video file (for 'ingest')

Frame sampling rate per second for 'ingest' (default: 1.0)

Max search results (default: 20)

Search query string (required for 'search')

Scene change detection threshold 0.0-1.0 (default: 0.2)

Source agent identifier

Array of classification tags

Trace or session correlation ID

Base64 encoded video buffer (for 'ingest')

Video record ID to retrieve timeline (required for 'timeline')

Manage Video Memory

Manage Visual Spec baseline contracts (Visual SDD). Actions: "set" registers a screenshot or design mockup as baseline, "verify" tests a live UI screenshot against a baseline, "list" returns all registered visual specs.

Action to perform: 'set', 'verify', or 'list'

Absolute file path to image (for 'set' or 'verify')

Spec name (required for 'set' or 'verify')

Base64 encoded screenshot image (for 'set' or 'verify')

Optional state-memory-mcp SDD requirement node ID for 'verify'

Alternative spec name alias (for 'verify')

dHash Hamming distance tolerance threshold for 'verify' (default: 8)

Manage Visual Specs

Predict the best next UI action from the current visual state based on transition success rates, goal alignment, and grounded AX tree element targeting.

ID of current active visual state

Optional natural language goal description

Optional target visual state ID

Predict Next UI Action

Search visual state memory by screenshot image, text query, or accessibility tree. Read-only — never creates or modifies states. Use analyze_screenshot to ingest new states.

AX tree JSON for filtering

Absolute file path to search by local image

Branch scope filter

Result count limit

Text query string for semantic vector search

Response format verbosity

Base64 image payload to search by visual appearance

Retrieval strategy

Search Visual Memory

Log an action transition between two visual states and update transition statistics. Call this after every click/type/scroll/navigate action. When action_type is "blocker", generates a structured visual blocker payload for state-memory-mcp instead of recording a transition (from_state_id becomes the visual_state_id of the blocker).

Action description (or blocker description when action_type is "blocker")

Category of UI action. Use "blocker" to create a visual blocker payload.

click type navigate scroll custom blocker

Action duration in ms

Source state ID (or blocker visual_state_id when action_type is "blocker")

Active git branch

state-memory-mcp project name (only used when action_type is "blocker")

Whether action succeeded (default: true, ignored for blockers)

Destination state ID (not required when action_type is "blocker")

Record Action Outcome

Revert the most recent visual state ingestion or transition edge addition on the current git branch.

Type of mutation to revert (default: any — reverts the most recent of either)

Undo Visual Mutation

Poll for a target visual state ID until it exists in memory or timeout occurs. Use this to avoid agent spin-loops when waiting for asynchronous screenshots.

Polling interval in ms (default: 500)

Target visual state ID to wait for

Maximum timeout in ms (default: 10000)

Wait For Visual State


Discover all available SEED Design documentation sections and categories. Call this first to understand the documentation structure before using list_docs or get_doc.

Get the content of a specific SEED Design document. Use list_docs first to see available documents and their paths.

Document path (e.g., 'components/button', 'getting-started/installation', 'figma-mcp')

Documentation section: react, docs, breeze, ai-integration, or lynx

Get all documents from a section combined into a single text. Useful for comprehensive analysis or when you need complete context.

Get complete details for a specific SEED icon including React component import and documentation link.

The icon name (e.g., 'icon_arrow_left_line', 'icon_shoppingbag_items')

Get SEED Design rootage specification. Use without path to get index (available resources list). Use with path to get specific resource (e.g., '/color.json', '/components/action-button.json').

Resource path from index.json (e.g., '/color.json', '/components/action-button.json'). Omit to get index with all available paths.

List available documents in a SEED Design documentation section. Use discover_seed_docs first to see all available sections and categories.

Optional category filter (e.g., 'components', 'foundation', 'getting-started')

List available SEED Design icons with optional filtering by type, variant, or service

Maximum number of icons to return (default: 50, max: 200).

Filter multicolor icons by service category (e.g., '중고거래', '부동산', '알바').

Filter by icon type. Monochrome icons are single-color, multicolor are service icons.

Filter monochrome icons by variant (line or fill style).

Search SEED Design icons by keyword. Supports both English and Korean queries.

Maximum results to return (default: 20, max: 100).

Search query (e.g., 'arrow', 'back', '화살표', 'shopping')

Optional: filter results by icon type.


Create a new issue in Linear

Assignee user ID (optional)

Issue description (markdown supported)

Label IDs to apply (optional)

Priority (0-4, optional)

Team ID

Issue title

Get detailed information about a specific issue

Issue ID

List issues with optional filters

Filter by assignee ID (optional)

Number of issues to return (default: 50)

Filter by status (optional)

Filter by team ID (optional)

List all projects

Number of projects to return (default: 50)

Filter by team ID (optional)

List all teams in the workspace

Search for issues using a text query

Number of results to return (default: 50)

Search query text

Update an existing issue

New assignee ID (optional)

New description (optional)

Issue ID

New priority (0-4, optional)

New status (optional)

New title (optional)


Accept browser dialog. Provide promptText for prompts.

Text for prompt dialogs

Clear the tracked downloads buffer.

Clear snapshot UIDs. Usually not needed.

Click element by UID. Set dblClick for double-click.

Double-click (default: false)

Element UID from snapshot

Close tab by index.

Tab index to close

Dismiss browser dialog.

Drag element to another (HTML5 drag events).

Source element UID

Target element UID

Run a JS function in the page and return its result. Prefer this for targeted reads (a value, text, computed style, whether an element exists) instead of a full take_snapshot. Use the UID interaction tools for clicking, typing, and filling.

UIDs to pass as function arguments

Element UID from snapshot

JS function string, e.g. () => document.title

Number of characters of the saved result to return inline as a preview when saveTo is used. Omit for no preview.

Evaluate in an isolated sandbox realm with this name instead of the page realm. The sandbox shares the page DOM and keeps the native built-ins even where the page overrode them. Page-defined globals and expandos are invisible from the sandbox, and vice-versa. The same name reuses the same sandbox across calls; omit to evaluate in the page realm.

Save the result to a file as JSON instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

Timeout in ms (default: 5000)

Fill text input/textarea by UID.

Input element UID from snapshot

Text to fill

Fill multiple form fields at once.

Array of {uid, value} pairs

Field UID

Field value

Get information about the current Firefox instance configuration, including binary path, environment variables, and output file location.

Retrieve Firefox output (stdout/stderr including MOZ_LOG, warnings, crashes, stack traces). Returns recent output from the capture file. Use filters to focus on specific content.

Filter log lines containing this string (case-insensitive)

Number of recent log lines to return (default: 100, max: 10000)

Only show logs written in the last N seconds

Get the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.

Max characters to return inline (default: 20000). Ignored when saveTo is used.

Number of characters of the saved text to return inline as a preview when saveTo is used. Omit for no preview.

Save the full untruncated text to a file instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

Hover over element by UID.

Element UID from snapshot

Install a Firefox extension using WebDriver BiDi webExtension.install command. Supports installing from archive (.xpi/.zip), base64-encoded data, or unpacked directory.

File path (for archivePath or path types)

Firefox-specific: Install permanently (requires signed extension). Default: false (temporary install)

Extension data type: "archivePath" for .xpi/.zip, "base64" for encoded data, "path" for unpacked directory

Base64-encoded extension data (for base64 type)

List downloads tracked since startup, including status and saved file path.

Output format (default: text)

Max downloads (default: 50)

Filter by status

URL filter (case-insensitive)

List open tabs (index, title, URL). Selected tab is marked.

Navigate history back/forward. UIDs become stale.

back or forward

Navigate selected tab to URL.

Target URL

Open new tab at URL. Returns tab index.

Target URL

Resolve UID to CSS selector. Fails if the element is gone.

UID from snapshot

Restart Firefox with different configuration. Allows changing binary path, environment variables, and other options. All current tabs will be closed.

New environment variables in KEY=VALUE format (optional, e.g., ["MOZ_LOG=HTMLMediaElement:5", "MOZ_LOG_FILE=/tmp/ff.log"])

New Firefox binary path (optional, keeps current if not specified)

Run in headless mode (optional, keeps current if not specified)

Firefox preferences to set at startup. Values are auto-typed: true/false become booleans, integers become numbers, everything else is a string. Requires MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1.

Firefox profile path (optional, keeps current if not specified)

URL to navigate to after restart (optional, uses about:blank if not specified)

Start recording a screencast (video) of the current page viewport, saving the output to a file in the downloads directory. Returns a screencast id to pass to screencast_stop. Multiple recordings can run at once.

Id of the top-level browsing context to record. Defaults to the currently selected page.

Target frame rate of the recording, in frames per second.

Height of the recorded video in pixels. Defaults to the viewport height.

MIME type of the output file. Defaults to "video/webm".

Width of the recorded video in pixels. Defaults to the viewport width.

Stop an in-progress screencast recording started with screencast_start and finalize the video file. Returns the path to the saved file.

Id of the screencast to stop, as returned by screencast_start. Optional when exactly one recording is active.

Capture element screenshot by UID as base64 PNG.

Save the screenshot to a file instead of returning it as image data in the response. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

Element UID from snapshot

Capture page screenshot as base64 PNG.

Select active tab by index, URL, or title. Index takes precedence.

Tab index (0-based, most reliable)

Title substring (case-insensitive)

URL substring (case-insensitive)

Control how downloads are handled: allow (save silently to the default download directory), deny (cancel), or reset to default. Avoids the native save-file dialog. Requires a recent Firefox.

'allowed' saves downloads automatically, 'denied' cancels them, 'default' resets to the browser default

Set viewport dimensions in pixels.

Height in pixels

Width in pixels

Capture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.

Include all visible elements without relevance filtering. Useful for Vue/Livewire apps (default: false)

Include ARIA attributes (default: false)

Include text (default: true)

Max tree depth

Max lines (default: 100)

Number of characters of the saved output to return inline as a preview when saveTo is used. Omit for no preview.

Save the complete snapshot text to a file (ignores maxLines) instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

CSS selector to scope snapshot to specific element (e.g., "#app")

Uninstall a Firefox extension using WebDriver BiDi webExtension.uninstall command. Requires the extension ID returned by install_extension or obtained from list_extensions.

Extension ID (e.g., "addon@example.com")

Upload file to file input by UID.

Local file path

File input UID from snapshot