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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:a4318cc4bcd21d57eb8bdf72d3857110c2c3ebc49a738d2d7733be4fc347fe07 | sha256sum