Skip to content

Live from the store

MCP address
https://wonderfont.art/mcp
Without an account
https://wonderfont.art/mcp/public
Published families
465
Web library plans
10 / annual: $190, 10 / monthly: $19, 50 / annual: $490, 50 / monthly: $49, 100 / annual: $790, 100 / monthly: $79
License version
2
Read at
2026-11-08T02:45:41+00:00

WonderFonT for AI assistants

WonderFonT sells original Hebrew and Latin font families. An assistant can learn what we sell, help a person choose fonts, connect their account, buy what is missing when the person allows it, and set the fonts up on a website or hand over files for a PDF, with the same rules as the website.

This page is the guide. The facts that change (prices, the number of families, the license version) are read live from the store and shown in the box above, and the tool list below is read from the running MCP server.

The three licenses

• Desktop, one time, per family: the font files (OTF) and the license, for local design work, PDFs, print and logos, for your business and its clients. Every weight of the family, and weights added to it later.

• Web, one time, per family, for 1, 5 or 25 registered sites: WonderFonT serves the family on those sites. No files.

• Web library, a subscription for 10, 50 or 100 sites: every published family, served on those sites while the subscription is paid (and 14 days after, the grace period). No files.

A web license or the library never allows downloading fonts, also not to make a PDF with a headless browser. A PDF needs a desktop license for that family. An independent desktop or one-time web purchase is never affected by the subscription ending.

Sites: example.com and www.example.com are one site; any other subdomain and every preview host is a separate site; a path is never a site. One library site may use many families and still counts once.

Prices

Prices come from the published price book, never from this page. Read them with get_pricing (MCP) or GET /api/v1/pricing and a family's own prices with get_font_details or GET /api/v1/catalog/families/{slug}. The amount that is charged is the one in a server quote (quote_purchase, valid 15 minutes). Desktop prices follow the family's number of weights.

What needs an account

Without an account: what WonderFonT is, prices, the whole catalog, recommendations, previews of your own text. With an account: what you own, sites and embed code, desktop files, purchases, favorites, collections and the team.

Connect an assistant (MCP)

• Signed in: https://wonderfont.art/mcp (Streamable HTTP). It answers 401 with a pointer to its OAuth metadata, and your assistant opens the sign-in page.

• No account: https://wonderfont.art/mcp/public, the public tools only. Add this one when your client cannot keep an optional login on one address.

Claude Code:

claude mcp add --transport http wonderfont https://wonderfont.art/mcp

Then run /mcp in Claude Code and choose WonderFonT to sign in.

Claude (web and desktop): Settings, Connectors, Add custom connector, and paste https://wonderfont.art/mcp. Another MCP client: any client with Streamable HTTP and OAuth 2.1 works the same way.

Signing in: the browser opens WonderFonT. Type your email and press the link we send (or use Google). A new address becomes a new account at that moment, with its own workspace; there is no password and nothing to paste into the chat. Then pick the workspace and allow the permissions you want. The English site (wonderfont.art) and the Hebrew site (wonderfont.art/he) keep separate accounts, so the page asks which one.

Each connection works in one workspace. To work in another, connect again. See and disconnect every assistant under Account, Developers, Connected assistants.

Technical details: MCP protocol 2026-07-28 and the 2025 initialize handshake (2025-11-25, 2025-06-18, 2025-03-26), stateless, JSON responses. OAuth 2.1 with PKCE S256 only, the resource indicator https://wonderfont.art/mcp, client ID metadata documents or dynamic registration, iss on every redirect. Access tokens last one hour; refresh tokens last 90 days and change on every use. Metadata: /.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server.

Scripts and automation can use an API key from Account, Developers instead (Authorization: Bearer wf_...), on the MCP endpoint or the REST API.

Permissions

A connection asks for permissions by name and the consent page lists them. A member of a team can give only a member's share: paying and team management belong to the owner.

• catalog:read, account:read, account:write: the catalog and your account.

• licenses:read: what the workspace owns.

• sites:read, sites:write, mappings:write: sites and which fonts they use.

• downloads:create: desktop files (only with a desktop license).

