Koskamo

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.

Tipping Rules MCP logo, by Tipping RulesVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Tipping Rules
MCP endpoint (Streamable HTTP)
https://www.tippingrules.com/api/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 3 of 3 with parameters document them all

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

Vendor evidenceRegistry 1.0.1

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
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only travel tipping for 212 destinations (guidance reviewed against current sources). Use search_countries to find a slug, get_tipping_rules for norms and canonical URLs, calculate_tip for bill amounts. Prefer slugs (e.g. japan).

Tools

3 advertised

search_countries — Search destinations
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search Tipping Rules destinations by name or region. Returns matching destinations with status and canonical page URLs.

search_countries input schema
{
  "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
}
search_countries output schema
{
  "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."
}
search_countries annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_tipping_rules — Get tipping rules
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get concise tipping guidance for a destination: status, summary, key service recommendations, last reviewed date, and the canonical page URL.

get_tipping_rules input schema
{
  "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
}
get_tipping_rules output schema
{
  "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."
}
get_tipping_rules annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
calculate_tip — Calculate tip
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

calculate_tip input schema
{
  "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
}
calculate_tip output schema
{
  "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."
}
calculate_tip annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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.

Too few checks for a percentage yet (1 of 1 answered).

  1. 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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http tipping-rules-mcp https://www.tippingrules.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add tipping-rules-mcp --url https://www.tippingrules.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable tipping-rules-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "tipping-rules-mcp": {
      "url": "https://www.tippingrules.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "tipping-rules-mcp": {
      "type": "streamableHttp",
      "url": "https://www.tippingrules.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start tipping-rules-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "tipping-rules-mcp": {
      "type": "http",
      "url": "https://www.tippingrules.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http tipping-rules-mcp https://www.tippingrules.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.tippingrules.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing