Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-01-15
Changed the definition of "edit_listing", "get_listing" and "submit_listing"
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"agent_interfaces":{"items":{"enum":["api","cli","sdk","webhooks"],"type":"string"},"maxItems":4,"type":"array"},"ai_usage":{"description":"40 to 600 characters, ideally in English: how the software uses AI, or what agents can do with it. Be concrete, not salesy. Submissions without a clear AI or agent angle are rejected.","maxLength":600,"minLength":40,"type":"string"},"category":{"enum":["developer-tools","ai-infra" ⟨12 unchanged words⟩ ,"other"],"type":"string"},"certifications":{"items":{"enum":["soc2","iso27001","hipaa"],"type":"string"},"maxItems":3,"type":"array"},"data_region":{"description":"Where customer data is hosted: eu (in the EU by default), eu-option (an EU region can be selected), non-eu, self-hosted (runs at the customer). Listings with EU hosting also appear on tulimoa.com/mcp-eu.","enum":["eu","eu-option","non-eu","self-hosted"],"type":"string"},"founder_x_handles":{"items":{"maxLength":40,"type":"string"},"maxItems":4,"type":"array"},"gdpr_dpa":{"type":"boolean"},"hosting_provider":{"maxLength":60,"type":"string"},"launch_hook":{"maxLength":140,"type":"string"},"logo_url":{"description":"New logo. Public https ⟨49 unchanged words⟩ ,"mcp":{"type":"boolean"},"mcp_auth":{"items":{"enum":["oauth","api"],"type":"string"},"maxItems":2,"type":"array"},"mcp_docs_url":{"format":"uri","type":"string"},"mcp_server_url":{"format":"uri","type":"string"},"model_source":{"enum":["own","open-weight","provider","mixed","none"],"type":"string"},"name":{"maxLength":60,"minLength":1,"type":"string"},"pricing_detail":{"maxLength":400,"type":"string"},"pricing_model":{"enum":["free","freemium" ⟨34 unchanged words⟩ "maxItems":8,"type":"array"},"trains_on_customer_data":{"enum":["no","opt-out","yes"],"type":"string"},"url":{"format":"uri","type":"string"},"x_handle":{"maxLength":40,"type":"string"}},"required":[ ⟨3 unchanged words⟩
⟨6 unchanged words⟩ Tulimoa listing by its slug: long description, how it uses AI (ai_usage), features, use cases, integrations, pricing detail, data region and EU hosting, model source, certifications, and links. Use after search_listings when the ⟨7 unchanged words⟩
SubmitaanSaaSAIlistingor MCP tool to the Tulimoa directory
Create a new listing in the Tulimoa directoryon behalf(AIofandtheMCPauthenticatedsoftwareuser.withTheitslistingownis
Certificate recorded, valid to 2026-11-17
Authorization not required
First tool surface recorded: 5 tools (server version 1.3.0)
Showing the latest 5 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"agent_interfaces":{"description":"Optional: other ways agents can use it.","items":{"enum":["api","cli","sdk","webhooks"],"type":"string"},"maxItems":4,"type":"array"},"ai_usage":{"description":"Required, 40 to 600 characters, ideally in English: how the software uses AI, or what agents can do with it. Be concrete, not salesy. Submissions without a clear AI or agent angle are rejected.","maxLength":600,"minLength":40,"type":"string"},"category":{"description":"One category id. Call ⟨19 unchanged words⟩ ,"other"],"type":"string"},"certifications":{"description":"Optional: soc2, iso27001, hipaa.","items":{"enum":["soc2","iso27001","hipaa"],"type":"string"},"maxItems":3,"type":"array"},"country":{"description":"ISO-3166-1 alpha-2 country code ⟨8 unchanged words⟩ {2}$","type":"string"},"data_region":{"description":"Optional. Where customer data is hosted: eu (in the EU by default), eu-option (an EU region can be selected), non-eu, self-hosted (runs at the customer). Listings with EU hosting also appear on tulimoa.com/mcp-eu.","enum":["eu","eu-option","non-eu","self-hosted"],"type":"string"},"founder_x_handles":{"description":"Optional founder X handles (max 4).","items":{"maxLength":40,"type":"string"},"maxItems":4,"type":"array"},"gdpr_dpa":{"description":"Optional: a GDPR data processing agreement (DPA) is available.","type":"boolean"},"hosting_provider":{"description":"Optional hosting provider and location, e.g. 'Hetzner, Falkenstein'.","maxLength":60,"type":"string"},"launch_hook":{"description":"Launch package with welcome post: one sentence why the tool matters (max 140 chars, English).","maxLength":140,"type":"string"},"logo_url":{"description":"Required. Public https URL ⟨49 unchanged words⟩ MCP server.","type":"boolean"},"mcp_auth":{"description":"Only if mcp is true: how agents connect (oauth, api). Empty = no auth.","items":{"enum":["oauth","api"],"type":"string"},"maxItems":2,"type":"array"},"mcp_docs_url":{"description":"Only if mcp is true: link to the MCP docs.","format":"uri","type":"string"},"mcp_server_url":{"description":"Only if mcp is true: endpoint URL of the MCP server.","format":"uri","type":"string"},"model_source":{"description":"Optional: which AI models (own, open-weight, provider, mixed, none).","enum":["own","open-weight","provider","mixed","none"],"type":"string"},"name":{"description":"Product/company name (max ⟨5 unchanged words⟩ "minLength":1,"type":"string"},"pricing_detail":{"description":"Optional price detail, e.g. 'from $10/month'.","maxLength":400,"type":"string"},"pricing_model":{"description":"Pricing model (required) ⟨43 unchanged words⟩ "maxItems":8,"type":"array"},"trains_on_customer_data":{"description":"Optional: trains on customer data (no, opt-out, yes).","enum":["no","opt-out","yes"],"type":"string"},"url":{"description":"Public homepage URL (https).","format":"uri","type":"string"},"visibility":{"description":"How the listing goes live (required). 'badge' = free: embed the Tulimoa badge on the product website, reviewed within 7 days; if the badge is missing for 14 days the listing goes offline again. 'launch' = $5 one-time launch package: no badge needed, reviewed first, optional welcome post from @gettulimoa on X, refunded automatically if rejected. Ask the user which one they want.","enum":["badge","launch"],"type":"string"},"withdrawal_consent":{"description":"Required (true) for visibility 'launch'. Only set it after the user agrees: Tulimoa starts the review right away, the right of withdrawal ends once the listing is live, and a rejected listing gets the $5 back automatically.","type":"boolean"},"x_handle":{"description":"Optional company X handle, e.g. @acme.","maxLength":40,"type":"string"},"x_post_opt_in":{"description":"Launch package only: a free welcome post from @gettulimoa on X after approval. Needs launch_hook and at least one X handle.","type":"boolean"}},"required":["name","url","short_description","country","category","mcp","pricing_model","logo_url","ai_usage","visibility"],"type":"object"}
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"badge_html":{"additionalProperties":false,"description":"Badge only: HTML for dark backgrounds (light) or light backgrounds (dark).","properties":{"dark":{"type":"string"},"light":{"type":"string"}},"required":["light","dark"],"type":"object"},"checkout_url":{"description":"Launch package only: opens the Polar checkout (Tulimoa login needed).","type":"string"},"id":{"description":"Listing id.","type":"string"},"manage_url":{"description":"Dashboard page for status, badge check and payment.","type":"string"},"next_step":{"description":"What the user has to do now.","type":"string"},"slug":{"description":"Final slug (may ⟨8 unchanged words⟩ "const":"pending","type":"string"},"visibility":{"enum":["badge","launch"],"type":"string"}},"required":["id","slug","status","visibility","next_step","manage_url"],"type":"object"}