submitby.ai

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

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
66%
命名质量
97%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,527token 数(工具定义)
~2.5 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.76%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

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

远程端点

https://submitby.ai/mcpstreamable-http

它能做什么

工具清单

工具(12)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟡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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

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

Read valid category and tag IDs.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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#"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本12 个工具