• billing:request: prepare quotes (a member's quote becomes a request to the owner).

• billing:execute: pay as the owner and accept the license for the purchases it makes. Owner only.

• collections, team, transfers and referrals: as on the website.

Having a font does not give billing permission, and billing permission does not create font rights: rights exist only after the payment provider confirms the payment.

Tools

Every tool answers the same shape: request_id, state, summary, data, warnings and next_actions. A refusal is a tool error with error.code, the API's own code and the step that fixes it.

Public (both endpoints):

• get_service_info: what WonderFonT sells, the licenses, how to connect and pay, links.

• get_pricing: current prices; with a family, its desktop and web prices.

• search_fonts: search the catalog, a page at a time.

• get_font_details: styles, weights, axes, scripts, coverage read from the files, pairings, prices.

• recommend_fonts: a ranked shortlist for a brief; signed in, what the workspace owns and what the rest costs.

• preview_fonts: your own text drawn with each family's real font file, and the characters it cannot draw.

Signed in:

• get_account_context: who is connected, the workspace, role, permissions and subscription.

• get_entitlements: desktop and web licenses apart, site use, windows, the subscription's dates.

• check_access: for given families, what is owned and the price of what is missing.

• list_sites, register_site, verify_site, update_site, remove_site: websites and their slots.

• get_site_fonts, configure_site_fonts, rollback_site_fonts: which family, weight and style each role uses, with revisions.

• get_embed_code: the exact stylesheet link and CSS for a site, with placement for HTML, Next.js, React, WordPress, Webflow, Wix and Shopify.

• diagnose_site_fonts: configuration, rights, what the stylesheet serves now, and the last page check, each as its own evidence.

• get_desktop_download: a 24 hour download link for desktop files, with a desktop license only.

• quote_purchase, execute_purchase, approve_purchase_request, get_order_status, list_orders: buying and receipts.

• manage_favorites, manage_collections: saved choices, the same as on the website.

• get_team, manage_team, transfer_site, get_referral: the team, handing a site to a client, the referral link.

• get_account_links: the pages kept on the website on purpose (keys, card, sessions, account deletion).

The same work is in the REST API: openapi.json. Recommendations: POST /api/v1/catalog/recommend. Previews: POST /api/v1/catalog/families/{slug}/preview. What is owned: GET /api/v1/workspaces/{id}/access.

Paying

1. check_access, so nothing owned is bought again. 2. quote_purchase: the server's amount in cents, what it grants and for how long. Send accept_license true only after the person agreed to the license. 3. execute_purchase: needs billing:execute and an owner. - A subscription change is charged to the subscription's card at once. - Where enabled, a one-time purchase is charged to a card the owner saved for assistant purchases. The first checkout an assistant opens offers to save it, and says so on the payment page. The owner can remove it under Account, Developers. - Otherwise, or when the bank needs the person (3-D Secure), the answer is PAYMENT_ACTION_REQUIRED with continuation_url. The person pays there; the assistant then calls get_order_status. The same order continues and is never charged twice. 4. Rights exist only after the payment provider's verified event. get_order_status says done when they do.

Card numbers, codes and passwords never go into the chat or a tool.

Subscriptions

quote_purchase with subscribe, plan_change (now, with proration), schedule_downgrade (at the end of the paid period), cancel (keeps access until the paid period ends, then 14 days of grace) or reactivate. A plan is never upgraded to make a site registration succeed: register_site answers SITE_LIMIT_REACHED with the options.

Websites

1. recommend_fonts with use web, then check_access. 2. register_site (or pick one from list_sites). 3. configure_site_fonts with dry_run true, then again with expected_revision. A weight the family does not have moves to its nearest real weight and the answer says so. A newer release of a family is listed, never applied for you. 4. get_embed_code and add the code to the site. The assistant needs its own access to the site's code for that; WonderFonT serves the fonts. 5. diagnose_site_fonts if something looks wrong.

The fonts are served by WonderFonT only to pages on the site's own addresses. Do not download or self-host them (for example with next/font): a web license is hosted only.

PDFs and print

1. recommend_fonts with use pdf (or print, logo, local) and the text's language. 2. check_access: owned desktop families come first. 3. Buy a desktop license only if needed, then get_desktop_download. 4. Read the LICENSE file in the download for embedding terms. A finished PDF and sending font files to others are different uses.

Errors

• AUTH_REQUIRED: connect or reconnect.

• INSUFFICIENT_SCOPE: the connection lacks that permission; reconnect and allow it, or ask the owner.

• WORKSPACE_ACCESS_DENIED: the id belongs to another workspace.

• OWNER_APPROVAL_REQUIRED: only the owner can do this.

• DESKTOP_LICENSE_REQUIRED, WEB_LICENSE_REQUIRED: the license is missing; the answer carries the price.

• SITE_LIMIT_REACHED: every slot is used; remove a site or quote a bigger plan.

• QUOTE_EXPIRED: get a new quote.

• PAYMENT_ACTION_REQUIRED, PAYMENT_PENDING: the person pays, or the payment is being checked; ask get_order_status.

• LICENSE_ACCEPTANCE_REQUIRED: the person accepts the current license.

• VERSION_CONFLICT: something changed meanwhile; read it again.

• RATE_LIMITED: wait a minute.

Limits

600 requests a minute for each connection, 120 a minute for each address without one, 30 previews a minute. Quotes last 15 minutes, download links 24 hours. A sample text is at most 200 characters.

Example conversations

Website: "Choose fonts for my bakery's site, Hebrew, warm and friendly." The assistant asks nothing it already knows, calls recommend_fonts (use web, script he, feel warm, roles heading and body), shows three families with preview_fonts, check_access says the library covers them, then register_site, configure_site_fonts and get_embed_code.

PDF: "I need a font for a Hebrew and English price list PDF." recommend_fonts (use pdf, script both), check_access shows one family already owned for desktop, the assistant offers it first, then get_desktop_download.

New customer: on /mcp/public the person explores and keeps a shortlist in the conversation. To buy, they add /mcp, sign in with their email (which creates the account), and the assistant continues from the same shortlist with check_access and quote_purchase.

Privacy and support

The text you preview is not stored. Tokens are kept only as hashes. Questions: support@wonderfont.art. Privacy: privacy@wonderfont.art.

Tools on the server now

  • get_service_info · public
    What WonderFonT sells, the three license kinds, what a guest can do, how to connect an account, how payment works, and the documentation links.
  • get_pricing · public
    Current prices from the published price book (USD cents).
  • search_fonts · public
    Search published families (deterministic text search, Hebrew or English names and tags).
  • get_font_details · public
    One family by slug: release id and version, every real style (CSS weight, italic), variable axes, scripts and languages, glyph coverage read from the web files (Hebrew letters, Latin, digits), pairings, specimen and page links, and its desktop and web prices.
  • recommend_fonts · public
    A ranked shortlist for a design brief.
  • preview_fonts · public
    The user's own text drawn with each family's real web font file, as PNG images (one per family), and every character the family cannot draw.
  • get_account_context · signed in
    Who is connected: email, the one workspace this connection works in (and the person's other workspaces, to reconnect for another), the role, the effective permissions (scopes), which site the account belongs to (English or Hebrew), and the web library subscription if any.
  • get_entitlements · signed in
    Every live license of the workspace, desktop and web kept apart: kind, family (or the whole library), whether it allows desktop files or hosted web, site slots used of allowed, its window (valid, grace or expired), releases covered, and the subscription's paid-through and grace dates.
  • check_access · signed in
    For each family slug: does the workspace already hold desktop rights (files for PDF/print/logo) and web rights (hosted on sites), from which license, how many site slots are free, and the exact purchase options with prices for what is missing.
  • list_sites · signed in
    The workspace's registered websites (removed ones for 90 days): id, state (active, pending, removed), hosts (apex and www count as one site), public id and last health check.
  • register_site · signed in
    Register a website (a host name such as example.com; www is the same site, other subdomains and preview hosts are separate sites, paths are not sites).
  • verify_site · signed in
    Run the site's domain check now (DNS TXT, meta tag or the embed on the page) and return its state.
  • update_site · signed in
    Move a registered site to a new address, keeping its slot and its fonts.
  • remove_site · signed in
    Remove a site: its slot is freed and WonderFonT stops serving its fonts from the next page view.
  • get_site_fonts · signed in
    The site's current font roles (each pinned to family, release, weight and style), their fallbacks, the revision number (send it back as expected_revision when changing), and newer releases available (never applied for you).
  • configure_site_fonts · signed in
    Choose which family, weight and style each role uses on a site.
  • rollback_site_fonts · signed in
    Make an earlier revision current again (as a new revision, after the same rights checks).
  • get_embed_code · signed in
    The exact code for a site: the one stylesheet <link> for <head>, the CSS font-family name and variable of every role with its real weight and style, ready CSS rules, right-to-left notes, and framework placement.
  • diagnose_site_fonts · signed in
    Evidence about a site's fonts, each kind kept apart: the configuration (roles and revision), rights (every family covered by a license for this site), delivery (the stylesheet WonderFonT serves for it now, and its @font-face per role), and the last page check (embed seen on the page, or not).
  • get_desktop_download · signed in
    A signed download link (24 hours) for a family's desktop files and license, only with a desktop license.
  • quote_purchase · signed in
    A server quote with the exact amount (USD cents), what it grants, recurring terms and its expiry (15 minutes for an owner; a member's quote becomes a request the owner approves).
  • execute_purchase · signed in
    Pay or apply an open quote as the workspace owner (needs billing permission).
  • approve_purchase_request · signed in
    The owner turns a member's purchase request into a fresh quote of their own (then execute_purchase).
  • get_order_status · signed in
    Where a purchase stands, from the provider's verified events only: open, pending_owner, processing (paid, rights being granted), done (rights exist), expired, failed or canceled.
  • list_orders · signed in
    Paid orders, newest first: amount, refunds, lines and the receipt page (owner only).
  • manage_favorites · signed in
    The person's favorite families (the heart on the site): list, add or remove one by slug.
  • manage_collections · signed in
    Workspace collections (shortlists the team keeps): list, get, create (name), add or remove a family, rename (name plus the version from get), delete, share (a read-only link) or revoke the link.
  • get_team · signed in
    Members, roles, pending invitations and claimed domains of the workspace.
  • manage_team · signed in
    Team changes with the website's rules: owners manage, anyone may leave.
  • transfer_site · signed in
    Offer a site (with its fonts) to a client's account by email or workspace id; they accept it on the website.
  • get_referral · signed in
    The person's referral link and earnings summary (20% of referred sales), when the program is open.
  • get_account_links · signed in
    Links for the few things done only on the website, signed in, on purpose: API keys and connected assistants, the payment card and subscription billing portal, sign-in sessions, and account deletion.

Sign in

Continue with Google

or with your email

No password. We'll email you a link.

Accessibility

Text size