Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:14bad43ac79a96549cba20a050180be303703beb83a0b52f7e87c681a9c10595
What it is
What a remote MCP server returned when asked what it offers: 72 tools

The blob, as servednamed by its sha256

{ "instructions": "Lodi Kids Activities is the youth-programs and daycare directory for Lodi, CA. Use these tools to search programs, daycares, and family events. All data is public read-only — no parent identities or write actions are exposed in v1. Always cite the program/daycare URL when surfacing results so the parent can click through.", "tools": [ { "description": "Month-to-date spend across Anthropic / Firecrawl / Serper / Apify / Resend / Twilio (when each logger is in place).", "inputSchema": { "properties": {}, "type": "object" }, "name": "admin_cost_summary", "outputSchema": null }, { "description": "Last 24h of activity across the platform — signups, saves, contacts, claims, discoveries.", "inputSchema": { "properties": {}, "type": "object" }, "name": "admin_live_activity", "outputSchema": null }, { "description": "MCP call volume + top tools + top agents in the last 7 days.", "inputSchema": { "properties": {}, "type": "object" }, "name": "admin_mcp_stats", "outputSchema": null }, { "description": "Pending org + daycare claim REQUESTS (someone applied to claim but admin hasn't approved). Excludes the long tail of seed orgs that have no contact info yet.", "inputSchema": { "properties": {}, "type": "object" }, "name": "admin_pending_claims", "outputSchema": null }, { "description": "Pending discoveries in admin queue.", "inputSchema": { "properties": { "limit": { "maximum": 100, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "admin_pending_discoveries", "outputSchema": null }, { "description": "Pending editorial guide drafts.", "inputSchema": { "properties": {}, "type": "object" }, "name": "admin_pending_guides", "outputSchema": null }, { "description": "Top parent search queries in the last 30d. Reads parent_search_queries.", "inputSchema": { "properties": { "limit": { "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "admin_search_trends", "outputSchema": null }, { "description": "Aggregate stats for a city: # programs, # daycares, % claimed by owners, % with Spanish description, % free, category breakdown. Useful for AIs answering 'how many youth programs are there in Lodi' or comparing Lodi to other cities.", "inputSchema": { "properties": { "city_slug": { "description": "City slug (e.g. 'lodi'). Defaults to 'lodi' if omitted.", "type": "string" } }, "type": "object" }, "name": "city_stats", "outputSchema": null }, { "description": "Get current capacity by age band for the daycare(s) this org owns.", "inputSchema": { "properties": { "daycare_id": { "type": "string" } }, "type": "object" }, "name": "daycare_capacity", "outputSchema": null }, { "description": "Submitted applications for the org's daycare.", "inputSchema": { "properties": { "status": { "type": "string" } }, "type": "object" }, "name": "daycare_list_applications", "outputSchema": null }, { "description": "Tour requests for the org's daycare(s).", "inputSchema": { "properties": { "status": { "enum": [ "requested", "confirmed", "completed", "no_show", "declined", "cancelled" ], "type": "string" } }, "type": "object" }, "name": "daycare_list_tours", "outputSchema": null }, { "description": "Current waitlist queue for the org's daycare.", "inputSchema": { "properties": { "daycare_id": { "type": "string" } }, "type": "object" }, "name": "daycare_list_waitlist", "outputSchema": null }, { "description": "Respond to a tour request — confirm with a date/time, propose alternates via notes, or decline.", "inputSchema": { "properties": { "confirmed_date": { "description": "YYYY-MM-DD; required if response='confirm'", "type": "string" }, "confirmed_time": { "description": "e.g. '10:30am'", "type": "string" }, "note": { "type": "string" }, "response": { "enum": [ "confirm", "decline" ], "type": "string" }, "tour_id": { "type": "string" } }, "required": [ "tour_id", "response" ], "type": "object" }, "name": "daycare_respond_to_tour", "outputSchema": null }, { "description": "Upsert capacity for one age band on a daycare. Age bands: infant, toddler, twos, threes, fours, prek, kindergarten.", "inputSchema": { "properties": { "age_band": { "enum": [ "infant", "toddler", "twos", "threes", "fours", "prek", "kindergarten" ], "type": "string" }, "current_enrollment": { "minimum": 0, "type": "integer" }, "daycare_id": { "type": "string" }, "notes": { "type": "string" }, "total_slots": { "minimum": 0, "type": "integer" }, "waitlist_count": { "minimum": 0, "type": "integer" } }, "required": [ "daycare_id", "age_band", "total_slots" ], "type": "object" }, "name": "daycare_set_capacity", "outputSchema": null }, { "description": "Returns the currently-promoted programs on the LKA homepage. Reads from featured_listings table within the active date window.", "inputSchema": { "properties": {}, "type": "object" }, "name": "featured_listings", "outputSchema": null }, { "description": "Get full details for a single daycare by slug, including capacity by age band (infant / toddler / 2s / 3s / 4s / pre-K / kindergarten) when the daycare has filled it in. Use after `search_daycares` to surface specifics.", "inputSchema": { "properties": { "slug": { "description": "Daycare slug from search_daycares results.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_daycare", "outputSchema": null }, { "description": "Get full details for a single event by slug. Use after `list_upcoming_events`.", "inputSchema": { "properties": { "slug": { "description": "Event slug.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_event", "outputSchema": null }, { "description": "Fetch the full markdown body of a published editorial guide by slug.", "inputSchema": { "properties": { "slug": { "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_guide", "outputSchema": null }, { "description": "Get full details for a single program by slug. Use this after `search_programs` returned a result and the user wants to know more — full description, schedule, registration timing, contact info.", "inputSchema": { "properties": { "slug": { "description": "Program slug from search_programs results (e.g. 'lodi-fc-competitive-soccer').", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_program", "outputSchema": null }, { "description": "Returns the distinct program categories currently active in the LKA directory (e.g. Sports, Music, Arts, Academics, Swimming, Dance). Use this before search_programs to suggest exact category strings.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_categories", "outputSchema": null }, { "description": "Returns the cities Lodi Kids Activities currently serves. Today: Lodi, CA only. Other cities are seeded but inactive; do not surface as active to users.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_cities", "outputSchema": null }, { "description": "Lists editorial guides published on LKA — parent-facing articles like 'How to pick a summer camp,' 'Lodi after-school programs by neighborhood,' etc. Useful when a parent is researching a topic rather than searching a specific program.", "inputSchema": { "properties": { "limit": { "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_guides", "outputSchema": null }, { "description": "Public reviews for a program or daycare. Returns rating, text, reviewer first name only, season. Used by AIs to surface parent sentiment when recommending a program.", "inputSchema": { "properties": { "daycare_slug": { "type": "string" }, "limit": { "maximum": 25, "minimum": 1, "type": "integer" }, "program_slug": { "type": "string" } }, "type": "object" }, "name": "list_reviews", "outputSchema": null }, { "description": "List upcoming family events in Lodi, CA — open houses, workshops, community days, storytimes, sports clinics. Different from `search_programs` (ongoing classes) — these are single-day or short-window events.", "inputSchema": { "properties": { "category": { "description": "Filter by event category: workshop, open_house, community, showcase, fundraiser, camp_session, storytime, sports_clinic.", "type": "string" }, "limit": { "description": "Max events to return (1-30). Default 10.", "maximum": 30, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_upcoming_events", "outputSchema": null }, { "description": "Programs within a radius (miles) of a lat/lng point. Useful for AIs answering 'what's near 95240' style questions. Uses naive Haversine — accurate enough for a single city.", "inputSchema": { "properties": { "lat": { "type": "number" }, "limit": { "maximum": 30, "minimum": 1, "type": "integer" }, "lng": { "type": "number" }, "radius_miles": { "maximum": 50, "minimum": 0.5, "type": "number" } }, "required": [ "lat", "lng" ], "type": "object" }, "name": "nearby_programs", "outputSchema": null }, { "description": "Add a single event (practice, game, scrimmage, picture day, cancellation, etc.) to a program's calendar.", "inputSchema": { "properties": { "address": { "type": "string" }, "ends_at": { "type": "string" }, "kind": { "enum": [ "practice", "game", "scrimmage", "tournament", "recital", "picture_day", "meeting", "field_trip", "cancellation", "other" ], "type": "string" }, "location": { "type": "string" }, "notes": { "type": "string" }, "opponent": { "type": "string" }, "program_id": { "type": "string" }, "starts_at": { "description": "ISO 8601 timestamp", "type": "string" } }, "required": [ "program_id", "kind", "starts_at" ], "type": "object" }, "name": "org_add_program_event", "outputSchema": null }, { "description": "Org-level analytics — page views, saves, contacts in a date window.", "inputSchema": { "properties": { "days": { "maximum": 365, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "org_analytics", "outputSchema": null }, { "description": "Soft-archive a program (active=false). Hides from public directory but preserves history.", "inputSchema": { "properties": { "program_id": { "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "org_archive_program", "outputSchema": null }, { "description": "Mark a program event as canceled. Enrolled parents see this in their hub + iCal.", "inputSchema": { "properties": { "event_id": { "type": "string" }, "reason": { "type": "string" } }, "required": [ "event_id" ], "type": "object" }, "name": "org_cancel_program_event", "outputSchema": null }, { "description": "Confirm a program listing is still accurate (resets the stale-nudge timer).", "inputSchema": { "properties": { "program_id": { "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "org_confirm_listing_fresh", "outputSchema": null }, { "description": "Org dashboard summary — program count, leads in last 7d, new saves in last 7d, listing-status breakdown.", "inputSchema": { "properties": {}, "type": "object" }, "name": "org_dashboard", "outputSchema": null }, { "description": "Returns a URL to the org's downloadable promo kit (QR poster + share card) for a given program.", "inputSchema": { "properties": { "program_id": { "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "org_generate_promo_kit_url", "outputSchema": null }, { "description": "Returns recent daycare leads + program saves for the org.", "inputSchema": { "properties": {}, "type": "object" }, "name": "org_list_leads", "outputSchema": null }, { "description": "List upcoming events for a program owned by this org.", "inputSchema": { "properties": { "days_ahead": { "maximum": 365, "minimum": 1, "type": "integer" }, "program_id": { "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "org_list_program_events", "outputSchema": null }, { "description": "Returns the org's programs.", "inputSchema": { "properties": {}, "type": "object" }, "name": "org_list_programs", "outputSchema": null }, { "description": "Post an org response to a review. Requires consent. Replies are one-shot per review.", "inputSchema": { "properties": { "response_text": { "type": "string" }, "review_id": { "type": "string" } }, "required": [ "review_id", "response_text" ], "type": "object" }, "name": "org_reply_to_review", "outputSchema": null }, { "description": "Update the org's profile (website, phone, email, logo_url, instagram).", "inputSchema": { "properties": { "email": { "type": "string" }, "instagram": { "type": "string" }, "logo_url": { "type": "string" }, "phone": { "type": "string" }, "website": { "type": "string" } }, "type": "object" }, "name": "org_update_profile", "outputSchema": null }, { "description": "Update an existing program's editable fields.", "inputSchema": { "properties": { "address": { "type": "string" }, "age_max": { "type": "integer" }, "age_min": { "type": "integer" }, "cost": { "type": "string" }, "cost_num": { "type": "integer" }, "day": { "type": "string" }, "description": { "type": "string" }, "listing_status": { "enum": [ "accepting", "full", "waitlist_only", "closed_for_season" ], "type": "string" }, "location": { "type": "string" }, "name": { "type": "string" }, "openings_remaining": { "type": "integer" }, "program_id": { "type": "string" }, "season": { "type": "string" }, "time": { "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "org_update_program", "outputSchema": null }, { "description": "Set the listing status on a program (accepting / full / waitlist_only / closed_for_season). Requires consent.", "inputSchema": { "properties": { "listing_status": { "enum": [ "accepting", "full", "waitlist_only", "closed_for_season" ], "type": "string" }, "program_id": { "type": "string" } }, "required": [ "program_id", "listing_status" ], "type": "object" }, "name": "org_update_program_capacity", "outputSchema": null }, { "description": "Accept a household invite using the token from the invite link.", "inputSchema": { "properties": { "token": { "type": "string" } }, "required": [ "token" ], "type": "object" }, "name": "parent_accept_household_invite", "outputSchema": null }, { "description": "Add a kid to the parent's account. Requires consent.", "inputSchema": { "properties": { "birthdate": { "description": "YYYY-MM-DD", "type": "string" }, "interests": { "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "parent_add_kid", "outputSchema": null }, { "description": "Returns the parent's personal iCal feed URL — subscribe in Google/Apple/Outlook Calendar to see practices + games in your normal calendar app. Refreshes hourly.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_calendar_subscribe_url", "outputSchema": null }, { "description": "Cancel a tour request you previously submitted.", "inputSchema": { "properties": { "tour_id": { "type": "string" } }, "required": [ "tour_id" ], "type": "object" }, "name": "parent_cancel_tour", "outputSchema": null }, { "description": "Export everything LKA has on you in a single JSON payload (kids, saves, enrollments, tours, reviews, household membership).", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_export_my_data", "outputSchema": null }, { "description": "Invite a co-parent / partner / grandparent to share this household. They receive a one-time invite link by email; on accept, they join the household and can see all kids + saves.", "inputSchema": { "properties": { "email": { "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "parent_invite_household_member", "outputSchema": null }, { "description": "Leave the current household. If you're the owner and there are other members, ownership transfers to the longest-tenured member.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_leave_household", "outputSchema": null }, { "description": "Returns the parent's enrollments (programs their kid is signed up for).", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_list_enrollments", "outputSchema": null }, { "description": "Returns the parent's kids on file (names + ages, no PII beyond what they shared).", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_list_kids", "outputSchema": null }, { "description": "Returns the signed-in parent's saved (hearted) programs AND daycares. Each row has a `kind` field of 'program' or 'daycare' so callers can route to the right detail page. Previously this tool returned `{program_id: null}` for daycare rows with no other data — a hangover from when only programs could be saved.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_list_saves", "outputSchema": null }, { "description": "Returns the parent's daycare tour requests with status.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_list_tours", "outputSchema": null }, { "description": "Returns the signed-in parent's profile + preferences.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_me", "outputSchema": null }, { "description": "Daycare applications the parent has submitted.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_my_applications", "outputSchema": null }, { "description": "Returns the parent's household members + shared kids. If no household exists yet, returns null.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_my_household", "outputSchema": null }, { "description": "Reviews the parent has submitted.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_my_reviews", "outputSchema": null }, { "description": "Upcoming program events (practices, games, scrimmages) for the parent's enrolled programs. Covers next 30 days by default. Cancellations included as 'canceled' status.", "inputSchema": { "properties": { "days_ahead": { "maximum": 90, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "parent_my_upcoming_events", "outputSchema": null }, { "description": "Daycare waitlists the parent is on, with current position.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_my_waitlist_positions", "outputSchema": null }, { "description": "Programs matched to the parent's primary kid's age + interests. Simple matcher today — surfaces top 10 active programs that include the kid's age in their range, weighted by interest overlap.", "inputSchema": { "properties": { "limit": { "maximum": 25, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "parent_recommended_for_me", "outputSchema": null }, { "description": "Remove a kid from the parent's account. Irreversible — deletes the kid record and any kid-linked enrollments/reviews remain but become orphaned (kid_id set null).", "inputSchema": { "properties": { "kid_id": { "type": "string" } }, "required": [ "kid_id" ], "type": "object" }, "name": "parent_remove_kid", "outputSchema": null }, { "description": "Self-report that the parent enrolled their kid in a program outside the LKA RegFlow ('I'm In'). Accepts program UUID or slug.", "inputSchema": { "properties": { "kid_id": { "type": "string" }, "program_id": { "description": "Program UUID or slug", "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "parent_report_enrollment", "outputSchema": null }, { "description": "Submit a daycare tour request. Returns the tour id + status='requested'.", "inputSchema": { "properties": { "daycare_id": { "type": "string" }, "kid_id": { "type": "string" }, "notes": { "type": "string" }, "preferred_date_1": { "description": "YYYY-MM-DD", "type": "string" }, "preferred_date_2": { "type": "string" }, "start_date_needed": { "type": "string" } }, "required": [ "daycare_id", "preferred_date_1" ], "type": "object" }, "name": "parent_request_tour", "outputSchema": null }, { "description": "Revoke ALL MCP tokens issued under your parent account. Use this if you suspect an AI agent has misused your access.", "inputSchema": { "properties": {}, "type": "object" }, "name": "parent_revoke_my_tokens", "outputSchema": null }, { "description": "Save a daycare to the parent's hub.", "inputSchema": { "properties": { "daycare_id": { "type": "string" } }, "required": [ "daycare_id" ], "type": "object" }, "name": "parent_save_daycare", "outputSchema": null }, { "description": "Save a program to the parent's hub. Accepts either the program UUID or its slug (e.g. 'youth-soccer-league'). Optionally associate the save with one or more specific kids (by UUID or name) so the kid filter in /account → Saved Programs picks it up. Requires consent.", "inputSchema": { "properties": { "kid_ids": { "description": "Optional: one or more kid UUIDs OR first names (case-insensitive) to tag the save with. Use parent_list_kids to look them up.", "items": { "type": "string" }, "type": "array" }, "program_id": { "description": "Program UUID or slug", "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "parent_save_program", "outputSchema": null }, { "description": "Submit a review for a program or daycare. One review per (parent, program). Use parent_update_review to edit afterward.", "inputSchema": { "properties": { "daycare_id": { "type": "string" }, "kid_id": { "type": "string" }, "program_id": { "type": "string" }, "rating": { "maximum": 5, "minimum": 1, "type": "integer" }, "season": { "type": "string" }, "text": { "type": "string" } }, "required": [ "rating", "text" ], "type": "object" }, "name": "parent_submit_review", "outputSchema": null }, { "description": "Remove a saved program from the parent's hub. Accepts either the program UUID or its slug. Requires consent.", "inputSchema": { "properties": { "program_id": { "description": "Program UUID or slug", "type": "string" } }, "required": [ "program_id" ], "type": "object" }, "name": "parent_unsave_program", "outputSchema": null }, { "description": "Update a kid record (birthdate, interests, school, special_needs).", "inputSchema": { "properties": { "birthdate": { "description": "YYYY-MM-DD", "type": "string" }, "interests": { "items": { "type": "string" }, "type": "array" }, "kid_id": { "type": "string" }, "name": { "type": "string" }, "school": { "type": "string" }, "special_needs": { "type": "string" } }, "required": [ "kid_id" ], "type": "object" }, "name": "parent_update_kid", "outputSchema": null }, { "description": "Update parent notification + language preferences.", "inputSchema": { "properties": { "first_name": { "type": "string" }, "language_preference": { "enum": [ "en", "es" ], "type": "string" }, "phone": { "type": "string" }, "sms_opt_in": { "type": "boolean" } }, "type": "object" }, "name": "parent_update_prefs", "outputSchema": null }, { "description": "Upcoming events (practices, games, scrimmages, cancellations) for a specific program. Returns next 30 days. Use this to answer 'is there a game this Saturday?' style questions, and to power Add-to-Calendar flows.", "inputSchema": { "properties": { "days_ahead": { "maximum": 90, "minimum": 1, "type": "integer" }, "program_slug": { "type": "string" } }, "required": [ "program_slug" ], "type": "object" }, "name": "program_events_feed", "outputSchema": null }, { "description": "Search licensed daycares in Lodi, CA. Filter by child age (in MONTHS — daycares think in months for under-5s), program kind (daycare / preschool / after_school), facility setting (in_home / center), or claimed-only (more reliable data). Returns up to 10 daycares with hours + tuition where available. For subsidy / bilingual / curriculum filters, follow up with `get_daycare` on a slug.", "inputSchema": { "properties": { "age_months": { "description": "Child age in months. Returns daycares whose licensed age range includes this age. Daycares without ages_min/max populated are kept (we don't know they DON'T serve this age).", "maximum": 144, "minimum": 0, "type": "integer" }, "claimed_only": { "description": "If true, only return daycares whose owner has claimed the listing (more accurate data + reliable contact channel).", "type": "boolean" }, "limit": { "description": "Max daycares to return (1-25). Default 10.", "maximum": 25, "minimum": 1, "type": "integer" }, "program_kind": { "description": "Filter by program kind.", "enum": [ "daycare", "preschool", "after_school" ], "type": "string" }, "setting": { "description": "Filter by facility setting. 'in_home' is a family child care home (smaller, residential). 'center' is a commercial facility.", "enum": [ "in_home", "center" ], "type": "string" } }, "type": "object" }, "name": "search_daycares", "outputSchema": null }, { "description": "Search youth programs in Lodi, CA. Filter by free-text query (program name or description), category (Sports, Music, Arts, Academics, Swimming, etc.), child age (integer in years — programs that accept that age), free-only flag, or season. Returns up to 15 matching programs with full details for decision-making (cost, schedule, location, registration status).", "inputSchema": { "properties": { "age": { "description": "Child age in years. Returns programs whose age range includes this age.", "maximum": 18, "minimum": 0, "type": "integer" }, "category": { "description": "Program category. Common values: Sports, Music, Arts, Academics, Swimming, Gymnastics, Dance, Enrichment, Free Programs.", "type": "string" }, "free_only": { "description": "If true, only return programs with $0 cost.", "type": "boolean" }, "limit": { "description": "Max programs to return (1-30). Default 15.", "maximum": 30, "minimum": 1, "type": "integer" }, "query": { "description": "Free-text search across program name + description (case-insensitive substring match).", "type": "string" }, "season": { "description": "Filter by season — e.g. 'Summer', 'Fall', 'Spring', 'Winter', 'Year-Round'.", "type": "string" } }, "type": "object" }, "name": "search_programs", "outputSchema": null }, { "description": "Structured map of LKA's public URLs and content sections. Equivalent to llms.txt — gives an AI grounding agent the full topology of the site so it knows what's worth crawling/calling.", "inputSchema": { "properties": {}, "type": "object" }, "name": "site_directory", "outputSchema": null }, { "description": "Programs whose registration window is opening soon (within the next 60 days). Useful for parents planning ahead.", "inputSchema": { "properties": { "window_days": { "maximum": 180, "minimum": 7, "type": "integer" } }, "type": "object" }, "name": "upcoming_registrations", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:14bad43ac79a96549cba20a050180be303703beb83a0b52f7e87c681a9c10595 | sha256sum