token-of-esteem
A press your agent can commission: a funny, personalized printed booklet, mailed as a gift.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"token-of-esteem": {
"url": "https://mcp.tokenofesteem.com/v1/mcp"
}
}
}원격 엔드포인트
https://mcp.tokenofesteem.com/v1/mcpstreamable-http할 수 있는 일
도구 목록
도구 (12)
🟢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(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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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_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.
입력 스키마
{
"type": "object",
"properties": {
"return_url": {
"type": "string",
"format": "uri"
}
}
}커뮤니티
증거