Submitator

com.submitator由 submitator.com 发布官方发布者v0.1.1更新于 Nov 1, 2026

Launch your clients' products on up to 100 directories each from Claude, ChatGPT, Cursor or VS Code.

已验证Streamable HTTP可网页运行效率与工作流商业与电商

概览

AI 生成的概览

Submitator 让助手根据客户网址创建产品项目,提交到最多 100 个网站目录,并跟踪收录、徽章、报告和客户分享页。

可以做什么
  • 查看密钥的模式、权限、剩余发布次数和每小时请求额度
  • 从客户网址创建、读取、修改和删除草稿项目,并管理标志和截图
  • 搜索目录库,查看某个项目的推荐、开放和锁定目录
  • 先免费试算再正式发布,或从已发布项目的免费额度追加目录
  • 跟踪收录状态和变更事件,并检查客户网站所需的徽章
  • 生成 PDF 或 XLSX 报告,管理客户进度页链接
适用场景
适合使用 Submitator 白标方案的代理机构,让助手搭建客户项目、预览并执行目录提交,并以自家品牌汇报进度。
运行要求
需要代理机构账号和代理控制台中的 API 密钥:npx 包通过 SUBMITATOR_API_KEY 提供(需 Node.js 20 或更新版本),远程端点通过 Authorization 的 bearer 头提供。claude.ai 和 ChatGPT 也可改用登录授权。测试密钥免费,正式模式需要已购买的发布次数。
安装前请注意
launch_project 每次调用会消耗一次付费发布,update_project、add_directories 等写入工具会修改或删除数据,建议保留确认提示。密钥拥有机构级权限,不要放进代码仓库,并可在控制台随时吊销。来自第三方网站和目录的文本不可信。远程服务器无法读写本地文件。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Submitator,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.submitator%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "submitator": {
      "type": "http",
      "url": "https://mcp.submitator.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Submitator MCP server

Launch your clients' products on up to 100 directories each from Claude, ChatGPT, Cursor or VS Code.

This MCP server is for agencies on Submitator's white label plan. Your assistant creates a client project from a URL, shows which directories it would reach, launches it once you agree, and follows the listings as they go live. The badge, the report and the client page carry your agency's brand. It calls the Submitator API with your agency key and does nothing the API does not.

What you need

  • An agency account: app.submitator.com/agency/start.
  • An API key from Developers in the agency console. With claude.ai or ChatGPT, the sign-in creates one (see Remote server).
    • A sbm_test_ key is free from the day you create the agency. It runs in test mode: projects and listings are test data, nothing is submitted, and its test launches are not bought ones.
    • A sbm_live_ key comes with your first purchase. Each launch_project spends one launch.

Install

The package runs on your machine with npx (Node.js 20 or newer). Keep the key in your user-level config, never in a file that lives in a repository.

Claude Code (user scope, so the key stays out of the project's .mcp.json)

sh
claude mcp add --scope user submitator --env SUBMITATOR_API_KEY=sbm_test_... -- npx -y submitator-mcp

Cursor (~/.cursor/mcp.json, the user-level file)

json
{  "mcpServers": {    "submitator": {      "command": "npx",      "args": ["-y", "submitator-mcp"],      "env": { "SUBMITATOR_API_KEY": "sbm_test_..." }    }  }}

VS Code (.vscode/mcp.json): VS Code asks for the key and keeps it out of the file.

json
{  "inputs": [    { "type": "promptString", "id": "submitator-key", "description": "Submitator API key", "password": true }  ],  "servers": {    "submitator": {      "type": "stdio",      "command": "npx",      "args": ["-y", "submitator-mcp"],      "env": { "SUBMITATOR_API_KEY": "${input:submitator-key}" }    }  }}

Claude Desktop (claude_desktop_config.json): the same block as Cursor, under mcpServers. Claude Desktop starts servers in the disk root, so add "SUBMITATOR_FILES_DIR": "/path/to/client/images" to env if you want to upload local images.

Devin Desktop (formerly Windsurf), Cline and other MCP clients: run npx -y submitator-mcp with SUBMITATOR_API_KEY in its environment, or use the remote server below.

Remote server

The remote server at https://mcp.submitator.com/mcp needs no install. There are two ways in: claude.ai and ChatGPT sign in to Submitator, and other clients send an agency key in a header.

claude.ai: sign in

  1. In claude.ai, open Customize > Connectors, press + Add, then Add custom connector.
  2. Enter the name Submitator and the URL https://mcp.submitator.com/mcp, then press Continue. Check the settings it found and press Continue again.
  3. Under Authentication pick Sign in now, keep Use Claude's published identity (Recommended) as the OAuth client, leave Request headers empty and press Add.
  4. Submitator's sign-in opens: log in to the agency console. The consent page names the client and its host (Claude, claude.ai). Pick Test or Live and Full or Read only, then press Allow Claude.
  5. In a chat, open +, then Connectors, and switch Submitator on.

This link opens the dialog of step 1 with the name and the URL filled in.

The sign-in creates a key labelled MCP: Claude on the console's Developers page. Revoke it there to disconnect: the next call asks to sign in again. Live needs an agency that has bought launches, so a new agency gets Test only, and test mode submits nothing.

On Team and Enterprise plans an Owner adds the connector first, under Organization settings > Connectors: Add, Custom, Web. Members then press Connect under Customize > Connectors, and each of them signs in.

ChatGPT: sign in

  1. In ChatGPT on the web, open Plugins (chatgpt.com/plugins), press the plus button, then Add custom MCP server.
  2. Enter the name Submitator and, under Connection, the Server URL https://mcp.submitator.com/mcp.
  3. For authentication pick OAuth with a Client ID Metadata Document (CIMD), and enter no client ID or secret: Submitator's sign-in reads ChatGPT's published client document and needs no client registration.
  4. Review the risk warning, select I understand and want to continue, then Create as a plugin.
  5. Install the plugin, then in a chat type @ and pick it.

When ChatGPT sends you to Submitator's sign-in, log in to the agency console, pick Test or Live and Full or Read only on the consent page, and allow ChatGPT. As with claude.ai, the sign-in creates a key whose label starts with MCP: on the console's Developers page (revoke it there to disconnect), and a new agency gets Test only.

OpenAI's documentation says ChatGPT asks for confirmation before write actions by default and treats a tool without readOnlyHint as a write. Here the tools that only read carry readOnlyHint: true, and every other tool false. In a workspace, its permissions and security settings apply to adding and using custom MCP servers.

Claude Code, Cursor, VS Code and other clients: a key in a header

URL:    https://mcp.submitator.com/mcpHeader: Authorization: Bearer <your key>   (X-API-Key: <your key> works too)

Claude Code

sh
claude mcp add --transport http submitator https://mcp.submitator.com/mcp \  --header "Authorization: Bearer $SUBMITATOR_API_KEY"

Cursor (~/.cursor/mcp.json)

json
{  "mcpServers": {    "submitator": {      "url": "https://mcp.submitator.com/mcp",      "headers": { "Authorization": "Bearer sbm_test_..." }    }  }}

VS Code (.vscode/mcp.json): VS Code asks for the key and keeps it out of the file.

json
{  "inputs": [    { "type": "promptString", "id": "submitator-key", "description": "Submitator API key", "password": true }  ],  "servers": {    "submitator": {      "type": "http",      "url": "https://mcp.submitator.com/mcp",      "headers": { "Authorization": "Bearer ${input:submitator-key}" }    }  }}

Other clients that connect over HTTP take the same URL and header.

The remote server keeps nothing between requests: it passes the key, from the header or from the sign-in's access token, on to the Submitator API and forgets it. Files cannot be read or saved there, so save_report_file and local image paths work only with the npx package.

Tools

ToolWhat it does
whoamiThe agency and mode behind the key, its permissions, launches left and the hourly budget
list_projects, get_projectFind client projects; read one in full
create_project, update_project, delete_draftCreate a project from a URL, change its fields, delete a draft
set_logo, add_screenshot, remove_imageImages from a public URL, or a local file with the npx package
preview_launchFree dry run of a launch or an add with the same arguments: how many directories, what is missing, the cost, plus the top and median DR of the auto pick
find_directories, project_directoriesSearch the catalog; see one project's directory choices
launch_projectStart submissions. Spends one launch; refuses unless confirm_selected equals the count preview_launch shows for the same arguments
add_directoriesReach more directories from a launched project's free allowance, with the same check
list_listings, list_eventsFollow listings and what changed since a given time
get_badge, verify_badgeThe badge install code for the client's site, and a check that it is there
create_report, get_report, save_report_fileBuild a PDF or XLSX report; save it to disk with the npx package
get_share_link, create_share_link, delete_share_linkThe client's progress page (live keys)
advance_test_listing, set_test_launchesTest mode helpers (test keys)

Prompts: launch_client_project walks through a launch, and client_progress_update drafts a note for your client that does not name Submitator.

Keys and safety

  • Keep your client's approval prompt on for launch_project, add_directories and update_project instead of allowing them always: a launch spends money. These three, like every tool that overwrites or deletes data or submits to directories, carry destructiveHint: true, so clients that read the hint ask before each call. Tools that only add or check, such as create_project, add_screenshot and verify_badge, carry false. With a live key, clients that support questions to their user (MCP elicitation) also ask you before a launch or an add, and the answer never passes through the model. The remote server keeps no session, so there this question reaches only clients on MCP protocol 2026-07-28.
  • The npx package reads the key from its environment and sends it only to https://api.submitator.com.
  • Local images are read only from SUBMITATOR_FILES_DIR (or the folder the client starts the server in), only real PNG, JPEG, GIF or WebP files, and never through a link. Reports are saved to Downloads by default and never over an existing file; reports that include logins are not saved here.
  • A read-only key fits an assistant that only checks status: projects, listings, events and existing reports. Building a report or a client page link needs a key with full permissions.
  • Logins and their passwords are not exposed through this server. Read them in the agency console.
  • Every call shows up in Developers, Request log with a request id that starts with mcp-. Revoke a key there at any time.
  • Report a vulnerability by email to [email protected], not in a public issue (SECURITY.md).

Development

sh
npm installnpm test               # unit, contract and protocol testsnpm run buildnpm run sync:openapi   # refresh openapi/v1.json and src/v1.d.ts from the public contractnpm run check:pack     # pack, install in an empty folder, run the stdio handshake

When the API ships a new release, npm run sync:openapi and npm test show which new operations need a tool or a line in EXCLUDED (src/tools/index.ts).

License

MIT

来源:README.md,提交 91e08a5

工具

23

whoami

Check the API key

Shows the agency and mode (live or test) behind the key, its permissions, launches left and the hourly request budget.

无需输入参数。

list_projects

List client projects

Lists the agency projects, newest first. q finds one by part of its name or URL, and external_id by the agency's own id.

输入参数qlimitcursorstatusexternal_id

get_project

Read a project

One project in full: status, what it waits for, progress counts, allowance, readiness, texts, images and the image candidates found on its site.

输入参数project_id必填

create_project

Create a client project

Creates a project for a client's product from its URL. Name, tagline and description are filled from the site in the background when left out. Costs nothing: a launch is spent only by launch_project.

输入参数url必填nametagstaglineaudiencecategorylogo_urlmetadatamaker_namepromo_codecompetitorsexternal_id另有 11 个

update_project

Update a project

Changes the project fields it is sent and leaves the others as they are; null clears a field, and a list replaces the whole list. contact_email cannot change after launch, and after launch an edit reaches only the listings that have not been sent to their directory.

输入参数urlnametagstaglineaudiencecategorymetadatamaker_nameproject_id必填promo_codecompetitorsexternal_id另有 10 个

delete_draft

Delete a draft project

Deletes a project that was never launched. A launched project cannot be deleted.

输入参数project_id必填

add_screenshot

Add a screenshot

Adds one screenshot to a project (5 at most), from a public image URL. Each call adds another one: a repeated call adds the same image twice.

输入参数url必填project_id必填

remove_image

Remove the logo or a screenshot

Removes the logo ("logo") or one screenshot (its img_ id). A launched project keeps at least its logo and one screenshot.

输入参数image必填project_id必填

preview_launch

Preview a launch

Free dry run of launch_project (or of add_directories on a launched project) with the same arguments: how many directories it would submit to, what is missing, what would unlock more and what it costs, plus the top and median DR of the auto pick. Its would_submit count is the confirm_selected that launch_project or add_directories requires for the same arguments.

输入参数project_id必填directoriesauto_replaceexcluded_directories

find_directories

Search the directory catalog

Searches the directories Submitator submits to, highest Domain Rating first, or reads one by id. Before the agency first buys launches, only the top 20 are shown.

输入参数qkindlimittopiccursormin_draudiencerequiresdirectory_id

project_directories

A project's directory choices

Every catalog directory as seen by one project: suggested (the auto pick), open, locked (with what unlocks it), excluded or listed. Shows suggested, open and locked by default; the counts cover all.

输入参数limitoffsetstatesproject_id必填

launch_project

Launch a project

Starts submissions and spends one of the agency's paid launches; with a sbm_test_ key it spends a test launch and submits nothing. Refuses unless confirm_selected equals the directory count preview_launch returns for the same arguments. With a live key, a client on MCP protocol 2026-07-28 that supports elicitation also gets a question to confirm, and the answer does not pass through the model. This remote server keeps no session, so a client on an earlier protocol version is not asked.

输入参数project_id必填directoriesauto_replaceconfirm_selected必填excluded_directories

add_directories

Add directories to a launched project

Submits a launched project to more directories from its free allowance (no launch is spent). Refuses unless confirm_selected equals the directory count preview_launch returns for the same arguments. With a live key, a client on MCP protocol 2026-07-28 that supports elicitation also gets a question to confirm, and the answer does not pass through the model. This remote server keeps no session, so a client on an earlier protocol version is not asked. An include longer than the free allowance answers allowance_exhausted; a directory already listed answers invalid_directories.

输入参数project_id必填directories必填confirm_selected必填excluded_directories

list_listings

List a project's listings

A project's listings, one per directory, highest DR first, with status and the live link once published. Or one listing in full by its id.

输入参数limitcursorstatusdirectorylisting_idproject_id

list_events

What changed

Changes to projects and listings. The feed keeps 90 days and reads oldest first, so one call scans up to 1,000 events from the cursor (or from the start) and returns the newest ones since `since` (7 days ago by default). Passed back in a later call, its next_cursor reads only what came after. For the current state of a project, get_project and list_listings are cheaper.

输入参数typelimitsincecursorproject_id

get_badge

Get the badge install kit

The agency-branded badge some directories require on the client's site: its status, a message to forward to the client, the platforms it has install code for, and the code for the one named in platform.

输入参数platformproject_id必填

verify_badge

Check the badge on the site

Checks the client's site for the badge now. Each project gets up to 10 checks an hour.

输入参数project_id必填

create_report

Build a client report

Builds a PDF or XLSX report of a project, branded for the agency. Building takes a moment; get_report says when it is ready.

输入参数format必填project_id必填

get_report

Read a report

Whether a report is ready, and how to get the file.

输入参数report_id必填

版本历史

2
  1. v0.1.1最新Nov 1, 2026
  2. v0.1.0Oct 30, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分