oJo — HTML to image and PDF
Fill an HTML template with JSON and get a hosted PDF or image link.
Connector by ojo.soOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ojo-so-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.ojo.so/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 3 read · 5 write · 1 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 9
Read from the source code; the running server may list different tools.
Read 3 · Look things up without changing anything.
create_preview_linkget_templatelist_templates
Write 5 · Create, change, send or run things.
create_templategenerate_image_from_htmlgenerate_image_from_templategenerate_pdf_from_htmlgenerate_pdf_from_template
Delete 1 · Delete, drop, revoke or wipe things.
update_template
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
OJO_API_KEY
Network hosts it talks to 1
mcp.ojo.so· found in remote endpoint, install command
Tools (9)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
create_preview_linkCreate preview linkread-onlyDescription is built at runtime.
create_templateCreate templateCreate a reusable oJo template from plain HTML/Handlebars (with optional variable defaults). Does not cost a credit.
generate_image_from_htmlGenerate image from HTMLRender plain HTML (with inline CSS) into a PNG and return its public URL. COSTS 1 CREDIT — this is the final-render tool. While you are still shaping a design, iterate with `create_preview_link` first: it is free, full-resolution, and uses the same render engine. `inspect: true` adds a 512px-wide thumbnail of the result — enough to sanity-check, too small to judge layout or typography.
generate_image_from_templateGenerate image from templateRender an existing oJo template into a PNG, optionally overriding its variables via `modify`. COSTS 1 CREDIT — this is the final-render tool. To preview how a set of `modify` values will look without spending a credit, pass the template HTML from `get_template` to `create_preview_link` with those values as `variables`. `inspect: true` adds a 512px-wide thumbnail of the result.
generate_pdf_from_htmlGenerate PDF from HTMLRender plain HTML (with inline CSS) into a PDF document and return its public URL and page count. COSTS 1 CREDIT per 20 pages, rounded up (up to 5 credits). A document over 100 pages is refused and costs nothing. Pages are A4 unless the HTML sets a CSS `@page` rule (size, margin). Content flows onto further pages, and `break-before: page` starts a new one. `create_preview_link` shows the screen rendering for free, not the page breaks. Headers, footers and page numbers go in @page margin boxes such as @top-left and @bottom-right (content: "Page " counter(page) " of " counter(pages)), each with …
generate_pdf_from_templateGenerate PDF from templateRender an existing oJo template into a PDF document, optionally overriding its variables via `modify`, and return its public URL, page count and credits spent. With `pages`, one PDF is built from many entries (templates with their own `modify`, or HTML), each starting on a new page, merged in order. COSTS 1 CREDIT per 20 pages, rounded up (up to 5 credits). A PDF over 100 pages in total is refused and costs nothing. Page size: a CSS `@page` rule first (it may use a variable such as `size: {{pageSize}}`), then the template's saved size, then A4. A request with `pages` can take about a minute. I…
get_templateGet templateread-onlyFetch one oJo template by id, returning its HTML, its variable defaults and its `inputs`: every data path the HTML reads, such as `items[].title`.
list_templatesList templatesread-onlyList the oJo templates available to this account, each with its `inputs` (every data path its HTML reads, such as `items[].title`) and its variable defaults.
update_templateUpdate templatecan change or delete dataReplace the HTML of an existing oJo template this account owns, and its variable defaults when `variables` is given (left out, the stored defaults stay). The template keeps its ID: API renders and an oJo editor open on it use the new version at once, so check the design with `create_preview_link` first. Does not cost a credit.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 42
- Last commit
- Oct 22, 2026 (7 days ago)
- Last release
- Oct 20, 2026 (9 days ago)
- Last package publish
- Oct 20, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
so.ojo/mcp-server- Version
- 0.8.0
- Auth
- Auth not stated, API key
- Packages
- npm @ojodotso/mcp-server
- License
- MIT
- Repository
- github.com/ojodotso/mcp-server
- Website
- ojo.so/docs/mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
oJo — HTML to image and PDF MCP server. Agent Mart. https://agentmart.dev/connectors/ojo-so-mcp-server (last updated 2026-10-24)