Skip to main content
Glama
figranium

Figranium MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FIGRANIUM_API_KEYYesThe API key generated from Figranium settings to authorize requests.
FIGRANIUM_BASE_URLNoThe base URL of your Figranium server. Defaults to http://localhost:11345.http://localhost:11345

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_taskA

Create a complete, fully-configured Figranium automation task including sequential action steps, state variables, anti-bot stealth mechanisms, and optional scheduling.

!!! IMPORTANT GUIDELINES FOR LLM AGENTS !!!

  1. VARIABLE TEMPLATING SYNTAX: You MUST use {$variable_name} (with a single curly brace and dollar sign, e.g. {$myVar}) for variable references/templating inside action values, URLs, headers, or body fields. NEVER use double curly braces like {{variable_name}} or JavaScript-style templates like ${variable_name}, as these syntaxes are unsupported and will cause execution failures.

  2. TASK VALIDATION: Newly created or updated tasks are ordinarily intended to be validated against a real execution result so configuration, selectors, and extracted output can be checked.

  3. MODE SELECTION: Use agent mode by default, including for scraping tasks. scrape mode does not support action blocks and should be used only when extremely fast, action-free scraping is required. Use headful for visible interactive debugging.

1. Purpose

Use this tool when you need to automate any recurring or complex web-based workflows, including data extraction (scraping), automated form-filling, dashboard testing, or dynamic visual monitoring. Tasks are stored permanently in Figranium and can be executed ad-hoc, triggered via API, or scheduled.

2. Execution Model

Figranium tasks run as a linear sequence of steps defined in the 'actions' array. Actions are processed in order from top to bottom. Control flow steps (such as 'if', 'while', 'repeat') allow loops and branching, while 'on_error' steps define fallback behaviors. Variables represent the state and can be updated dynamically during execution. Ensure all opened block structures (such as 'if', 'while', 'repeat', 'foreach') are closed with an 'end' action step.

3. Comprehensive Step Types

  • 'navigate': Redirect browser to a new URL specified in the 'value' field.

  • 'wait': Pause execution for N seconds specified in the 'value' field.

  • 'wait_selector': Pause until the DOM element matching 'selector' is rendered.

  • 'click': Simulate a single, double, or right click on the element matching 'selector'; set 'clickType' to 'double' or 'right' when needed.

  • 'check' / 'uncheck': Idempotently set the checked state of a checkbox or radio control matching 'selector'.

  • 'drag_and_drop': Drag from 'selector' to the required 'targetSelector'.

  • 'reload': Reload the current page and wait for DOM content to load.

  • 'select': Choose an option from a native select using 'selector' and its option 'value'.

  • 'type': Type the 'value' into the 'selector' input element. Use 'typeMode' to clear/replace or append.

  • 'hover': Move mouse pointer to the element matching 'selector'.

  • 'press': Press a specific keyboard key (e.g., 'Enter') specified in the 'key' field.

  • 'scroll': Scroll the page or target element to a specific coordinate or direction.

  • 'javascript': Execute custom JavaScript on the page. Stored in 'value', outputs can be saved to 'varName'.

  • 'screenshot': Capture and save a screenshot.

  • 'http_request': Perform direct API requests.

  • 'if', 'else', 'end': Conditional blocks based on variables.

  • 'while', 'repeat', 'foreach': Looping blocks.

  • 'stop': Halt task execution.

  • 'set': Set or update a task variable.

  • 'solve_captcha': Attempt to automatically solve a detected CAPTCHA challenge.

  • 'wait_captcha': Pause until a CAPTCHA challenge is initialized/ready without solving it.

  • 'upload': Attach the newest unuploaded file, ZIP, or folder from a Cabinet (see 'cabinetId') to a file input, chooser, or drop target matching 'selector'.

  • 'finalize_uploads': Mark all Cabinet items attached during the execution as uploaded.

4. Selector Strategy & Fallbacks

When targeting elements, follow this hierarchy of selectors:

  1. Unique IDs (e.g., '#submit-button')

  2. ARIA roles and labels (e.g., '[aria-label="Search"]')

  3. Reliable CSS classes or data attributes (e.g., '.btn-primary', '[data-testid="login"]')

  4. Text matchers or XPath as a final resort. Fallback: If an element might be missing or slow to load, wrap the interaction inside an 'if' block evaluating a variable or use 'on_error' to catch failure.

5. Edge Cases & Retry Logic

  • Timeouts: Wait-selectors have a default timeout. Ensure critical steps use 'wait_selector' first to avoid clicking non-existent elements.

  • Stealth: Turning on options like 'naturalTyping', 'cursorGlide', and 'allowTypos' simulates authentic human speed and rhythm to prevent anti-bot blocking on protected sites.

  • Statelessness: Enable 'statelessExecution' to ensure execution is completely fresh without persistent browser storage/cookies.

6. Complex Real-World Multi-Step JSON Example:

