submitby.ai

A software directory your agent submits to. Search, submit, verify, and manage listings through MCP.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
97%
Integridad del esquema
66%
Calidad de los nombres
97%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,527Tokens (definiciones de herramientas)
~2.5 KBTamaño de respuesta típico
Impacto significativo en la atención (2.76% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "submitbyai": {
      "url": "https://submitby.ai/mcp"
    }
  }
}

Puntos de conexión remotos

https://submitby.ai/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (12)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡submit_project(url, name, description, icon_url, category, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048
    },
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80
    },
    "description": {
      "default": "",
      "type": "string",
      "maxLength": 500
    },
    "icon_url": {
      "description": "Optional public HTTPS icon URL. Omit or set null to discover the first Apple touch icon, then the favicon.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "category": {
      "type": "string",
      "maxLength": 100
    },
    "tags": {
      "type": "string",
      "maxLength": 1500
    },
    "route": {
      "default": "badge",
      "type": "string",
      "enum": [
        "badge",
        "paid"
      ]
    },
    "tagline": {
      "description": "One line, in your own words. Shown on cards.",
      "type": "string",
      "minLength": 10,
      "maxLength": 100
    },
    "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.",
      "type": "string",
      "minLength": 300,
      "maxLength": 6000
    },
    "audience": {
      "description": "Who the project is for.",
      "type": "string",
      "minLength": 10,
      "maxLength": 500
    },
    "not_for": {
      "description": "Who should choose something else.",
      "type": "string",
      "minLength": 10,
      "maxLength": 500
    },
    "screenshots": {
      "description": "Up to 8 screenshots. We copy them; hosted images must stay public until verification finishes.",
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 2048,
            "description": "Public HTTPS PNG, JPEG, or WebP, max 2 MB."
          },
          "alt": {
            "type": "string",
            "minLength": 3,
            "maxLength": 200
          }
        },
        "required": [
          "url",
          "alt"
        ],
        "additionalProperties": false
      }
    },
    "video_url": {
      "description": "Public demo video page.",
      "type": "string",
      "maxLength": 2048
    },
    "pricing": {
      "type": "object",
      "properties": {
        "model": {
          "type": "string",
          "enum": [
            "free",
            "freemium",
            "free_trial",
            "paid",
            "open_source",
            "contact_sales"
          ]
        },
        "starting_price": {
          "description": "For example: $6/month.",
          "type": "string",
          "maxLength": 40
        },
        "free_plan": {
          "type": "boolean"
        }
      },
      "required": [
        "model"
      ],
      "additionalProperties": false
    },
    "platforms": {
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "web",
          "ios",
          "ipados",
          "watchos",
          "visionos",
          "android",
          "macos",
          "windows",
          "linux",
          "chrome",
          "firefox",
          "safari",
          "vscode",
          "cli",
          "api",
          "mcp",
          "wordpress",
          "figma",
          "slack",
          "other"
        ]
      }
    },
    "links": {
      "description": "Official profiles and pages of the project.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "enum": [
          "x",
          "bluesky",
          "mastodon",
          "linkedin",
          "github",
          "discord",
          "youtube",
          "reddit",
          "producthunt",
          "docs",
          "changelog",
          "pricing",
          "status",
          "blog"
        ]
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 2048
      }
    },
    "mcp_url": {
      "description": "Remote MCP endpoint. We check that it answers initialize.",
      "type": "string",
      "maxLength": 2048
    },
    "openapi_url": {
      "type": "string",
      "maxLength": 2048
    },
    "app_store_url": {
      "type": "string",
      "maxLength": 2048
    },
    "play_store_url": {
      "type": "string",
      "maxLength": 2048
    },
    "alternatives": {
      "description": "Websites of similar products.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 2048
      }
    },
    "faq": {
      "description": "Answer the faq_questions from get_submission, or your own. Answers must match the website.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "minLength": 5,
            "maxLength": 200
          },
          "answer": {
            "type": "string",
            "minLength": 20,
            "maxLength": 1000
          }
        },
        "required": [
          "question",
          "answer"
        ],
        "additionalProperties": false
      }
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 32,
      "maxLength": 128
    }
  },
  "required": [
    "url",
    "name",
    "idempotency_key"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_submission(id, control_token)

Read private status, listing completeness, suggested faq_questions, the private agent-readiness report, and exact next actions.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "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)$"
    },
    "control_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_submission(id, control_token)

