get_etiquette_guide
Retrieve country-specific business etiquette guides for APAC, covering meishi protocol, gift culture, drinking norms, hierarchy, and religious awareness. Select a country to get tailored advice.
Instructions
Business etiquette per country: meishi protocol, gift culture, drinking culture, hierarchy norms, religious awareness.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes |
Implementation Reference
- src/main.ts:129-138 (schema)ETIQUETTE_GUIDES data object containing business etiquette data per country (Japan, Singapore, Korea, India, Australia, Hong Kong, Taiwan, Indonesia). Includes meishi protocol, gift culture, drinking culture, hierarchy norms, religious awareness, etc.
const ETIQUETTE_GUIDES: Record<string, any> = { japan: { meishi_protocol: "Business cards exchanged with both hands, slight bow. Read the card carefully. Place it on the table during the meeting — never in pocket.", gift_culture: "Modest gifts when visiting (omiyage). Wrap matters more than content. Avoid sets of 4 (death).", drinking_culture: "Nomikai bonding important. Pour for others, never yourself. Refusal possible but signals distance.", silence: "Comfortable with silence — don't fill it." }, singapore: { meishi_protocol: "Bilingual cards (English + Chinese for Chinese contacts) appreciated.", gift_culture: "Modest, practical gifts. Avoid clocks (Chinese), pork products, alcohol if Muslim.", communication: "Direct OK, but always with respect. 'Lah' OK after rapport." }, korea: { meishi_protocol: "Hand and receive cards with both hands, slight bow. Senior person initiates.", gift_culture: "Modest gifts, wrapped. Liquor (whiskey) appreciated for senior contacts. Avoid green hats (cultural taboo).", drinking_culture: "Soju/beer culture for relationship. Pour for others. 'One-shot' culture — pace yourself.", hierarchy: "Always defer to most senior person — eye contact, who speaks first, seating." }, india: { meeting_protocol: "Namaste greeting acceptable. Handshakes increasingly common. Family chat first.", gift_culture: "Modest gifts. Avoid leather (Hindu/Jain) and pork (Muslim). Sweets appreciated.", food_culture: "Vegetarianism common. Don't assume.", time_orientation: "Indian Standard Time = often delayed. Patience." }, australia: { meeting_protocol: "First names immediately. Handshake firm. No bowing.", gift_culture: "Not really expected for business. Wine OK if invited home.", communication: "Casual humor. Banter expected. Self-deprecation appreciated." }, hongkong: { meishi_protocol: "Bilingual (English + Traditional Chinese). Both hands.", gift_culture: "Avoid clocks, white flowers, sets of 4. Red appreciated for festivities.", food_culture: "Yum cha lunch meetings effective. Decline politely 3 times before accepting (cultural expectation)." }, taiwan: { meishi_protocol: "Traditional Chinese characters preferred. Both hands.", gift_culture: "Tea, fruit baskets standard. Avoid clocks, white flowers.", food_culture: "Long meals expected. Hosts pay (alternation builds relationship)." }, indonesia: { meeting_protocol: "Right hand for greetings/handshakes (left hand unclean culturally). Use Bapak/Ibu.", gift_culture: "Avoid pork, alcohol, leather to Muslim contacts. Sweets/snacks appreciated.", religious_awareness: "Halal food considerations. Prayer time accommodations.", communication: "Avoid direct 'no'. Smile can mask discomfort." } }; - src/main.ts:176-176 (registration)Tool registration with name 'get_etiquette_guide', description, and inputSchema requiring a country parameter validated against ETIQUETTE_GUIDES keys.
{ name: "get_etiquette_guide", description: "Business etiquette per country: meishi protocol, gift culture, drinking culture, hierarchy norms, religious awareness.", inputSchema: { type: "object", properties: { country: { type: "string", enum: Object.keys(ETIQUETTE_GUIDES) } }, required: ["country"] } }, - src/main.ts:190-190 (handler)Handler for the 'get_etiquette_guide' tool: looks up the country in ETIQUETTE_GUIDES, throws if not found, and returns the etiquette data wrapped with module label.
case "get_etiquette_guide": { const d = ETIQUETTE_GUIDES[country]; if (!d) throw new Error(`Unknown: ${country}`); return { content: [{ type: "text", text: JSON.stringify({ module: "APAC Business Etiquette", country, ...d }, null, 2) }] }; }