{
  "name": "HackerNews Custom Scraper",
  "url": "https://news.ycombinator.com",
  "mode": "agent",
  "wait": 3,
  "rotateUserAgents": true,
  "stealth": {
    "allowTypos": true,
    "cursorGlide": true,
    "naturalTyping": true
  },
  "actions": [
    {
      "type": "wait_selector",
      "selector": ".hnname"
    },
    {
      "type": "click",
      "selector": "a.hnmore"
    },
    {
      "type": "wait",
      "value": "2"
    },
    {
      "type": "javascript",
      "value": "return Array.from(document.querySelectorAll('.athing')).map(tr => ({ id: tr.id, title: tr.querySelector('.titleline > a')?.innerText, href: tr.querySelector('.titleline > a')?.href }));",
      "varName": "hn_stories"
    },
    {
      "type": "navigate",
      "value": "https://httpbin.org/post"
    },
    {
      "type": "wait_selector",
      "selector": "pre"
    },
    {
      "type": "javascript",
      "value": "console.log('Finished scraping and navigated successfully.');"
    }
  ],
  "variables": {},
  "extractionFormat": "json"
}
task_updateA

Update one or more fields on an existing, saved Figranium browser-automation task.

When to use

Use this after task_list identifies the task to modify—for example, to correct its name or URL, replace its action sequence, change input variables, adjust stealth settings, or revise its extraction script or schedule. The task remains stored under the same taskId and is not executed by this operation.

Required request shape

  • taskId is required and must be the ID of an existing task.

  • Include at least one additional field. An ID-only request is rejected because it would make no change.

  • Every other field is optional: omitted fields are left unchanged.

  • Repeating the same request is safe and produces the same stored configuration.

Important update behavior

  • For compound fields—actions, variables, stealth, translation, and schedule—send the complete value you want stored for that field, rather than only a nested fragment.

  • actions are an ordered replacement sequence. Use agent or headful mode for actions; scrape mode does not support them. Close every if, while, repeat, or foreach block with an end action.

  • Use {$variable_name} for task-variable references in URLs, headers, bodies, and action values. Do not use {{variable_name}} or ${variable_name}.

  • This tool changes saved configuration but does not run or delete a task. Use task_execute to validate an updated workflow and task_delete only when permanent removal is intended.

Examples

Rename a task: { "taskId": "task_101", "name": "Daily lead extractor" }.

Replace its workflow and output extraction: { "taskId": "task_101", "actions": [{ "type": "wait_selector", "selector": "[data-testid='results']" }], "extractionScript": "return document.title" }.

task_deleteA

Permanently delete a Figranium task by taskId.

task_listA

List all task IDs, names, and descriptions from Figranium.

browser_openA

Launch or reattach a managed headful/interactive browser session.

inspector_highlightB

Activate inspect/highlight mode on an active browser session with optional selector hints.

task_executeA

Execute a saved automation task by ID and return its real run result. This is also useful for validating newly created or updated tasks against actual browser behavior and output.

execution_listA

List a summary of all past execution records.

schedule_listA

List all tasks that have schedules configured (enabled or not).

schedule_get_all_statusA

Get overall scheduler status and metadata for all schedules.

schedule_get_statusA

Get the detailed schedule status, cron configuration, and next run time for a specific task.

schedule_setB

Create or update a schedule for a specific task.

schedule_deleteB

Disable and remove the schedule configuration from a specific task.

schedule_describeA

Validate and preview/describe a schedule configuration without saving it.

list_cabinetsA

List all Cabinets (durable download queues) configured on the Figranium server, including their IDs, names, and item counts. Use this to find a Cabinet ID to reference in a Task's 'downloadCabinetId' field or an 'upload' action.

create_cabinetA

Create a new Cabinet (durable download queue) on the Figranium server.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Figranium Task JSON Schema v1Exposes the full annotated JSON Schema of a Figranium task so agents can inspect the full specification directly.
Figranium Agent SpecificationExposes the complete Figranium Agent Specification (AGENT_SPEC.md) containing task schema, action types, variable templating, and control flow guides for AI agents.

TDQS

A3.8/5.0

Scored across 16 tools

Disambiguation4/5

The tools are grouped by domain (tasks, schedules, executions, cabinets, browser) and each has a distinct role. However, schedule_list and schedule_get_all_status both surface schedule information and could be confused; otherwise the boundaries are clear.

Naming Consistency3/5

Naming mixes conventions: some tools use verb_noun (create_task, list_cabinets) while most use noun_verb (task_update, schedule_get_status, browser_open). The verbs are specific and readable, but the inconsistent ordering prevents a fully predictable pattern.

Tool Count5/5

16 tools is well-scoped for a browser-automation server that covers task CRUD, execution, scheduling, cabinets, and browser inspection. Each tool has a clear purpose and none feel redundant.

Completeness4/5

Core workflows are covered: task lifecycle, execution, schedules, and cabinets. Minor gaps exist—there is no single-task detail getter, no execution detail view, and no browser close tool—but agents can work around these via task_list and execution_list.

Maintenance

ActivityActive
ResponsivenessNo issues