Request website and badge verification. Call after installing the returned snippet or file.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "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)$"
    },
    "control_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_submission(name, description, icon_url, category, tags, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80
    },
    "description": {
      "default": "",
      "type": "string",
      "maxLength": 500
    },
    "icon_url": {
      "description": "Optional public HTTPS icon URL. Omit or set null to discover the first Apple touch icon, then the favicon.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "category": {
      "type": "string",
      "maxLength": 100
    },
    "tags": {
      "type": "string",
      "maxLength": 1500
    },
    "route": {
      "default": "badge",
      "type": "string",
      "enum": [
        "badge",
        "paid"
      ]
    },
    "tagline": {
      "anyOf": [
        {
          "description": "One line, in your own words. Shown on cards.",
          "type": "string",
          "minLength": 10,
          "maxLength": 100
        },
        {
          "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.",
          "type": "string",
          "minLength": 300,
          "maxLength": 6000
        },
        {
          "type": "null"
        }
      ]
    },
    "audience": {
      "anyOf": [
        {
          "description": "Who the project is for.",
          "type": "string",
          "minLength": 10,
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "not_for": {
      "anyOf": [
        {
          "description": "Who should choose something else.",
          "type": "string",
          "minLength": 10,
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "screenshots": {
      "anyOf": [
        {
          "description": "Up to 8 screenshots. We copy them; hosted images must stay public until verification finishes.",
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "maxLength": 2048,
                "description": "Public HTTPS PNG, JPEG, or WebP, max 2 MB."
              },
              "alt": {
                "type": "string",
                "minLength": 3,
                "maxLength": 200
              }
            },
            "required": [
              "url",
              "alt"
            ],
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "video_url": {
      "anyOf": [
        {
          "description": "Public demo video page.",
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "pricing": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "enum": [
                "free",
                "freemium",
                "free_trial",
                "paid",
                "open_source",
                "contact_sales"
              ]
            },
            "starting_price": {
              "description": "For example: $6/month.",
              "type": "string",
              "maxLength": 40
            },
            "free_plan": {
              "type": "boolean"
            }
          },
          "required": [
            "model"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "platforms": {
      "anyOf": [
        {
          "maxItems": 12,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "web",
              "ios",
              "ipados",
              "watchos",
              "visionos",
              "android",
              "macos",
              "windows",
              "linux",
              "chrome",
              "firefox",
              "safari",
              "vscode",
              "cli",
              "api",
              "mcp",
              "wordpress",
              "figma",
              "slack",
              "other"
            ]
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "links": {
      "anyOf": [
        {
          "description": "Official profiles and pages of the project.",
          "type": "object",
          "propertyNames": {
            "type": "string",
            "enum": [
              "x",
              "bluesky",
              "mastodon",
              "linkedin",
              "github",
              "discord",
              "youtube",
              "reddit",
              "producthunt",
              "docs",
              "changelog",
              "pricing",
              "status",
              "blog"
            ]
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 2048
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "mcp_url": {
      "anyOf": [
        {
          "description": "Remote MCP endpoint. We check that it answers initialize.",
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "openapi_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "app_store_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "play_store_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "alternatives": {
      "anyOf": [
        {
          "description": "Websites of similar products.",
          "maxItems": 5,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 2048
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "faq": {
      "anyOf": [
        {
          "description": "Answer the faq_questions from get_submission, or your own. Answers must match the website.",
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "question": {
                "type": "string",
                "minLength": 5,
                "maxLength": 200
              },
              "answer": {
                "type": "string",
                "minLength": 20,
                "maxLength": 1000
              }
            },
            "required": [
              "question",
              "answer"
            ],
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string",
      "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)$"
    },
    "control_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_projects(query, category, tag, page)

Browse published projects only. Use page to read more results.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 120
    },
    "category": {
      "type": "string"
    },
    "tag": {
      "type": "string"
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 10000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_project(slug)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_categories

List every valid category ID, name, and alias. Choose one primary category.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_tags

List all valid tag IDs, names, and aliases. Submit suggestions as comma-separated values.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_taxonomy

Read valid category and tag IDs.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡recover_submission(id, recovery_id)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "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)$"
    },
    "recovery_id": {
      "type": "string",
      "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)$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_badge(id)

Get the public badge snippet for any submission. No control token required. Installing it on the submitted website proves control.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "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)$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪purchase_badge_waiver(id, method)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "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)$"
    },
    "method": {
      "default": "checkout",
      "type": "string",
      "enum": [
        "mpp",
        "checkout"
      ]
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada12 herramientas