Token of Esteem MCP
An MCP server for a small press service that allows AI agents to commission, print, and mail personalized 16-page booklets as gifts. It supports listing voices, formats, and image models, validating briefs, creating gifts, and managing orders via Stripe payment tokens.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.tokenofesteem.com/v1/mcpWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to tokenofesteem.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Commission a personalized 16-page booklet for a user or colleague
- List available voices, formats, and image models for customization
- Validate a gift brief before printing to ensure content safety
- Create a gift order and handle payment via Stripe shared token
Source and maintenance
Protocol and capabilities
- Server
- Token of Esteem 0.1.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Tools
12 advertised
list_voices
List the three comedic voices (Hype Man, Best Friend Roast, Conspiracy Theorist) and the cover image model each prefers. Free, no side effects. Call this first to pick a voice.
{
"type": "object",
"properties": {}
}list_formats
List supported booklet formats. There is one today: manual_v1, a 16-page booklet. Free, no side effects.
{
"type": "object",
"properties": {}
}list_image_models
List supported cover image models and their per-call cost. Free, no side effects.
{
"type": "object",
"properties": {}
}get_pricing
Compute the exact total for a hypothetical gift (format, voice, image model, ship_to) before you commit. Free, no order is created. Call before create_gift so you know the charge.
{
"type": "object",
"required": [
"ship_to"
],
"properties": {
"voice": {
"enum": [
"hype_man",
"best_friend",
"conspiracy"
],
"type": "string",
"description": "Optional comedic voice. It does not change the price; accepted for parity with create_gift."
},
"format": {
"enum": [
"manual_v1"
],
"type": "string",
"description": "Booklet format to price. Only manual_v1 is supported today."
},
"ship_to": {
"type": "object",
"required": [
"name",
"line1",
"city",
"region",
"postal_code",
"country"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"line1": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"line2": {
"type": "string",
"maxLength": 120
},
"phone": {
"type": "string",
"maxLength": 30
},
"region": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2,
"minLength": 2
},
"postal_code": {
"type": "string",
"maxLength": 20,
"minLength": 1
}
},
"description": "Destination address. US is supported; the total and tax depend on the destination."
},
"image_model": {
"type": "string",
"description": "Optional cover image model id. Some models add a small per-call cost."
}
}
}validate_brief
Run the content policy on a brief without charging or ordering. Free. Call before create_gift so a refusal surfaces early. A booklet that would wound the recipient is refused here, not at charge time.
{
"type": "object",
"required": [
"brief"
],
"properties": {
"brief": {
"type": "object",
"required": [
"recipient_first_name",
"voice",
"tone",
"celebrate"
],
"properties": {
"tone": {
"enum": [
"warm_with_ribbing",
"warm_only",
"deep_appreciation"
],
"type": "string"
},
"voice": {
"enum": [
"hype_man",
"best_friend",
"conspiracy"
],
"type": "string"
},
"in_jokes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 4
},
"maxItems": 6,
"minItems": 0
},
"celebrate": {
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"minLength": 4
},
"maxItems": 8,
"minItems": 2
},
"image_brief": {
"type": "string",
"maxLength": 300
},
"image_model": {
"enum": [
"flux_2_pro",
"imagen_4",
"ideogram_3",
"recraft_v4",
"gpt_image_2",
"nano_banana_2"
],
"type": "string"
},
"tease_gently": {
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"minLength": 4
},
"maxItems": 6,
"minItems": 0
},
"do_not_mention": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"maxItems": 8,
"minItems": 0
},
"recipient_first_name": {
"type": "string",
"pattern": "^[a-zA-Z\\s'-]+$",
"maxLength": 40,
"minLength": 1
}
},
"description": "The same brief you would pass to create_gift. It is checked against the content policy, free, with no order created."
}
}
}create_gift
Place the order: write, print, and mail the booklet. CHARGES the buyer. The recipient is whoever you name in recipient, which may be your own user. Idempotent on idempotency_key for 24 hours. Pass shared_payment_token to pay tokenlessly, or omit it to charge the account's saved card.
{
"type": "object",
"required": [
"idempotency_key",
"brief",
"recipient"
],
"properties": {
"brief": {
"type": "object",
"required": [
"recipient_first_name",
"voice",
"tone",
"celebrate"
],
"properties": {
"tone": {
"enum": [
"warm_with_ribbing",
"warm_only",
"deep_appreciation"
],
"type": "string"
},
"voice": {
"enum": [
"hype_man",
"best_friend",
"conspiracy"
],
"type": "string"
},
"in_jokes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 4
},
"maxItems": 6,
"minItems": 0
},
"celebrate": {
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"minLength": 4
},
"maxItems": 8,
"minItems": 2
},
"image_brief": {
"type": "string",
"maxLength": 300
},
"image_model": {
"enum": [
"flux_2_pro",
"imagen_4",
"ideogram_3",
"recraft_v4",
"gpt_image_2",
"nano_banana_2"
],
"type": "string"
},
"tease_gently": {
"type": "array",
"items": {
"type": "string",
"maxLength": 140,
"minLength": 4
},
"maxItems": 6,
"minItems": 0
},
"do_not_mention": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"maxItems": 8,
"minItems": 0
},
"recipient_first_name": {
"type": "string",
"pattern": "^[a-zA-Z\\s'-]+$",
"maxLength": 40,
"minLength": 1
}
},
"description": "Structured brief about the recipient: what to celebrate, what to tease gently, and the inside jokes worth knowing."
},
"format": {
"enum": [
"manual_v1"
],
"type": "string",
"description": "Booklet format. Only manual_v1, a 16-page booklet, is supported today."
},
"recipient": {
"oneOf": [
{
"type": "object",
"required": [
"recipient_id"
],
"properties": {
"recipient_id": {
"type": "string",
"minLength": 1
}
}
},
{
"type": "object",
"required": [
"first_name",
"ship_to"
],
"properties": {
"ship_to": {
"type": "object",
"required": [
"name",
"line1",
"city",
"region",
"postal_code",
"country"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"line1": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"line2": {
"type": "string",
"maxLength": 120
},
"phone": {
"type": "string",
"maxLength": 30
},
"region": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2,
"minLength": 2
},
"postal_code": {
"type": "string",
"maxLength": 20,
"minLength": 1
}
}
},
"first_name": {
"type": "string",
"pattern": "^[a-zA-Z\\s'-]+$",
"maxLength": 40,
"minLength": 1
}
}
}
],
"description": "Who receives the booklet and where to mail it. Pass an inline recipient with a US ship_to, or a saved recipient_id."
},
"agent_note": {
"type": "string",
"maxLength": 500,
"description": "Optional note from the agent, stored with the order for support. Never printed in the booklet."
},
"idempotency_key": {
"type": "string",
"maxLength": 64,
"minLength": 8,
"description": "Caller-chosen key that makes this order idempotent for 24 hours. Reuse the same key to retry safely without charging twice."
},
"preview_before_print": {
"type": "boolean",
"description": "If true, the gift pauses for buyer review before printing instead of printing automatically."
},
"shared_payment_token": {
"type": "string",
"pattern": "^spt_",
"description": "Single-use Stripe Shared Payment Token (spt_...) to pay without a stored card. Omit to charge the account default."
}
}
}get_gift
Fetch a gift by gift_id and return its full resource: status, voice, format, pricing, the recipient, and fulfillment (Lulu job id, carrier, tracking URL, estimated delivery). Free and read-only. Use it to poll progress after create_gift: status advances through the pipeline to shipped then delivered, or ends at held, refused, cancelled, or failed.
{
"type": "object",
"required": [
"gift_id"
],
"properties": {
"gift_id": {
"type": "string",
"description": "The gift_id returned by create_gift, identifying the order to fetch."
}
}
}list_gifts
Paginated list of gifts on the account, with optional status and date filters. Free.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum number of gifts to return, 1 to 100. Defaults to 50."
},
"since": {
"type": "string",
"format": "date-time",
"description": "Only return gifts created at or after this ISO 8601 timestamp."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous list_gifts response."
},
"status": {
"enum": [
"created",
"validating",
"generating",
"output_validating",
"rendering",
"awaiting_buyer_preview",
"queued_for_print",
"printed",
"shipped",
"delivered",
"held",
"refused",
"cancelled",
"failed"
],
"type": "string",
"description": "Only return gifts in this status, for example shipped, delivered, or cancelled."
}
}
}cancel_gift
Cancel an in-flight gift and receive the refund amount. Free. Only possible before the booklet goes to print; once printing has started it fails with cancel_too_late. Pass the gift_id from create_gift and an optional reason for your records.
{
"type": "object",
"required": [
"gift_id"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 200,
"description": "Optional human-readable reason for the cancellation, recorded on the order."
},
"gift_id": {
"type": "string",
"description": "The gift_id returned by create_gift, identifying the order to cancel."
}
}
}get_account
Return this account's spending caps and month-to-date spend. Free. Use it to confirm budget before create_gift.
{
"type": "object",
"properties": {}
}list_recipients
Return the account's saved recipients (address book). Free. Reuse a recipient_id in create_gift instead of re-entering an address.
{
"type": "object",
"properties": {}
}create_setup_link
Return a hosted Stripe link for the buyer to save a card or wallet to the account. After that, create_gift without a shared_payment_token charges the saved card.
{
"type": "object",
"properties": {
"return_url": {
"type": "string",
"format": "uri"
}
}
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 396 ms
- 95th percentile latency
- 396 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 396 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http token-of-esteem-mcp https://mcp.tokenofesteem.com/v1/mcpCodex
codex mcp add token-of-esteem-mcp --url https://mcp.tokenofesteem.com/v1/mcpCursor
{
"mcpServers": {
"token-of-esteem-mcp": {
"url": "https://mcp.tokenofesteem.com/v1/mcp"
}
}
}Cline
{
"mcpServers": {
"token-of-esteem-mcp": {
"type": "streamableHttp",
"url": "https://mcp.tokenofesteem.com/v1/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"token-of-esteem-mcp": {
"type": "http",
"url": "https://mcp.tokenofesteem.com/v1/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http token-of-esteem-mcp https://mcp.tokenofesteem.com/v1/mcpClaude Desktop
https://mcp.tokenofesteem.com/v1/mcpWindsurf
{
"mcpServers": {
"token-of-esteem-mcp": {
"serverUrl": "https://mcp.tokenofesteem.com/v1/mcp"
}
}
}Let your agent find its tools
Find servers like Token of Esteem MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Token of Esteem MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.