keylineBLOCK
Design engine for AI agents: images and video at every size, no Chrome, 2× fewer tokens. One native binary, driven over MCP.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://github.com/keyline-dev/keyline/releases/latest) [](https://github.com/keyline-dev/keyline/actions/workflows/ci.yml) [](LICENSE.md) [](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.keyline-dev/keyline)
[keyline.dev](https://keyline.dev): examples, the benchmark, and setup for every client.
Design engine for AI agents: Canva for your agent. keyline is a free MCP server for Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI and any MCP client. Your agent describes a social post, ad or banner once, as a small JSON scene; keyline renders it as images and video at every size, with real text in your fonts and colors, the same every run.
No browser, and fewer tokens. No headless Chrome, Puppeteer or Playwright: one native Rust binary on Skia. Every edit replies with what's wrong at each size, so the agent fixes the design from measurements instead of screenshots: 2× fewer tokens than an agent driving headless Chrome, and 6× fewer than Playwright MCP (benchmark).
One prompt, five sizes: the layout adapts from a 4:5 post to a 728×90 leaderboard, and keyline's checks catch what doesn't fit before anything renders.
2048ee4f8d45OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add keyline-mcp:0.8.0 -- docker run -i --rm ghcr.io/keyline-dev/keyline-mcp:0.8.0:None
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (12 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (14)
"169.254.169.254",
"64:ff9b::169.254.169.254",
"http://127.0.0.1/x.png",
assert_eq!(pieces("👨👩👧👦🇫🇷", Split::Chars), vec![0..11, 11..15]);const BUNDLED: &[u8] = include_bytes!("../../fonts/InterVariable.ttf");json!({"sceneId": id, "url": "http://127.0.0.1/x.png"}),- **The LLM tests** run Claude Code headless, so they use a Claude subscription and need no API key. They check that no defects remain and report tool calls, tokens and API-equivalent cost. With `KEYL
airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-
docs/media/showcase-motion.png
icons/fa-solid.tsv
tests/golden/macos/showcase-square.png
tests/golden/macos/showcase-story.png
tests/golden/windows/showcase-square.png
Gates applied: no_behavioural_pass.
2048ee4f8d45full audit observations/trust-audit/mcp-server/keyline-dev__keyline.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | 2048ee4f8d45 | BLOCK | D | 69 | first audit |
Questions
What is the keyline MCP server?
Design engine for AI agents: images and video at every size, no Chrome, 2× fewer tokens. One native binary, driven over MCP.
Is keyline safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does keyline need?
No credential environment variables were found in its source, so it appears to need none.
How does keyline run?
It speaks stdio, so it runs as a local process your client starts.
How current is this page?
The grade is for one exact copy of the source (2048ee4f8d45), read on 2026-10-11. The repository is watched and re-audited when it changes.