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

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Get the public badge snippet for any submission. No control token required. Installing it on the submitted website proves control.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_badge", "outputSchema": null }, { "description": "Read one published listing by slug or listing ID: description, FAQ, pricing, platforms, links, screenshots, verified store and GitHub data, and passed agent-readiness checks.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "maxLength": 120, "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_project", "outputSchema": null }, { "description": "Read private status, listing completeness, suggested faq_questions, the private agent-readiness report, and exact next actions.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "control_token": { "pattern": "^[a-f0-9]{64}$", "type": "string" }, "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_submission", "outputSchema": null }, { "description": "Read valid category and tag IDs.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_taxonomy", "outputSchema": null }, { "description": "List every valid category ID, name, and alias. Choose one primary category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_categories", "outputSchema": null }, { "description": "Browse published projects only. Use page to read more results.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "category": { "type": "string" }, "page": { "default": 1, "maximum": 10000, "minimum": 1, "type": "integer" }, "query": { "maxLength": 120, "type": "string" }, "tag": { "type": "string" } }, "type": "object" }, "name": "list_projects", "outputSchema": null }, { "description": "List all valid tag IDs, names, and aliases. Submit suggestions as comma-separated values.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_tags", "outputSchema": null }, { "description": "Anyone may pay the $4.99 badge waiver for an eligible submission after website and content verification. No submission control token is needed. Use checkout for a hosted Managed Checkout link. Use mpp with an authorized MPP payment client for a direct payment sold by submitby.ai, outside Managed Payments. When MPP is disabled, Managed Checkout remains available. Never ask for card details in chat.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "method": { "default": "checkout", "enum": [ "mpp", "checkout" ], "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "purchase_badge_waiver", "outputSchema": null }, { "description": "Recover a lost control token by proving website control. First omit recovery_id, save the new token, and install the returned file. Then call again with recovery_id. Never share tokens publicly.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "recovery_id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "recover_submission", "outputSchema": null }, { "description": "Create a private project draft. No signup. Save the returned control token securely. Reuse the same random idempotency key for retries. Optional listing fields (tagline, long_description, audience, not_for, screenshots, video_url, pricing, platforms, links, mcp_url, openapi_url, app_store_url, play_store_url, alternatives, faq) raise listing completeness; write them in your own words from facts on the website.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "alternatives": { "description": "Websites of similar products.", "items": { "maxLength": 2048, "type": "string" }, "maxItems": 5, "type": "array" }, "app_store_url": { "maxLength": 2048, "type": "string" }, "audience": { "description": "Who the project is for.", "maxLength": 500, "minLength": 10, "type": "string" }, "category": { "maxLength": 100, "type": "string" }, "description": { "default": "", "maxLength": 500, "type": "string" }, "faq": { "description": "Answer the faq_questions from get_submission, or your own. Answers must match the website.", "items": { "additionalProperties": false, "properties": { "answer": { "maxLength": 1000, "minLength": 20, "type": "string" }, "question": { "maxLength": 200, "minLength": 5, "type": "string" } }, "required": [ "question", "answer" ], "type": "object" }, "maxItems": 10, "type": "array" }, "icon_url": { "anyOf": [ { "maxLength": 2048, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "Optional public HTTPS icon URL. Omit or set null to discover the first Apple touch icon, then the favicon." }, "idempotency_key": { "maxLength": 128, "minLength": 32, "type": "string" }, "links": { "additionalProperties": { "maxLength": 2048, "type": "string" }, "description": "Official profiles and pages of the project.", "propertyNames": { "enum": [ "x", "bluesky", "mastodon", "linkedin", "github", "discord", "youtube", "reddit", "producthunt", "docs", "changelog", "pricing", "status", "blog" ], "type": "string" }, "type": "object" }, "long_description": { "description": "Plain text, 200-800 words. Separate paragraphs with a blank line. Explain what it does, how it works, and how it differs. Do not copy website text.", "maxLength": 6000, "minLength": 300, "type": "string" }, "mcp_url": { "description": "Remote MCP endpoint. We check that it answers initialize.", "maxLength": 2048, "type": "string" }, "name": { "maxLength": 80, "minLength": 2, "type": "string" }, "not_for": { "description": "Who should choose something else.", "maxLength": 500, "minLength": 10, "type": "string" }, "openapi_url": { "maxLength": 2048, "type": "string" }, "platforms": { "items": { "enum": [ "web", "ios", "ipados", "watchos", "visionos", "android", "macos", "windows", "linux", "chrome", "firefox", "safari", "vscode", "cli", "api", "mcp", "wordpress", "figma", "slack", "other" ], "type": "string" }, "maxItems": 12, "type": "array" }, "play_store_url": { "maxLength": 2048, "type": "string" }, "pricing": { "additionalProperties": false, "properties": { "free_plan": { "type": "boolean" }, "model": { "enum": [ "free", "freemium", "free_trial", "paid", "open_source", "contact_sales" ], "type": "string" }, "starting_price": { "description": "For example: $6/month.", "maxLength": 40, "type": "string" } }, "required": [ "model" ], "type": "object" }, "route": { "default": "badge", "enum": [ "badge", "paid" ], "type": "string" }, "screenshots": { "description": "Up to 8 screenshots. We copy them; hosted images must stay public until verification finishes.", "items": { "additionalProperties": false, "properties": { "alt": { "maxLength": 200, "minLength": 3, "type": "string" }, "url": { "description": "Public HTTPS PNG, JPEG, or WebP, max 2 MB.", "maxLength": 2048, "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "maxItems": 8, "type": "array" }, "tagline": { "description": "One line, in your own words. Shown on cards.", "maxLength": 100, "minLength": 10, "type": "string" }, "tags": { "maxLength": 1500, "type": "string" }, "url": { "maxLength": 2048, "type": "string" }, "video_url": { "description": "Public demo video page.", "maxLength": 2048, "type": "string" } }, "required": [ "url", "name", "idempotency_key" ], "type": "object" }, "name": "submit_project", "outputSchema": null }, { "description": "Update the name, description, or any listing field. Send null to remove a field. Changes run the automatic checks again; the listing stays in review until they pass.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "alternatives": { "anyOf": [ { "description": "Websites of similar products.", "items": { "maxLength": 2048, "type": "string" }, "maxItems": 5, "type": "array" }, { "type": "null" } ] }, "app_store_url": { "anyOf": [ { "maxLength": 2048, "type": "string" }, { "type": "null" } ] }, "audience": { "anyOf": [ { "description": "Who the project is for.", "maxLength": 500, "minLength": 10, "type": "string" }, { "type": "null" } ] }, "category": { "maxLength": 100, "type": "string" }, "control_token": { "pattern": "^[a-f0-9]{64}$", "type": "string" }, "description": { "default": "", "maxLength": 500, "type": "string" }, "faq": { "anyOf": [ { "description": "Answer the faq_questions from get_submission, or your own. Answers must match the website.", "items": { "additionalProperties": false, "properties": { "answer": { "maxLength": 1000, "minLength": 20, "type": "string" }, "question": { "maxLength": 200, "minLength": 5, "type": "string" } }, "required": [ "question", "answer" ], "type": "object" }, "maxItems": 10, "type": "array" }, { "type": "null" } ] }, "icon_url": { "anyOf": [ { "maxLength": 2048, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "Optional public HTTPS icon URL. Omit or set null to discover the first Apple touch icon, then the favicon." }, "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "links": { "anyOf": [ { "additionalProperties": { "maxLength": 2048, "type": "string" }, "description": "Official profiles and pages of the project.", "propertyNames": { "enum": [ "x", "bluesky", "mastodon", "linkedin", "github", "discord", "youtube", "reddit", "producthunt", "docs", "changelog", "pricing", "status", "blog" ], "type": "string" }, "type": "object" }, { "type": "null" } ] }, "long_description": { "anyOf": [ { "description": "Plain text, 200-800 words. Separate paragraphs with a blank line. Explain what it does, how it works, and how it differs. Do not copy website text.", "maxLength": 6000, "minLength": 300, "type": "string" }, { "type": "null" } ] }, "mcp_url": { "anyOf": [ { "description": "Remote MCP endpoint. We check that it answers initialize.", "maxLength": 2048, "type": "string" }, { "type": "null" } ] }, "name": { "maxLength": 80, "minLength": 2, "type": "string" }, "not_for": { "anyOf": [ { "description": "Who should choose something else.", "maxLength": 500, "minLength": 10, "type": "string" }, { "type": "null" } ] }, "openapi_url": { "anyOf": [ { "maxLength": 2048, "type": "string" }, { "type": "null" } ] }, "platforms": { "anyOf": [ { "items": { "enum": [ "web", "ios", "ipados", "watchos", "visionos", "android", "macos", "windows", "linux", "chrome", "firefox", "safari", "vscode", "cli", "api", "mcp", "wordpress", "figma", "slack", "other" ], "type": "string" }, "maxItems": 12, "type": "array" }, { "type": "null" } ] }, "play_store_url": { "anyOf": [ { "maxLength": 2048, "type": "string" }, { "type": "null" } ] }, "pricing": { "anyOf": [ { "additionalProperties": false, "properties": { "free_plan": { "type": "boolean" }, "model": { "enum": [ "free", "freemium", "free_trial", "paid", "open_source", "contact_sales" ], "type": "string" }, "starting_price": { "description": "For example: $6/month.", "maxLength": 40, "type": "string" } }, "required": [ "model" ], "type": "object" }, { "type": "null" } ] }, "route": { "default": "badge", "enum": [ "badge", "paid" ], "type": "string" }, "screenshots": { "anyOf": [ { "description": "Up to 8 screenshots. We copy them; hosted images must stay public until verification finishes.", "items": { "additionalProperties": false, "properties": { "alt": { "maxLength": 200, "minLength": 3, "type": "string" }, "url": { "description": "Public HTTPS PNG, JPEG, or WebP, max 2 MB.", "maxLength": 2048, "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "maxItems": 8, "type": "array" }, { "type": "null" } ] }, "tagline": { "anyOf": [ { "description": "One line, in your own words. Shown on cards.", "maxLength": 100, "minLength": 10, "type": "string" }, { "type": "null" } ] }, "tags": { "maxLength": 1500, "type": "string" }, "video_url": { "anyOf": [ { "description": "Public demo video page.", "maxLength": 2048, "type": "string" }, { "type": "null" } ] } }, "required": [ "id" ], "type": "object" }, "name": "update_submission", "outputSchema": null }, { "description": "Request website and badge verification. Call after installing the returned snippet or file.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "control_token": { "pattern": "^[a-f0-9]{64}$", "type": "string" }, "id": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "verify_submission", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a4318cc4bcd21d57eb8bdf72d3857110c2c3ebc49a738d2d7733be4fc347fe07 | sha256sum