Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,544Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:dc99a9644b079e8d1b2c28e7be695cd50580d1d43b267350458b813c27b84b59
What it is
What a remote MCP server returned when asked what it offers: 20 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "\n Check live stay price for a previously recommended hotel.\n\n REQUIREMENT:\n - update_stay_dates must already have been called\n ", "inputSchema": { "properties": { "hotel_code_or_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Hotel Code Or Name" }, "hotel_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Hotel Index" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "check_stay_priceArguments", "type": "object" }, "name": "check_stay_price", "outputSchema": { "additionalProperties": true, "title": "check_stay_priceDictOutput", "type": "object" } }, { "description": "\n Clear the entire session.\n ", "inputSchema": { "properties": { "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "clear_sessionArguments", "type": "object" }, "name": "clear_session", "outputSchema": { "additionalProperties": true, "title": "clear_sessionDictOutput", "type": "object" } }, { "description": "\n Lightweight fallback extraction from raw text.\n\n This is mainly for debugging and fallback use.\n It is NOT the preferred production path.\n Preferred production path:\n - external model understands raw text\n - external model outputs standard UserProfile fields\n - call update_user_profile_from_model(...)\n ", "inputSchema": { "properties": { "text": { "title": "Text", "type": "string" } }, "required": [ "text" ], "title": "extract_user_profile_from_textArguments", "type": "object" }, "name": "extract_user_profile_from_text", "outputSchema": { "additionalProperties": true, "title": "extract_user_profile_from_textDictOutput", "type": "object" } }, { "description": "\n Get available hotel offers for the current session dates.\n\n REQUIREMENT:\n - update_stay_dates should already be set\n - hotel should come from previous search results\n ", "inputSchema": { "properties": { "hotel_code_or_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Hotel Code Or Name" }, "hotel_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Hotel Index" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "preferred_room_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Preferred Room Name" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "get_booking_offersArguments", "type": "object" }, "name": "get_booking_offers", "outputSchema": { "additionalProperties": true, "title": "get_booking_offersDictOutput", "type": "object" } }, { "description": "\n Get detailed information for a hotel.\n\n Use this after search_hotels when the user asks for more details\n about a recommended option.\n ", "inputSchema": { "properties": { "hotel_code_or_name": { "title": "Hotel Code Or Name", "type": "string" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id", "hotel_code_or_name" ], "title": "get_hotel_detailsArguments", "type": "object" }, "name": "get_hotel_details", "outputSchema": { "additionalProperties": true, "title": "get_hotel_detailsDictOutput", "type": "object" } }, { "description": "\n Get a compact summary of the current session state.\n ", "inputSchema": { "properties": { "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "get_session_stateArguments", "type": "object" }, "name": "get_session_state", "outputSchema": { "additionalProperties": true, "title": "get_session_stateDictOutput", "type": "object" } }, { "description": "\n Return the strict standard schema for user_profile.\n\n IMPORTANT:\n - Only these standard UserProfile fields are allowed.\n - No alias mapping is supported.\n - city is NOT a profile field.\n - checkin_date / checkout_date are NOT profile fields.\n - Numeric budget constraints usually belong to search_hotels price_min/price_max.\n\n Use this tool when the external model is unsure what fields are allowed.\n ", "inputSchema": { "properties": {}, "title": "get_user_profile_schemaArguments", "type": "object" }, "name": "get_user_profile_schema", "outputSchema": { "additionalProperties": true, "title": "get_user_profile_schemaDictOutput", "type": "object" } }, { "description": "\n Health check for the MCP server.\n ", "inputSchema": { "properties": {}, "title": "health_checkArguments", "type": "object" }, "name": "health_check", "outputSchema": { "additionalProperties": true, "title": "health_checkDictOutput", "type": "object" } }, { "description": "\n Store raw user message into session context.\n\n IMPORTANT:\n This tool is no longer the main profile extraction path.\n\n RECOMMENDED USE:\n - store raw user text for context\n - let the external model decide profile fields\n - then call update_user_profile_from_model(...)\n\n DEFAULT BEHAVIOR:\n - append raw text into user_info\n - do not aggressively infer profile fields\n\n OPTIONAL:\n - if use_fallback_extraction=True, run a lightweight fallback extractor\n ", "inputSchema": { "properties": { "merge": { "default": true, "title": "Merge", "type": "boolean" }, "message": { "title": "Message", "type": "string" }, "session_id": { "title": "Session Id", "type": "string" }, "use_fallback_extraction": { "default": false, "title": "Use Fallback Extraction", "type": "boolean" } }, "required": [ "session_id", "message" ], "title": "ingest_user_messageArguments", "type": "object" }, "name": "ingest_user_message", "outputSchema": { "additionalProperties": true, "title": "ingest_user_messageDictOutput", "type": "object" } }, { "description": "\n List all in-memory session summaries.\n Useful for debugging only.\n ", "inputSchema": { "properties": {}, "title": "list_sessionsArguments", "type": "object" }, "name": "list_sessions", "outputSchema": { "additionalProperties": true, "title": "list_sessionsDictOutput", "type": "object" } }, { "description": "\n Parse stay dates without using session state.\n\n user_profile here is optional and only accepts standard profile fields.\n city is not required here.\n ", "inputSchema": { "properties": { "checkin_str": { "title": "Checkin Str", "type": "string" }, "checkout_str": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Checkout Str" }, "nights": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Nights" }, "user_profile": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "User Profile" } }, "required": [ "checkin_str" ], "title": "normalize_stay_datesArguments", "type": "object" }, "name": "normalize_stay_dates", "outputSchema": { "additionalProperties": true, "title": "normalize_stay_datesDictOutput", "type": "object" } }, { "description": "\n Search activities in a city.\n\n If city is omitted, use session.city from prior hotel search.\n ", "inputSchema": { "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "City" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "search_activities_in_cityArguments", "type": "object" }, "name": "search_activities_in_city", "outputSchema": { "additionalProperties": true, "title": "search_activities_in_cityDictOutput", "type": "object" } }, { "description": "\n Search airline-related content.\n ", "inputSchema": { "properties": { "airline_tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Airline Tag" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "search_flight_contentArguments", "type": "object" }, "name": "search_flight_content", "outputSchema": { "additionalProperties": true, "title": "search_flight_contentDictOutput", "type": "object" } }, { "description": "\n Search homestays in a city.\n\n If city is omitted, use session.city from prior hotel search.\n ", "inputSchema": { "properties": { "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "City" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "search_homestays_in_cityArguments", "type": "object" }, "name": "search_homestays_in_city", "outputSchema": { "additionalProperties": true, "title": "search_homestays_in_cityDictOutput", "type": "object" } }, { "description": "\n Search and recommend hotels.\n\n USE THIS TOOL FOR:\n - city-based hotel search\n - main search intent\n - direct numeric search constraints such as price_min / price_max\n - explicit room or amenity filters\n\n IMPORTANT:\n - city MUST be passed here, not inside user_profile\n - user_profile is for stable preferences, not for search location\n - if dates are known, call update_stay_dates first\n - if profile preferences are known, call update_user_profile_from_model first\n\n RECOMMENDED ORDER:\n 1. start_session\n 2. update_user_profile_from_model (optional)\n 3. update_stay_dates (optional)\n 4. search_hotels(city=..., ...)\n ", "inputSchema": { "properties": { "amenities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Amenities" }, "city": { "title": "City", "type": "string" }, "exclude_hotel_codes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Exclude Hotel Codes" }, "hotel_class_stars": { "anyOf": [ { "enum": [ 3, 4, 5 ], "type": "integer" }, { "type": "null" } ], "default": null, "title": "Hotel Class Stars" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "main_interest": { "title": "Main Interest", "type": "string" }, "non_refundable": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Non Refundable" }, "price_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price Max" }, "price_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price Min" }, "rating_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Rating Min" }, "required_name_terms": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Required Name Terms" }, "room_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Room Type" }, "session_id": { "title": "Session Id", "type": "string" }, "suitable": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Suitable" }, "surroundings": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Surroundings" }, "user_specific": { "default": "", "title": "User Specific", "type": "string" } }, "required": [ "session_id", "city", "main_interest" ], "title": "search_hotelsArguments", "type": "object" }, "name": "search_hotels", "outputSchema": { "additionalProperties": true, "title": "search_hotelsDictOutput", "type": "object" } }, { "description": "\n Search restaurants near a hotel.\n ", "inputSchema": { "properties": { "hotel_code_or_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Hotel Code Or Name" }, "hotel_index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Hotel Index" }, "hotel_lat": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Hotel Lat" }, "hotel_lon": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Hotel Lon" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id" ], "title": "search_restaurants_near_hotelArguments", "type": "object" }, "name": "search_restaurants_near_hotel", "outputSchema": { "additionalProperties": true, "title": "search_restaurants_near_hotelDictOutput", "type": "object" } }, { "description": "\n Create or replace a session.\n\n PURPOSE:\n - Initialize conversation state\n - Optionally store stable user profile fields\n\n DO:\n - pass stable or semi-stable profile information in user_profile\n - pass preferred_language if known\n - call this before other hotel-related tools\n\n DO NOT:\n - do NOT put city inside user_profile\n - do NOT put checkin_date or checkout_date inside user_profile\n - do NOT put search filters inside user_profile\n\n CORRECT WORKFLOW:\n 1. start_session(...)\n 2. update_user_profile_from_model(...) # optional\n 3. update_stay_dates(...) # optional\n 4. search_hotels(city=..., ...)\n\n WRONG:\n user_profile = {\n \"city\": \"New York\",\n \"checkin_date\": \"2023-04-01\",\n \"checkout_date\": \"2023-04-05\"\n }\n\n RIGHT:\n start_session(user_profile={\"preferred_language\": \"en\"})\n update_stay_dates(checkin_str=\"2023-04-01\", checkout_str=\"2023-04-05\")\n search_hotels(city=\"New York\", ...)\n ", "inputSchema": { "properties": { "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "preferred_language": { "default": "en", "title": "Preferred Language", "type": "string" }, "session_id": { "title": "Session Id", "type": "string" }, "user_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "User Id" }, "user_profile": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "User Profile" } }, "required": [ "session_id" ], "title": "start_sessionArguments", "type": "object" }, "name": "start_session", "outputSchema": { "additionalProperties": true, "title": "start_sessionDictOutput", "type": "object" } }, { "description": "\n Update session stay dates.\n\n USE THIS TOOL FOR:\n - check-in date\n - check-out date\n - nights-based date calculation\n\n DO NOT:\n - do NOT put dates inside user_profile\n - do NOT try to pass dates through start_session user_profile\n ", "inputSchema": { "properties": { "checkin_str": { "title": "Checkin Str", "type": "string" }, "checkout_str": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Checkout Str" }, "nights": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Nights" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id", "checkin_str" ], "title": "update_stay_datesArguments", "type": "object" }, "name": "update_stay_dates", "outputSchema": { "additionalProperties": true, "title": "update_stay_datesDictOutput", "type": "object" } }, { "description": "\n Update session.user_profile using standard UserProfile fields only.\n\n USE THIS WHEN:\n - the caller already has structured profile fields\n\n DO NOT PUT HERE:\n - city\n - checkin_date\n - checkout_date\n - raw numeric search constraints that belong in search_hotels\n\n Preferred profile fields include:\n - price_range\n - budget_flexibility\n - relationships\n - travel_purpose\n - hotel_style\n - facilities_like\n - surroundings_like\n ", "inputSchema": { "properties": { "merge": { "default": true, "title": "Merge", "type": "boolean" }, "session_id": { "title": "Session Id", "type": "string" }, "user_profile": { "additionalProperties": true, "title": "User Profile", "type": "object" } }, "required": [ "session_id", "user_profile" ], "title": "update_user_profileArguments", "type": "object" }, "name": "update_user_profile", "outputSchema": { "additionalProperties": true, "title": "update_user_profileDictOutput", "type": "object" } }, { "description": "\n Preferred path for profile extraction.\n\n The external model should:\n - read the user's natural language message\n - decide which STANDARD UserProfile fields are supported by evidence\n - send ONLY those fields here\n\n HARD RULES:\n - only standard UserProfile fields are allowed\n - do NOT invent new fields\n - do NOT put city here\n - do NOT put checkin_date or checkout_date here\n - omit uncertain fields instead of guessing\n - numeric budget constraints usually belong to search_hotels price_min/price_max\n\n GOOD EXAMPLE:\n {\n \"relationships\": \"solo\",\n \"travel_purpose\": \"leisure\",\n \"hotel_style\": \"luxury\",\n \"facilities_like\": \"breakfast, gym\",\n \"surroundings_like\": \"downtown\"\n }\n\n BAD EXAMPLE:\n {\n \"city\": \"New York\",\n \"checkin_date\": \"2023-04-01\",\n \"checkout_date\": \"2023-04-05\",\n \"budget\": 100\n }\n ", "inputSchema": { "properties": { "extracted_user_profile": { "additionalProperties": true, "title": "Extracted User Profile", "type": "object" }, "merge": { "default": true, "title": "Merge", "type": "boolean" }, "session_id": { "title": "Session Id", "type": "string" } }, "required": [ "session_id", "extracted_user_profile" ], "title": "update_user_profile_from_modelArguments", "type": "object" }, "name": "update_user_profile_from_model", "outputSchema": { "additionalProperties": true, "title": "update_user_profile_from_modelDictOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:dc99a9644b079e8d1b2c28e7be695cd50580d1d43b267350458b813c27b84b59 | sha256sum