Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted just now
teppi

Server definition

Hash
sha256:6d43feef50bf2f5ae0bed8200dc94569903324909e267ce61d5a54b0fad338ba
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "List nearest valet operators within a 100-mile cap of a coordinate, optionally narrowed by service. Use this when a user is in a city with no listed operators and you need the closest available fallback ranked nearest-first. Empty array if nothing within 100 miles.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "lat": { "description": "Latitude in decimal degrees (WGS84). Range: -90 to 90.", "maximum": 90, "minimum": -90, "type": "number" }, "limit": { "default": 10, "description": "Max results to return; default 10, capped at 50", "maximum": 50, "minimum": 1, "type": "integer" }, "lng": { "description": "Longitude in decimal degrees (WGS84). Range: -180 to 180.", "maximum": 180, "minimum": -180, "type": "number" }, "service": { "description": "Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every nearby operator regardless of services offered.", "enum": [ "wedding-valet", "corporate-event-valet", "private-event-valet", "funeral-valet", "hotel-resort-valet", "restaurant-valet", "hospital-medical-valet", "major-venue-valet", "general-valet" ], "type": "string" } }, "required": [ "lat", "lng" ], "type": "object" }, "name": "valet_find_nearest_operators", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "ISO timestamp of the freshest row in the batch", "type": "string" }, "source": { "description": "Origin tag: typesense:operators or typesense:operators:empty", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "operators": { "description": "Operators within 100 miles of the input coordinate, sorted nearest-first. Empty array means nothing within 100 miles.", "items": { "additionalProperties": false, "properties": { "description_text": { "description": "Plain-text summary; null if not on file", "type": [ "string", "null" ] }, "distance_miles": { "description": "Distance from the input coordinate to operator HQ, rounded to 1 decimal", "type": "number" }, "name": { "description": "Operator business name", "type": "string" }, "phone": { "description": "Operator phone number, null if not on file", "type": [ "string", "null" ] }, "primary_city_name": { "description": "Display name of operator HQ city", "type": "string" }, "primary_city_slug": { "description": "Canonical kebab-case HQ city slug", "type": "string" }, "primary_state_name": { "description": "Display name of operator HQ state", "type": "string" }, "primary_state_slug": { "description": "Canonical kebab-case HQ state slug", "type": "string" }, "services": { "description": "Canonical service slugs this operator offers", "items": { "type": "string" }, "type": "array" }, "slug": { "description": "Canonical kebab-case operator slug; pass to valet_get_operator for details", "type": "string" }, "tier": { "description": "Operator tier: 'free', 'paid', or 'custom'", "type": "string" } }, "required": [ "name", "slug", "primary_city_name", "primary_state_name", "primary_city_slug", "primary_state_slug", "services", "phone", "tier", "description_text", "distance_miles" ], "type": "object" }, "type": "array" } }, "required": [ "operators", "data_freshness", "_meta" ], "type": "object" } }, { "description": "List valet operators serving a city slug plus state slug, optionally narrowed by service. Use this when an agent has a city already disambiguated and wants its operator roster ranked by listing tier then name. Empty array if no listed operators.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "city_slug": { "description": "Lowercase kebab-case city slug (e.g. 'houston', 'san-francisco')", "minLength": 1, "type": "string" }, "limit": { "default": 10, "description": "Max results to return; default 10, capped at 50", "maximum": 50, "minimum": 1, "type": "integer" }, "service": { "description": "Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator serving the city.", "enum": [ "wedding-valet", "corporate-event-valet", "private-event-valet", "funeral-valet", "hotel-resort-valet", "restaurant-valet", "hospital-medical-valet", "major-venue-valet", "general-valet" ], "type": "string" }, "state_slug": { "description": "Lowercase kebab-case US state slug (e.g. 'tx', 'new-york')", "minLength": 1, "type": "string" } }, "required": [ "state_slug", "city_slug" ], "type": "object" }, "name": "valet_find_operators_in_city", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "ISO timestamp of the freshest row in the batch", "type": "string" }, "source": { "description": "Origin tag: typesense:operators or typesense:operators:empty", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "operators": { "description": "Operators serving the city, ranked tier:desc then name:asc. Empty array means no matches.", "items": { "additionalProperties": false, "properties": { "description_text": { "description": "Plain-text summary; null if not on file", "type": [ "string", "null" ] }, "name": { "description": "Operator business name", "type": "string" }, "phone": { "description": "Operator phone number, null if not on file", "type": [ "string", "null" ] }, "primary_city_name": { "description": "Display name of operator HQ city", "type": "string" }, "primary_city_slug": { "description": "Canonical kebab-case HQ city slug", "type": "string" }, "primary_state_name": { "description": "Display name of operator HQ state", "type": "string" }, "primary_state_slug": { "description": "Canonical kebab-case HQ state slug", "type": "string" }, "services": { "description": "Canonical service slugs this operator offers", "items": { "type": "string" }, "type": "array" }, "slug": { "description": "Canonical kebab-case operator slug; pass to valet_get_operator for details", "type": "string" }, "tier": { "description": "Operator tier: 'free', 'paid', or 'custom'", "type": "string" } }, "required": [ "name", "slug", "primary_city_name", "primary_state_name", "primary_city_slug", "primary_state_slug", "services", "phone", "tier", "description_text" ], "type": "object" }, "type": "array" } }, "required": [ "operators", "data_freshness", "_meta" ], "type": "object" } }, { "description": "Find valet operators within a given radius of a coordinate, ranked by listing tier then distance. Use this when you have a coordinate and an event-context radius (5mi single venue, 25mi metro, 50mi regional). radius_miles is required; empty array if no matches.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "lat": { "description": "Latitude in decimal degrees (WGS84). Range: -90 to 90.", "maximum": 90, "minimum": -90, "type": "number" }, "limit": { "default": 10, "description": "Max results to return; default 10, capped at 50", "maximum": 50, "minimum": 1, "type": "integer" }, "lng": { "description": "Longitude in decimal degrees (WGS84). Range: -180 to 180.", "maximum": 180, "minimum": -180, "type": "number" }, "radius_miles": { "description": "Search radius in miles. REQUIRED, no default. Pick based on context: 5 mi for a single venue, 25 mi for a metro, 50 mi for a regional sweep.", "maximum": 500, "minimum": 0.1, "type": "number" }, "service": { "description": "Optional service narrowing. One of the 9 canonical valet service slugs. Omit to list every operator within radius regardless of services offered.", "enum": [ "wedding-valet", "corporate-event-valet", "private-event-valet", "funeral-valet", "hotel-resort-valet", "restaurant-valet", "hospital-medical-valet", "major-venue-valet", "general-valet" ], "type": "string" } }, "required": [ "lat", "lng", "radius_miles" ], "type": "object" }, "name": "valet_find_operators_near", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "ISO timestamp of the freshest row in the batch", "type": "string" }, "source": { "description": "Origin tag: typesense:operators or typesense:operators:empty", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "operators": { "description": "Operators within radius_miles of the input coordinate, ranked tier:desc then distance:asc. Empty array means no matches within radius.", "items": { "additionalProperties": false, "properties": { "description_text": { "description": "Plain-text summary; null if not on file", "type": [ "string", "null" ] }, "distance_miles": { "description": "Distance from the input coordinate to operator HQ, rounded to 1 decimal", "type": "number" }, "name": { "description": "Operator business name", "type": "string" }, "phone": { "description": "Operator phone number, null if not on file", "type": [ "string", "null" ] }, "primary_city_name": { "description": "Display name of operator HQ city", "type": "string" }, "primary_city_slug": { "description": "Canonical kebab-case HQ city slug", "type": "string" }, "primary_state_name": { "description": "Display name of operator HQ state", "type": "string" }, "primary_state_slug": { "description": "Canonical kebab-case HQ state slug", "type": "string" }, "services": { "description": "Canonical service slugs this operator offers", "items": { "type": "string" }, "type": "array" }, "slug": { "description": "Canonical kebab-case operator slug; pass to valet_get_operator for details", "type": "string" }, "tier": { "description": "Operator tier: 'free', 'paid', or 'custom'", "type": "string" } }, "required": [ "name", "slug", "primary_city_name", "primary_state_name", "primary_city_slug", "primary_state_slug", "services", "phone", "tier", "description_text", "distance_miles" ], "type": "object" }, "type": "array" } }, "required": [ "operators", "data_freshness", "_meta" ], "type": "object" } }, { "description": "Get the full operator profile by slug including address, phone, listing URL, website (paid listings only), services, venues_served, FAQs, and tipping note. Use this when an agent has a slug from a search tool or directory URL and needs the profile. Returns isError on slug 404 or upstream outage.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "slug": { "description": "Canonical kebab-case operator slug (e.g. '12-oaks-parking-llc'). Lowercase letters, digits, hyphens only.", "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "valet_get_operator", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "ISO datetime of the Typesense indexed_at stamp", "type": "string" }, "source": { "description": "Origin of the data; for this tool: typesense:operators", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "operator": { "additionalProperties": false, "description": "The full merged operator profile (Typesense + Payload long-tail fields)", "properties": { "address": { "description": "Full street address; null if none", "type": [ "string", "null" ] }, "buyer_question_phrasings": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "LLM-seeded phrasings of buyer-checklist questions" }, "claimed": { "description": "Operator-claim status", "type": "boolean" }, "description_text": { "description": "Plaintext description; null if none. Lexical AST not exposed.", "type": [ "string", "null" ] }, "faqs": { "description": "Structured FAQs; tipping guidance lives here as one entry", "items": { "additionalProperties": false, "properties": { "answer": { "type": "string" }, "question": { "type": "string" }, "source": { "type": "string" } }, "required": [ "question", "answer" ], "type": "object" }, "type": "array" }, "id": { "description": "Payload UUID; matches Typesense document id", "type": "string" }, "listing_url": { "description": "Get Valet Parking profile URL for this operator with ?ref=mcp UTM stamp (TOOL-12); present on every tier", "type": "string" }, "name": { "description": "Operator business name", "type": "string" }, "phone": { "description": "E.164 phone number; null if none", "type": [ "string", "null" ] }, "photo_url": { "description": "Profile photo URL; null if none", "type": [ "string", "null" ] }, "primary_city_name": { "description": "HQ proxy city display name", "type": "string" }, "primary_city_slug": { "description": "HQ proxy city slug (URL-safe)", "type": "string" }, "primary_state_name": { "description": "HQ proxy state display name", "type": "string" }, "primary_state_slug": { "description": "HQ proxy state slug (URL-safe)", "type": "string" }, "service_area_city_slugs": { "description": "All city slugs this operator serves", "items": { "type": "string" }, "type": "array" }, "service_area_count": { "description": "Count of service-area cities", "type": "number" }, "services": { "description": "Canonical service slugs from valet_list_services taxonomy", "items": { "type": "string" }, "type": "array" }, "slug": { "description": "Canonical kebab-case slug; matches the input", "type": "string" }, "tier": { "description": "Subscription tier: free | paid | custom", "type": "string" }, "venues_served": { "description": "Venues this operator regularly serves", "items": { "additionalProperties": false, "properties": { "venue": { "type": "string" } }, "required": [ "venue" ], "type": "object" }, "type": "array" }, "verified": { "description": "Manual verification status", "type": "boolean" }, "website": { "description": "Operator's own website with ?ref=mcp UTM stamp (TOOL-12). Paid and custom listings only; null on free listings and when none is set", "type": [ "string", "null" ] } }, "required": [ "id", "name", "slug", "primary_city_name", "primary_state_name", "primary_city_slug", "primary_state_slug", "service_area_city_slugs", "service_area_count", "services", "tier", "verified", "claimed", "phone", "description_text", "photo_url", "address", "website", "listing_url", "venues_served", "faqs", "buyer_question_phrasings" ], "type": "object" } }, "required": [ "operator", "data_freshness", "_meta" ], "type": "object" } }, { "description": "List the 9 canonical valet service slugs with display name and category. Use this when an agent needs to validate or discover the supported service taxonomy before composing a follow-up search (e.g. valet_search_by_service_and_city). Returns the in-bundle catalog; no upstream call; no isError path.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "valet_list_services", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "YYYY-MM-DD when this catalog was last updated", "type": "string" }, "source": { "description": "Origin of the data, sourced from the in-bundle catalog", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "services": { "description": "The 9 canonical valet service types, in catalog order", "items": { "additionalProperties": false, "properties": { "category": { "description": "Broad grouping: event, corporate, hospitality, medical, venue, or general", "type": "string" }, "displayName": { "description": "Human-readable service name", "type": "string" }, "slug": { "description": "Canonical kebab-case service slug (e.g. wedding-valet)", "type": "string" } }, "required": [ "slug", "displayName", "category" ], "type": "object" }, "type": "array" } }, "required": [ "services", "data_freshness", "_meta" ], "type": "object" } }, { "description": "Submit a valet parking quote request to the operators serving a US city. Use this when a person has asked you to arrange valet and has given their name, email, phone, city, service type and event date. The request is only sent after they confirm by email.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "city_other": { "description": "Free-text city name when no directory slug is known. Omit if using city_slug.", "maxLength": 120, "minLength": 2, "type": "string" }, "city_slug": { "description": "Canonical kebab-case city slug from valet_search_cities, e.g. 'austin'. Omit if using city_other.", "pattern": "^[a-z0-9-]+$", "type": "string" }, "contact_email": { "description": "Email address to send the one-tap confirmation link to", "format": "email", "maxLength": 254, "type": "string" }, "contact_name": { "description": "The requester's full name", "maxLength": 120, "minLength": 2, "type": "string" }, "contact_phone": { "description": "Phone number the operator can call", "maxLength": 40, "minLength": 7, "type": "string" }, "event_date": { "description": "Event date in YYYY-MM-DD format", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "guest_count": { "description": "Approximate guest count, if known", "maximum": 10000, "minimum": 1, "type": "integer" }, "notes": { "description": "Free-text notes for the operator, e.g. venue name or timing details", "maxLength": 2000, "type": "string" }, "operator_slug": { "description": "Send to this one operator only instead of the full fan-out for the city. Omit to notify every matched operator in the city.", "pattern": "^[a-z0-9-]+$", "type": "string" }, "service": { "description": "One of the 9 canonical valet service slugs", "enum": [ "wedding-valet", "corporate-event-valet", "private-event-valet", "funeral-valet", "hotel-resort-valet", "restaurant-valet", "hospital-medical-valet", "major-venue-valet", "general-valet" ], "type": "string" }, "vehicle_count": { "description": "Approximate vehicle count, if known", "maximum": 10000, "minimum": 1, "type": "integer" } }, "required": [ "contact_name", "contact_email", "contact_phone", "service", "event_date" ], "type": "object" }, "name": "valet_request_quote", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "next": { "description": "What the agent should tell the person to do next", "type": "string" }, "reference": { "description": "Short human-readable reference for this quote request", "type": "string" }, "status": { "const": "pending-confirmation", "description": "Always pending-confirmation on success", "type": "string" } }, "required": [ "reference", "status", "next", "_meta" ], "type": "object" } }, { "description": "Search valet operators by service slug plus city slug across all matching states. Use this when an agent has both a service slug and a city slug and wants a cross-state tier-then-name ranked list. Invalid service slugs surface the 9 canonical alternatives.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "city_slug": { "description": "Lowercase kebab-case city slug (e.g. 'austin', 'springfield'). May match multiple cities across states.", "minLength": 1, "type": "string" }, "limit": { "default": 10, "description": "Max results to return; default 10, capped at 50", "maximum": 50, "minimum": 1, "type": "integer" }, "service_slug": { "description": "Required canonical valet service slug. One of 9 values; call valet_list_services for the full set.", "enum": [ "wedding-valet", "corporate-event-valet", "private-event-valet", "funeral-valet", "hotel-resort-valet", "restaurant-valet", "hospital-medical-valet", "major-venue-valet", "general-valet" ], "type": "string" } }, "required": [ "service_slug", "city_slug" ], "type": "object" }, "name": "valet_search_by_service_and_city", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "ISO timestamp of the freshest row in the batch", "type": "string" }, "source": { "description": "Origin tag: typesense:operators or typesense:operators:empty", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" }, "operators": { "description": "Operators offering service_slug in any city matching city_slug across all states. Empty array means no matches.", "items": { "additionalProperties": false, "properties": { "description_text": { "description": "Plain-text summary; null if not on file", "type": [ "string", "null" ] }, "name": { "description": "Operator business name", "type": "string" }, "phone": { "description": "Operator phone number, null if not on file", "type": [ "string", "null" ] }, "primary_city_name": { "description": "Display name of operator HQ city", "type": "string" }, "primary_city_slug": { "description": "Canonical kebab-case HQ city slug", "type": "string" }, "primary_state_name": { "description": "Display name of operator HQ state", "type": "string" }, "primary_state_slug": { "description": "Canonical kebab-case HQ state slug; key disambiguation field", "type": "string" }, "services": { "description": "Canonical service slugs this operator offers", "items": { "type": "string" }, "type": "array" }, "slug": { "description": "Canonical kebab-case operator slug", "type": "string" }, "tier": { "description": "Operator tier: 'free', 'paid', or 'custom'", "type": "string" } }, "required": [ "name", "slug", "primary_city_name", "primary_state_name", "primary_city_slug", "primary_state_slug", "services", "phone", "tier", "description_text" ], "type": "object" }, "type": "array" } }, "required": [ "operators", "data_freshness", "_meta" ], "type": "object" } }, { "description": "Search the cities directory by name prefix with population-ranked results. Use this when an agent needs to resolve a partial city name into a canonical city slug plus state slug plus lat/lng before composing valet_find_operators_in_city or valet_find_operators_near. Empty array if no matches.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "limit": { "default": 8, "description": "Max results to return; default 8, capped at 25", "maximum": 25, "minimum": 1, "type": "integer" }, "query": { "description": "Partial or full city name (>=2 chars). Matched against name and lowercase name fields with prefix semantics.", "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "valet_search_cities", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "_meta": { "additionalProperties": false, "description": "TOOL-11 ToS and attribution block", "properties": { "attribution": { "type": "string" }, "terms": { "format": "uri", "type": "string" } }, "required": [ "terms", "attribution" ], "type": "object" }, "cities": { "description": "Cities matching the query, ranked by text match then population desc", "items": { "additionalProperties": false, "properties": { "lat": { "description": "City centroid latitude; null if unset in the index", "type": [ "number", "null" ] }, "lng": { "description": "City centroid longitude; null if unset in the index", "type": [ "number", "null" ] }, "population": { "description": "Census population estimate; used as the sort tiebreaker", "type": "number" }, "slug": { "description": "Canonical kebab-case city slug (URL-safe)", "type": "string" }, "state_slug": { "description": "Canonical kebab-case state slug (e.g. texas, new-york)", "type": "string" } }, "required": [ "slug", "state_slug", "lat", "lng", "population" ], "type": "object" }, "type": "array" }, "data_freshness": { "additionalProperties": false, "description": "TOOL-10 freshness stamp", "properties": { "indexed_at": { "description": "Date the cities collection was last fully reindexed", "type": "string" }, "source": { "description": "Origin of the data; for this tool: typesense:cities", "type": "string" } }, "required": [ "indexed_at", "source" ], "type": "object" } }, "required": [ "cities", "data_freshness", "_meta" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:6d43feef50bf2f5ae0bed8200dc94569903324909e267ce61d5a54b0fad338ba | sha256sum