Furlen
FreeNot checkedTurn CSV into an animated chart video with Furlen — every figure recomputed from your rows first.
About
Turn CSV into an animated chart video with Furlen — every figure recomputed from your rows first.
README
An MCP server for making charts. Give Claude, Cursor, or any Model Context Protocol client a table of numbers and it returns an animated chart video — and it recomputes every figure in the narration against your rows before it will export anything.
Published to the official MCP registry as io.github.amitsha86/furlen-mcp. Backed by
Furlen.
Why this one is different
Most chart tooling will draw whatever number you hand it, and an AI-assisted one will happily generate a number to draw. This server won't: the story it writes is checked claim-by-claim against the source rows server-side, and a claim that doesn't reconcile blocks the export rather than shipping. You can watch that gate run at furlen.pro/proof.
That matters more through an agent than through a UI. Nobody is watching the intermediate output, so the check has to be the thing that refuses — not a human noticing.
Setup
- Create a Furlen API key at furlen.pro → Settings → API keys.
- Add the server to your MCP client config. Nothing to install first;
npxfetches it.
{
"mcpServers": {
"furlen": {
"command": "npx",
"args": ["-y", "furlen-mcp"],
"env": { "FURLEN_API_KEY": "sg_live_..." }
}
}
}
- Claude Desktop: add the block above to
claude_desktop_config.jsonand restart. - Cursor: add it to
.cursor/mcp.json. - Any other MCP client: run
npx -y furlen-mcpwithFURLEN_API_KEYset.
Tools
furlen_public_data
Fetch a real public dataset by describing it — no spreadsheet needed.
"India GDP over the last 10 years" · "compare US and China population" · "Apple revenue over 6 years" · "US healthy life expectancy" · "India exports to the US"
Resolves through Furlen's adapters for the World Bank, IMF WEO, FRED, Eurostat, UN Comtrade,
WHO and company filings (SEC EDGAR, ESEF, DART, EDINET). Returns the rows, a ready-to-use
csv string you can pass straight to furlen_render, and provenance naming the exact indicator.
If no connected source covers the subject it says so: a 422 with code: "subject_unsupported"
means the data doesn't exist here, not that the request was malformed — don't retry it
reworded. Exchange rates are the canonical example.
furlen_render
Turns CSV text into an animated, claim-verified chart video. One call runs the whole pipeline —
profile the data, find the insights, write the story, verify every claim, render — and returns a
renderId.
| Arg | Values | Default |
|---|---|---|
csv (required) |
Raw CSV text, header row first | — |
audience |
investor · executive · linkedin · youtube · internal_team · client_report · student |
linkedin |
outputFormat |
video_16_9 · video_9_16 · video_1_1 |
video_16_9 |
format |
mp4 · gif |
mp4 |
resolution |
720p · 1080p · 4k |
1080p |
furlen_render_status
Polls a renderId. Returns status (queued → running → completed | failed), progress, and a
downloadUrl when finished. Renders usually take 30–90 seconds, so poll every few seconds
rather than blocking.
Example
"Here's my quarterly revenue CSV — make a LinkedIn chart video from it with Furlen."
The agent calls furlen_render, polls furlen_render_status, and hands back the download link once
the video is ready.
Example: chart public data end to end
"Chart India's GDP over the last 10 years and make me a LinkedIn video."
The agent calls furlen_public_data with that request, gets back rows plus a csv string, passes
the csv to furlen_render, polls furlen_render_status, and returns the download link. No file
ever touches the agent's filesystem.
What it can't do yet
Worth knowing before you wire it up:
- No file uploads. Data arrives as CSV text or by naming a public dataset — not as an attached spreadsheet.
- Rendering is asynchronous. There is no synchronous "give me a chart back now" call.
- The sources are the sources. If no connected provider publishes the figure, you get a refusal rather than an estimate. That is the design, not a gap.
- It needs an API key with the
data:readandrenders:writescopes, and your plan's limits on resolution, watermarking and render minutes apply exactly as in the app.
Environment
FURLEN_API_KEY(required) — your workspace API key.FURLEN_BASE_URL(optional) — defaults tohttps://furlen.pro.
Links
- Product: https://furlen.pro
- API + MCP docs: https://furlen.pro/developers#mcp
- How claim verification works: https://furlen.pro/proof
MIT © Furlen
Installing Furlen
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/amitsha86/furlen-mcpFAQ
Is Furlen MCP free?
Yes, Furlen MCP is free — one-click install via Unyly at no cost.
Does Furlen need an API key?
No, Furlen runs without API keys or environment variables.
Is Furlen hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Furlen in Claude Desktop, Claude Code or Cursor?
Open Furlen on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
ARA
Generate images, video and audio from any AI agent — one connector.
by ARAOmni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Furlen with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
