Figranium MCP Server
Official<div align="center">
<img src="https://raw.githubusercontent.com/figranium/figranium-mcp/main/banner.png" alt="Figranium Banner">
<h1>Figranium MCP Server</h1>
<a href="https://www.npmjs.com/package/figranium-mcp" target="_blank"><img src="https://img.shields.io/npm/v/figranium-mcp?label=NPM" alt="NPM"></a>
<a href="https://glama.ai/mcp/servers/figranium/figranium-mcp" target="_blank"><img src="https://glama.ai/mcp/servers/figranium/figranium-mcp/badges/score.svg" alt="Glama quality and maintenance score"></a>
<br>
[](https://mcpmarket.com/server/figranium?utm_source=readme&utm_medium=badge)
<p><strong>The official Model Context Protocol (MCP) server for Figranium, built with the official Figranium JavaScript SDK API client.</strong></p>
<p><a href="https://mcp.figranium.dev" target="_blank"><strong>View</strong></a></p>
</div>
## Use Figranium with MCP
Figranium turns website workflows into reusable Tasks that AI agents can discover, create, and run through MCP. This server is the local STDIO client for connecting an MCP-compatible app to your Figranium instance.
> Looking for the hosted OAuth MCP instead? Connect compatible remote MCP clients to `https://mcp.figranium.dev/mcp`.
## Quick start
You need a running Figranium instance and an API key from Figranium settings.
Run the MCP server directly from npm:
```bash
FIGRANIUM_API_KEY=YOUR_API_KEY npx -y figranium-mcp
```
By default, it connects to Figranium at `http://localhost:11345`. To use another instance:
```bash
FIGRANIUM_BASE_URL=https://your-figranium-instance.example.com \
FIGRANIUM_API_KEY=YOUR_API_KEY \
npx -y figranium-mcp
```
### MCP client configuration
Most local MCP clients accept a configuration shaped like this:
```json
{
"mcpServers": {
"figranium": {
"command": "npx",
"args": ["-y", "figranium-mcp"],
"env": {
"FIGRANIUM_BASE_URL": "http://localhost:11345",
"FIGRANIUM_API_KEY": "YOUR_API_KEY"
}
}
}
}
```
Use that server entry in clients such as Codex, Claude Code, Cursor, GitHub Copilot, Claude Desktop, Cline, and other STDIO MCP clients.
If the MCP server itself runs inside Docker while Figranium runs on the host, use `http://host.docker.internal:11345` instead of `http://localhost:11345`.
## What agents can do
Once connected, an agent can work with Figranium without manually calling its API. The MCP server exposes tools for the core Task lifecycle:
| Tool | Purpose |
| --- | --- |
| `task_list` | Discover existing Tasks |
| `create_task` | Create a new Task |
| `task_execute` | Execute a Task with optional variable overrides |
| `execution_list` | Inspect previous executions |
| `schedule_list` | Find scheduled Tasks |
| `schedule_get_all_status` | Inspect scheduler state |
| `schedule_get_status` | Inspect one Task's schedule |
| `schedule_set` | Create or update a schedule |
| `schedule_delete` | Remove a schedule |
| `schedule_describe` | Validate and preview a schedule |
The server also exposes `figranium://schemas/task-v1.json`, allowing clients to inspect the Figranium Task schema directly.
Figranium's MCP instructions teach agents how to construct Tasks, choose selectors, use variables, and follow Task sequencing rules. Invalid Task payloads return structured validation diagnostics so an agent can correct its own request.
## Local vs hosted MCP
The npm package contains the local STDIO MCP server. It does not ship the Figranium MCP landing page or hosted OAuth UI.
For clients that support remote OAuth MCP, use:
```text
https://mcp.figranium.dev/mcp
```
The hosted MCP handles OAuth and connects the client to a publicly reachable Figranium instance. For local clients, `npx -y figranium-mcp` is usually the simpler path and can connect directly to localhost.
Authenticated template catalog requests reject HTTP redirects to prevent `x-api-key` credentials from reaching a redirected destination. Point `FIGRANIUM_BASE_URL` at the final API origin; do not rely on a reverse proxy's 3xx redirect.
## Environment variables
| Variable | Required | Default | Description |
| --- | --- | --- | --- |
| `FIGRANIUM_API_KEY` | Yes | — | API key generated by your Figranium instance |
| `FIGRANIUM_BASE_URL` | No | `http://localhost:11345` | Base URL of the Figranium instance |
The server exits with a setup message if `FIGRANIUM_API_KEY` is missing.
## Build from source
Requires Node.js 18+ and npm 9+.
```bash
git clone https://github.com/figranium/figranium-mcp.git
cd figranium-mcp
npm install
npm run build
```
Run the compiled server:
```bash
FIGRANIUM_API_KEY=YOUR_API_KEY npm start
```
For active development:
```bash
npm run watch
```
Run the test suite:
```bash
npm test
```
### MCP Inspector
You can inspect the published server with the official MCP Inspector:
```bash
FIGRANIUM_API_KEY=YOUR_API_KEY npx @modelcontextprotocol/inspector npx -y figranium-mcp
```
## Links
- [Figranium documentation](https://figranium.dev/docs)
- [Figranium](https://figranium.dev)
- [npm package](https://www.npmjs.com/package/figranium-mcp)
- [MCP server source](https://github.com/figranium/figranium-mcp)
- [Figranium source](https://github.com/figranium/figranium)
TDQS
Scored across 16 tools
Most tools target clearly distinct resources and actions: task CRUD/execution, template reads, schedule management, and cabinet management. The only mild overlap is among the three schedule status tools (schedule_list, schedule_get_all_status, schedule_get_status), whose boundaries require reading descriptions to separate.
All names use snake_case, but verb placement is inconsistent: create_task, list_cabinets, and create_cabinet are verb_noun while task_list, task_update, task_delete, task_execute, template_get, and schedule_set are noun_verb. Still readable and groupable by prefix, but the convention is not uniform.
16 tools covering task lifecycle, scheduling, templates, and cabinets is slightly on the heavy side but each tool maps to a distinct operation. No obvious redundant or filler tools beyond the schedule status trio.
Task CRUD plus execution is well covered, and scheduling has list/set/delete/describe/status. Minor gaps remain: only execution_list exists with no per-execution detail retrieval, and cabinets support list/create but no update or delete.