Tipping Rules MCP
A read-only MCP server providing editorial tipping guidance for 212 destinations. It allows AI agents to search countries, retrieve specific tipping rules for restaurants, taxis, hotels, and tour guides, and calculate appropriate tips based on local norms and currency.
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://www.tippingrules.com/api/mcpWhat its tools do
3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (3)
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 tippingrules.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for tipping customs in specific countries
- Retrieve detailed tipping rules for restaurants and hotels
- Calculate appropriate tip amounts based on bill total and local norms
Source and maintenance
Protocol and capabilities
- Server
- tipping-rules 1.0.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 3 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
search_countries — Search destinations
Search Tipping Rules destinations by name or region. Returns matching destinations with status and canonical page URLs.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Country name, alias, or region fragment to search."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"query",
"count",
"results",
"methodologyUrl",
"source"
],
"properties": {
"ok": {
"type": "boolean",
"const": true,
"description": "True when search completed successfully."
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of destinations returned (max 8)."
},
"query": {
"type": "string",
"description": "Echo of the submitted search query."
},
"source": {
"type": "string",
"const": "Tipping Rules",
"description": "Attribution for downstream citations."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"name",
"status",
"region",
"canonicalUrl"
],
"properties": {
"name": {
"type": "string",
"description": "Display name of the destination."
},
"slug": {
"type": "string",
"description": "Country slug for follow-up tool calls."
},
"region": {
"type": [
"string",
"null"
],
"description": "Region label from the catalog, when available."
},
"status": {
"type": [
"string",
"null"
],
"description": "Tipping expectation label, when available."
},
"canonicalUrl": {
"type": "string",
"format": "uri",
"description": "Canonical country page URL on tippingrules.com."
}
},
"additionalProperties": false
},
"description": "Matching destinations ordered by relevance."
},
"methodologyUrl": {
"type": "string",
"format": "uri",
"description": "How Tipping Rules reviews and sources guidance."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ok",
"code",
"message"
],
"properties": {
"ok": {
"type": "boolean",
"const": false,
"description": "False when the tool could not complete successfully."
},
"code": {
"type": "string",
"description": "Machine-readable error code (e.g. NOT_FOUND, VALIDATION, TIMEOUT)."
},
"message": {
"type": "string",
"description": "Short, agent-safe error message."
}
},
"additionalProperties": false
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Search results or a structured error."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_tipping_rules — Get tipping rules
Get concise tipping guidance for a destination: status, summary, key service recommendations, last reviewed date, and the canonical page URL.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Country slug (preferred) or country name, e.g. japan or Japan."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"country",
"slug",
"status",
"summary",
"situations",
"lastReviewed",
"canonicalUrl",
"methodologyUrl",
"source"
],
"properties": {
"ok": {
"type": "boolean",
"const": true,
"description": "True when country guidance was loaded."
},
"slug": {
"type": "string",
"description": "Country slug."
},
"source": {
"type": "string",
"const": "Tipping Rules",
"description": "Attribution for downstream citations."
},
"status": {
"type": [
"string",
"null"
],
"description": "Overall tipping expectation label, when available."
},
"country": {
"type": "string",
"description": "Display name of the destination."
},
"summary": {
"type": [
"string",
"null"
],
"description": "Short editorial summary of local tipping norms."
},
"situations": {
"type": "array",
"items": {
"type": "object",
"required": [
"service",
"recommendation",
"expectation"
],
"properties": {
"service": {
"type": "string",
"description": "Service category label (e.g. Restaurant, Taxi)."
},
"expectation": {
"type": "string",
"description": "Overall tipping expectation context for the destination."
},
"recommendation": {
"type": "string",
"description": "Concise tipping recommendation for the service."
}
},
"additionalProperties": false
},
"description": "Key service recommendations (up to 8)."
},
"canonicalUrl": {
"type": "string",
"format": "uri",
"description": "Canonical country page URL."
},
"lastReviewed": {
"type": [
"string",
"null"
],
"description": "ISO date when guidance was last reviewed, when available."
},
"methodologyUrl": {
"type": "string",
"format": "uri",
"description": "How Tipping Rules reviews and sources guidance."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ok",
"code",
"message"
],
"properties": {
"ok": {
"type": "boolean",
"const": false,
"description": "False when the tool could not complete successfully."
},
"code": {
"type": "string",
"description": "Machine-readable error code (e.g. NOT_FOUND, VALIDATION, TIMEOUT)."
},
"message": {
"type": "string",
"description": "Short, agent-safe error message."
}
},
"additionalProperties": false
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Country tipping guidance or a structured error."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_tip — Calculate tip
Calculate a suggested tip and total for a bill using Tipping Rules destination norms (percent or round-up). Returns amounts plus canonical destination and calculator URLs.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"country",
"bill"
],
"properties": {
"bill": {
"type": [
"number",
"string"
],
"description": "Bill amount in local currency units (positive number)."
},
"country": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Country slug or name for local tipping norms."
},
"service": {
"type": "string",
"description": "Service category. Prefer restaurant, bar, taxi, delivery, hotelStaff, or tourGuides."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"country",
"slug",
"service",
"bill",
"currency",
"mode",
"tipPercent",
"tipAmount",
"total",
"recommendation",
"lastReviewed",
"canonicalUrl",
"calculatorUrl",
"methodologyUrl",
"source"
],
"properties": {
"ok": {
"type": "boolean",
"const": true,
"description": "True when the tip was calculated."
},
"bill": {
"type": "number",
"description": "Bill amount in local currency units.",
"exclusiveMinimum": 0
},
"mode": {
"enum": [
"percent",
"round_up",
"zero"
],
"type": "string",
"description": "Calculation mode applied for this service and destination."
},
"slug": {
"type": "string",
"description": "Country slug."
},
"total": {
"type": "number",
"description": "Bill plus suggested tip."
},
"source": {
"type": "string",
"const": "Tipping Rules",
"description": "Attribution for downstream citations."
},
"country": {
"type": "string",
"description": "Display name of the destination."
},
"service": {
"type": "string",
"description": "Service category label used for the calculation."
},
"currency": {
"type": [
"string",
"null"
],
"description": "ISO currency code when known (e.g. EUR, USD)."
},
"tipAmount": {
"type": "number",
"description": "Suggested tip amount in local currency units."
},
"tipPercent": {
"type": [
"number",
"null"
],
"description": "Applied tip percent when mode is percent; null for round-up."
},
"canonicalUrl": {
"type": "string",
"format": "uri",
"description": "Canonical country page URL."
},
"lastReviewed": {
"type": [
"string",
"null"
],
"description": "ISO date when guidance was last reviewed, when available."
},
"calculatorUrl": {
"type": "string",
"format": "uri",
"description": "Deep link to the on-site calculator for this country."
},
"methodologyUrl": {
"type": "string",
"format": "uri",
"description": "How Tipping Rules reviews and sources guidance."
},
"recommendation": {
"type": [
"string",
"null"
],
"description": "Human-readable norm string for the selected service."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ok",
"code",
"message"
],
"properties": {
"ok": {
"type": "boolean",
"const": false,
"description": "False when the tool could not complete successfully."
},
"code": {
"type": "string",
"description": "Machine-readable error code (e.g. NOT_FOUND, VALIDATION, TIMEOUT)."
},
"message": {
"type": "string",
"description": "Short, agent-safe error message."
}
},
"additionalProperties": false
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Tip calculation result or a structured error."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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-07: 1 of 1 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
- 573 ms
- 95th percentile latency
- 573 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 573 ms · metadata changed · 3 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http tipping-rules-mcp https://www.tippingrules.com/api/mcpCodex
codex mcp add tipping-rules-mcp --url https://www.tippingrules.com/api/mcpCursor
{
"mcpServers": {
"tipping-rules-mcp": {
"url": "https://www.tippingrules.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"tipping-rules-mcp": {
"type": "streamableHttp",
"url": "https://www.tippingrules.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"tipping-rules-mcp": {
"type": "http",
"url": "https://www.tippingrules.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http tipping-rules-mcp https://www.tippingrules.com/api/mcpClaude Desktop
https://www.tippingrules.com/api/mcpWindsurf
{
"mcpServers": {
"tipping-rules-mcp": {
"serverUrl": "https://www.tippingrules.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like Tipping Rules 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 Tipping Rules 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.