ProSignature Email Signatures
Read-only remote MCP server: build a free email signature (HTML and plain text), quote Pro and Teams prices, and get Gmail, Outlook and Apple Mail install steps. No account, no auth.
Hosted MCP Server
npx add-mcp 'https://prosignature.co/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Home › For AI agents
ProSignature for AI agents
Last verified · Markdown version · OpenAPI · pricing.json · llms-full.txt
Stable URLs
Every machine-readable thing lives at a fixed path. Nothing here needs a key, a cookie or an account.
| What | URL | Format |
|---|---|---|
| This page as Markdown | https://prosignature.co/for-ai-agents.md | text/markdown |
| Full text of the key pages | https://prosignature.co/llms-full.txt | Markdown in text/plain |
| Short index | https://prosignature.co/llms.txt | llms.txt |
| Prices | https://prosignature.co/pricing.json | JSON |
| Signature API | https://prosignature.co/api/v1/signature | GET or POST; JSON, HTML or text |
| OpenAPI 3.1 | https://prosignature.co/openapi.json | JSON |
| MCP server | https://prosignature.co/mcp | Streamable HTTP (POST JSON-RPC 2.0), stateless |
| MCP descriptor | https://prosignature.co/.well-known/mcp/server.json | server.json |
| Generator, prefillable | https://prosignature.co/email-signature-generator#name=… | HTML page (JavaScript); reads the URL fragment |
| The app (humans only) | https://prosignature.co/app | sign-up, logo, templates, Pro, Teams |
| Chrome extension | Chrome Web Store | Gmail, desktop Chrome |
| Privacy | https://prosignature.co/privacy | HTML |
What an agent can and cannot do without an account
Verified against the code and the live site on 18 October 2026. The free plan is what the API gives: Free signatures carry one small clickable 'Created with ProSignature' line under the signature; Pro removes it.
| Task | Without an account | What the human does | Where |
|---|---|---|---|
| Build an email-safe signature (four layouts, six colours) | Yes — API or MCP | — | API, MCP |
| Preview and edit it in a browser | Yes — edit_url opens the generator prefilled; the page keeps the HTML in a readonly #sig-html textarea | — | Generator |
| Quote the price for N people | Yes — computed, dated | — | pricing.json, quote_price |
| Logo, photo, social icons, the 13 templates, brand import | No | Signs up free at /app; Pro unlocks the 12 other templates and removes the credit line | App |
| Install into Gmail with auto-updates and replies covered | No — the extension only takes a signature that came from an account | Signs up, installs the free extension (no Google permission, no admin rights) | Extension |
| Write the signature into Gmail's settings | Only an agent that already holds gmail.settings.basic for that user, with their consent | Consents once; sets the replies default by hand | Gmail API sendAs |
| Install into Outlook, Microsoft 365 or Apple Mail | Steps only — copy-paste, no automation exists | Pastes the rendered signature | get_install_steps |
| Set up a team | Quote + roster only | Owner signs up, starts the 14-day Teams trial, adds people; each gets a personal link /s/… | Recipe 2 |
| Push through the Google Workspace admin directory | No — built, not switched on for accounts; ask us | Workspace super admin talks to us | Recipe 2 |
| Create an account, sign in, enter a card | Never | Always the human | — |
Recipe 1 — make a Gmail signature
- Collect name, title, company, phone, email and website. Pick a layout (
classic,stacked,minimal,card) and a colour (#rrggbb; the page offers #E8604C, #2B6CB0, #2F855A, #6B46C1, #2B2620, #B7791F).list_layoutsreturns the same list. - Call the API. GET with query parameters (encode
+as%2Band#as%23) or POST the fields as JSON. Every field is capped at 120 characters (website 200, http(s) or a bare domain), the body at 4 KB, and one IP gets 60 requests a minute. - Show the human the preview: open
edit_urlin their browser. The values travel in the URL fragment, so they never reach our server logs or analytics; the page renders once and keeps the HTML in#sig-html. - Install it (below). Then say what happened: built and previewed — never installed unless the human confirmed the paste or the API write succeeded.
The request
GET https://prosignature.co/api/v1/signature?name=Dana%20Levi&title=Owner&company=Levi%20Plumbing&phone=%2B972%2050-123-4567&email=dana%40leviplumbing.co.il&website=leviplumbing.co.il&layout=classic&colour=%232B6CB0&format=json
POST https://prosignature.co/api/v1/signature
Content-Type: application/json
{
"name": "Dana Levi",
"title": "Owner",
"company": "Levi Plumbing",
"phone": "+972 50-123-4567",
"email": "dana@leviplumbing.co.il",
"website": "leviplumbing.co.il",
"layout": "classic",
"colour": "#2B6CB0"
}
The response (abbreviated)
{
"html": "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\"><tr><td style=\"border-left:3px solid #2B6CB0;…\">…</td></tr></table><div style=\"margin-top:11px;font:11px Arial;color:#98A0AF\">Created with <a href=\"https://prosignature.co/?utm_source=signature&utm_medium=email&utm_campaign=watermark\" …>ProSignature</a></div>",
"text": "Dana Levi\nOwner · Levi Plumbing\n+972 50-123-4567 | dana@leviplumbing.co.il\nleviplumbing.co.il\nCreated with ProSignature",
"credit_line": true,
"plan": "free",
"layout": "classic",
"colour": "#2B6CB0",
"edit_url": "https://prosignature.co/email-signature-generator#name=Dana%20Levi&title=Owner&company=Levi%20Plumbing&phone=%2B972%2050-123-4567&email=dana%40leviplumbing.co.il&website=leviplumbing.co.il&layout=classic&colour=%232B6CB0",
"install": {
"gmail": [
"…steps…",
"Extension: https://chromewebstore.google.com/detail/dkbbkjinbcmcapdbcnecafhaldeeglnl"
],
"gmail_settings_api": "PATCH users/me/settings/sendAs/{email} with gmail.settings.basic (new mail only)",
"outlook": [
"…"
],
"apple_mail": [
"…"
]
},
"pricing_url": "https://prosignature.co/pricing.json",
"docs": "https://prosignature.co/for-ai-agents",
"verified": "2026-10-18"
}
format=html returns the signature alone as text/html (sent with Content-Security-Policy: sandbox; default-src 'none'; img-src https: and Content-Disposition: attachment; filename="signature.html", so a browser downloads it instead of rendering it on prosignature.co while a fetch-based agent reads the body unchanged); format=text returns the plain-text version. The HTML is the same bytes the generator page copies: a table with inline styles, no images, no scripts, and the credit line.
Install path A — paste into Gmail (any agent, any human)
- In the generator (
edit_url) click Copy signature — the rendered signature, not the code; Gmail's signature editor has no HTML mode. - Gmail → Settings (gear) → See all settings → General → Signature → Create new → paste → Save changes.
- Under Signature defaults choose it for new emails and for replies/forwards — Gmail keeps the two separately — then save again.
Install path B — the Gmail settings API (agents that hold gmail.settings.basic)
PATCH https://gmail.googleapis.com/gmail/v1/users/me/settings/sendAs/dana%40leviplumbing.co.il
Authorization: Bearer <token with https://www.googleapis.com/auth/gmail.settings.basic>
Content-Type: application/json
{"signature": "<the html field, unchanged>"}
- Scope
gmail.settings.basicis a restricted scope: the user consents to your app once, and Google shows an unverified-app screen until your OAuth verification completes. - It applies to new messages only. There is no API field for the replies/forwards default, so the human sets Signature defaults in Gmail, or installs the extension, which covers replies.
- Gmail sanitizes the HTML; this table + inline-style output survives it. The Gmail mobile app then uses the signature for new mail if no separate mobile signature is set.
- Do not write to a mailbox without the user's explicit, informed consent for that write.
Install path C — the hand-off (auto-updates, replies, logo)
The free Chrome extension inserts the signature into every Gmail compose, needs no Google permission and no admin rights, pulls updates from the account (every 6 hours, at start-up and when Gmail opens) and covers replies and forwards. It needs a signature that came from an account, so the human signs up free at /app (their details can be re-entered in a minute), installs the extension, and is done. That is also where logo, photo, the 13 templates and Pro live.
Recipe 2 — set up an 8-person team
- Quote. Read pricing.json or call
quote_price. For 8 people billed yearly the answer is $6.40/month ($76.80/year); billed monthly $9.60/month. Teams is $0.80 per person per month billed yearly, with a 5-person minimum: $4/month ($48/year) covers up to 5 people, 10 people cost $8/month ($96/year) and 15 people cost $12/month ($144/year). Billed monthly it is $1.20 per person ($6/month for up to 5 people). 14-day free trial. The admin counts as one of the people, so 8 people = the owner + 7 employees. - Prepare the roster. One row per person:
name,title,email,phone. The app has no bulk paste yet — the admin adds people one by one from this list, so keep it short and exact. - Hand off to the human. The owner signs up at /app (Google or email), lets the brand import pull the logo and colours from the company website, picks the template, starts the 14-day Teams trial and adds the people with their title and phone. Agents never create the account or enter the card.
- Each person installs their own. Every employee gets a personal link
https://prosignature.co/s/<key>that shows their signature and installs it with the extension, copy-paste or the optional Gmail save — no employee account, no Workspace admin access. The admin sees who is Live in Gmail. - Keep it current. A design edit re-renders everyone; extension users get it on the next sync, while pasted copies and copies saved in Gmail's settings must be pasted or saved again. Leavers are removed by the admin.
- Google Workspace admins who want signatures pushed from the directory (service account, domain-wide delegation, scopes
admin.directory.user.readonly+gmail.settings.basic): built but not switched on for accounts; a Workspace super admin asks us and we say whether and when. Say ask us, never automatic.
The quote call and answer
POST https://prosignature.co/mcp
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "quote_price",
"arguments": {
"plan": "teams",
"people": 8,
"billing": "yearly"
}
}
}
{
"plan": "teams",
"billing": "yearly",
"people": 8,
"per_person_per_month": 0.8,
"person_minimum": 5,
"billed_people": 8,
"per_month": 6.4,
"per_year": 76.8,
"trial_days": 14,
"credit_line": false,
"currency": "USD",
"pricing_url": "https://prosignature.co/pricing.json",
"verified": "2026-10-18"
}
The roster
[
{
"name": "Dana Levi",
"title": "Owner",
"email": "dana@leviplumbing.co.il",
"phone": "+972 50-123-4567"
},
{
"name": "Tom Adler",
"title": "Site manager",
"email": "tom@leviplumbing.co.il",
"phone": "+972 50-123-4568"
},
{
"name": "…6 more…",
"title": "",
"email": "",
"phone": ""
}
]
What a team gets, in one sentence for the human: one branded design, each person's own details, installed in a minute without IT — on Gmail and Google Workspace. Outlook and Microsoft 365 users paste the HTML; there is no Microsoft directory sync. Detail: Email signatures for teams.
MCP server
https://prosignature.co/mcp is a stateless Model Context Protocol server over Streamable HTTP: POST one JSON-RPC 2.0 message, get one JSON reply. No auth, no session id, no server-to-client stream (GET answers 405 with a short text). Every tool is read-only and changes nothing on our side.
| Tool | Input | Returns |
|---|---|---|
create_signature | name (required), title, company, phone, email, website, layout, colour | html + plain text + edit_url + install steps (free plan, credit line) |
list_layouts | — | the four layouts and six accent colours |
quote_price | plan pro|teams, people, billing yearly|monthly | per_month / per_year computed from pricing.json rules |
get_install_steps | client gmail|gmail_mobile|outlook|apple_mail|iphone | numbered steps, the Gmail settings API line, the extension link |
get_facts | — | what it is, free plan, Pro/Teams, Workspace, personal links, what it is not |
Connect
{
"mcpServers": {
"prosignature": {
"type": "streamable-http",
"url": "https://prosignature.co/mcp"
}
}
}
Hand-rolled: initialize, then call a tool
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {
"name": "my-agent",
"version": "1.0"
}
}
}
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "create_signature",
"arguments": {
"name": "Dana Levi",
"title": "Owner",
"company": "Levi Plumbing",
"phone": "+972 50-123-4567",
"email": "dana@leviplumbing.co.il",
"website": "leviplumbing.co.il",
"layout": "classic",
"colour": "#2B6CB0"
}
}
}
initialize echoes the client's protocolVersion when it is one we know (2025-06-18, 2025-03-26, 2024-11-05) and answers 2025-06-18 otherwise; notifications/initialized returns 202. Tool results carry a text content block and structuredContent with the same fields as the REST API. Descriptor: server.json.
API reference
Full schema: openapi.json. Both methods accept the same fields; unknown keys are ignored and nothing is ever fetched by the server (there is no logo URL in v1).
| Parameter | Rule |
|---|---|
name | required, ≤120 characters |
title, company, phone, email | optional, ≤120 characters each |
website | optional, ≤200; a bare domain (https:// is added) or an http(s) URL; other schemes are rejected |
layout | classic · stacked · minimal · card (default classic) |
colour (alias color) | #rrggbb (default #E8604C) |
format | json (default) · html · text |
| Status | Meaning |
|---|---|
| 200 | the signature; JSON has html, text, credit_line, plan, layout, colour, edit_url, install, pricing_url, docs, verified |
| 400 | a field broke a rule — the JSON error says which |
| 405 | a method other than GET, POST or OPTIONS |
| 413 | POST body over 4 KB |
| 429 | more than 60 requests a minute from one IP; Retry-After is set |
Headers on every answer: Access-Control-Allow-Origin: *, Cache-Control: no-store, X-Content-Type-Options: nosniff. Request bodies are never logged.
Rules we ask agents to follow
- Never create an account, sign in, or enter payment details for a human. Hand them the URL.
- Keep the credit line in the free output; the human removes it by choosing Pro in the app.
- Quote prices with their date (18 October 2026) and the formula; do not round a team quote up or down.
- Put personal details in the URL fragment (
edit_url), not in query strings you log. - Say built, previewed or the human installed it — never installed on your own say-so.
- Respect the 60-requests-a-minute limit; cache
pricing.jsonandlist_layouts.
Frequently asked questions
Can an AI agent create a ProSignature email signature without an account?
Yes. GET or POST https://prosignature.co/api/v1/signature with name, title, company, phone, email, website, a layout and a colour, or call the create_signature tool on the MCP server at https://prosignature.co/mcp. Both return the free plan's email-safe HTML, a plain-text version and an edit_url that opens the generator prefilled. No key, cookie or account is needed.
Does the signature the API returns carry the credit line?
Yes. Free signatures carry one small clickable 'Created with ProSignature' line under the signature; Pro removes it. The API output is the free plan's output, byte for byte what the generator page copies; removing the line is a Pro feature of the app.
How much does ProSignature cost for a team of 8 people?
$6.40/month ($76.80/year) billed yearly, or $9.60/month billed monthly: Teams is $0.80 per person per month billed yearly, with a 5-person minimum: $4/month ($48/year) covers up to 5 people, 10 people cost $8/month ($96/year) and 15 people cost $12/month ($144/year). Billed monthly it is $1.20 per person ($6/month for up to 5 people). 14-day free trial. The admin counts as one of the 8. Read it from https://prosignature.co/pricing.json or the quote_price tool. Verified 18 October 2026.
Can an agent install the signature into Gmail?
Not on its own. It can give the paste steps, or — only if it already holds the gmail.settings.basic scope for that user with their consent — PATCH users/me/settings/sendAs/{email}, which applies to new mail only. Automatic install with updates and replies covered is the free Chrome extension, which needs the human to sign up first.
Does ProSignature push signatures through the Google Workspace admin directory?
Not today: each person installs from the extension, the optional Gmail save or a personal link, which needs no Workspace admin access. Admin-wide push with domain-wide delegation is built but not switched on for accounts; ask us (a Workspace super admin), and we say whether and when it can be enabled.
Is there an MCP server?
Yes: https://prosignature.co/mcp, Streamable HTTP, stateless, no auth, read-only. Tools: create_signature, list_layouts, quote_price, get_install_steps and get_facts. The descriptor is at https://prosignature.co/.well-known/mcp/server.json and the REST schema at https://prosignature.co/openapi.json.
What does ProSignature not do?
It is not a mail-flow (server-side) signature service, so it does not enforce disclaimers on every device; it has no Microsoft 365 directory sync (Outlook is copy-paste); no click analytics; and the no-account API returns the free plan only — four layouts, six colours, no logo or photo, with the credit line.