Skip to main content
Glama
figranium

Figranium MCP Server

Official
by figranium

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

Capabilities

Features and capabilities supported by this server

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.

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.

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 realistic click on the element matching 'selector'.

  • '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.

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": {
    "hn_stories": {
      "type": "string",
      "value": "[]"
    }
  },
  "extractionFormat": "json"
}
task_listA

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

task_executeA

Execute/run a saved automation task by ID and return its result.

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_deleteA

Disable and remove the schedule configuration from a specific task.

schedule_describeA

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

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.

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/figranium/figranium-mcp'

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