token-of-esteem

A press your agent can commission: a funny, personalized printed booklet, mailed as a gift.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
67%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,333Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (1.82% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "token-of-esteem": {
      "url": "https://mcp.tokenofesteem.com/v1/mcp"
    }
  }
}

Remote endpoints

https://mcp.tokenofesteem.com/v1/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_formats

List supported booklet formats. There is one today: manual_v1, a 16-page booklet. Free, no side effects.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_image_models

List supported cover image models and their per-call cost. Free, no side effects.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡get_pricing(format, ship_to, voice, image_model)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "format": {
      "type": "string",
      "enum": [
        "manual_v1"
      ],
      "description": "Booklet format to price. Only manual_v1 is supported today."
    },
    "ship_to": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "line1": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "line2": {
          "type": "string",
          "maxLength": 120
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        },
        "region": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        },
        "postal_code": {
          "type": "string",
          "minLength": 1,
          "maxLength": 20
        },
        "country": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2,
          "pattern": "^[A-Z]{2}$"
        },
        "phone": {
          "type": "string",
          "maxLength": 30
        }
      },
      "required": [
        "name",
        "line1",
        "city",
        "region",
        "postal_code",
        "country"
      ],
      "description": "Destination address. US is supported; the total and tax depend on the destination."
    },
    "voice": {
      "type": "string",
      "enum": [
        "hype_man",
        "best_friend",
        "conspiracy"
      ],
      "description": "Optional comedic voice. It does not change the price; accepted for parity with create_gift."
    },
    "image_model": {
      "type": "string",
      "description": "Optional cover image model id. Some models add a small per-call cost."
    }
  },
  "required": [
    "ship_to"
  ]
}
🟡validate_brief(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.

Input Schema

{
  "type": "object",
  "properties": {
    "brief": {
      "type": "object",
      "properties": {
        "recipient_first_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40,
          "pattern": "^[a-zA-Z\\s'-]+$"
        },
        "voice": {
          "type": "string",
          "enum": [
            "hype_man",
            "best_friend",
            "conspiracy"
          ]
        },
        "tone": {
          "type": "string",
          "enum": [
            "warm_with_ribbing",
            "warm_only",
            "deep_appreciation"
          ]
        },
        "celebrate": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 140
          },
          "minItems": 2,
          "maxItems": 8
        },
        "tease_gently": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 140
          },
          "minItems": 0,
          "maxItems": 6
        },
        "in_jokes": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 200
          },
          "minItems": 0,
          "maxItems": 6
        },
        "do_not_mention": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 60
          },
          "minItems": 0,
          "maxItems": 8
        },
        "image_brief": {
          "type": "string",
          "maxLength": 300
        },
        "image_model": {
          "type": "string",
          "enum": [
            "flux_2_pro",
            "imagen_4",
            "ideogram_3",
            "recraft_v4",
            "gpt_image_2",
            "nano_banana_2"
          ]
        }
      },
      "required": [
        "recipient_first_name",
        "voice",
        "tone",
        "celebrate"
      ],
      "description": "The same brief you would pass to create_gift. It is checked against the content policy, free, with no order created."
    }
  },
  "required": [
    "brief"
  ]
}
🟡create_gift(idempotency_key, format, brief, recipient, preview_before_print, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 64,
      "description": "Caller-chosen key that makes this order idempotent for 24 hours. Reuse the same key to retry safely without charging twice."
    },
    "format": {
      "type": "string",
      "enum": [
        "manual_v1"
      ],
      "description": "Booklet format. Only manual_v1, a 16-page booklet, is supported today."
    },
    "brief": {
      "type": "object",
      "properties": {
        "recipient_first_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40,
          "pattern": "^[a-zA-Z\\s'-]+$"
        },
        "voice": {
          "type": "string",
          "enum": [
            "hype_man",
            "best_friend",
            "conspiracy"
          ]
        },
        "tone": {
          "type": "string",
          "enum": [
            "warm_with_ribbing",
            "warm_only",
            "deep_appreciation"
          ]
        },
        "celebrate": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 140
          },
          "minItems": 2,
          "maxItems": 8
        },
        "tease_gently": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 140
          },
          "minItems": 0,
          "maxItems": 6
        },
        "in_jokes": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 4,
            "maxLength": 200
          },
          "minItems": 0,
          "maxItems": 6
        },
        "do_not_mention": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 60
          },
          "minItems": 0,
          "maxItems": 8
        },
        "image_brief": {
          "type": "string",
          "maxLength": 300
        },
        "image_model": {
          "type": "string",
          "enum": [
            "flux_2_pro",
            "imagen_4",
            "ideogram_3",
            "recraft_v4",
            "gpt_image_2",
            "nano_banana_2"
          ]
        }
      },
      "required": [
        "recipient_first_name",
        "voice",
        "tone",
        "celebrate"
      ],
      "description": "Structured brief about the recipient: what to celebrate, what to tease gently, and the inside jokes worth knowing."
    },
    "recipient": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "recipient_id": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "recipient_id"
          ]
        },
        {
          "type": "object",
          "properties": {
            "first_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 40,
              "pattern": "^[a-zA-Z\\s'-]+$"
            },
            "ship_to": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "line1": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "line2": {
                  "type": "string",
                  "maxLength": 120
                },
                "city": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 60
                },
                "region": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 60
                },
                "postal_code": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 20
                },
                "country": {
                  "type": "string",
                  "minLength": 2,
                  "maxLength": 2,
                  "pattern": "^[A-Z]{2}$"
                },
                "phone": {
                  "type": "string",
                  "maxLength": 30
                }
              },
              "required": [
                "name",
                "line1",
                "city",
                "region",
                "postal_code",
                "country"
              ]
            }
          },
          "required": [
            "first_name",
            "ship_to"
          ]
        }
      ],
      "description": "Who receives the booklet and where to mail it. Pass an inline recipient with a US ship_to, or a saved recipient_id."
    },
    "preview_before_print": {
      "type": "boolean",
      "description": "If true, the gift pauses for buyer review before printing instead of printing automatically."
    },
    "agent_note": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional note from the agent, stored with the order for support. Never printed in the booklet."
    },
    "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."
    }
  },
  "required": [
    "idempotency_key",
    "brief",
    "recipient"
  ]
}
🟡get_gift(gift_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "gift_id": {
      "type": "string",
      "description": "The gift_id returned by create_gift, identifying the order to fetch."
    }
  },
  "required": [
    "gift_id"
  ]
}
🟢list_gifts(status, since, limit, cursor)

Paginated list of gifts on the account, with optional status and date filters. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "created",
        "validating",
        "generating",
        "output_validating",
        "rendering",
        "awaiting_buyer_preview",
        "queued_for_print",
        "printed",
        "shipped",
        "delivered",
        "held",
        "refused",
        "cancelled",
        "failed"
      ],
      "description": "Only return gifts in this status, for example shipped, delivered, or cancelled."
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return gifts created at or after this ISO 8601 timestamp."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Maximum number of gifts to return, 1 to 100. Defaults to 50."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous list_gifts response."
    }
  }
}
🔴cancel_gift(gift_id, reason)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "gift_id": {
      "type": "string",
      "description": "The gift_id returned by create_gift, identifying the order to cancel."
    },
    "reason": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional human-readable reason for the cancellation, recorded on the order."
    }
  },
  "required": [
    "gift_id"
  ]
}
🟡get_account

Return this account's spending caps and month-to-date spend. Free. Use it to confirm budget before create_gift.

Input Schema

{
  "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.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡create_setup_link(return_url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "return_url": {
      "type": "string",
      "format": "uri"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools