### Short prompt to add product from inside the product folder Source: https://submitmap.com/docs/setup/ Use this prompt when the session is started in the product's folder and the repository is the product. The agent can fill in the project details from the README, package metadata, site copy, and assets folder. ```text "Add my product to SubmitMap." ``` -------------------------------- ### Agent starting prompt for reading llms-full.txt Source: https://submitmap.com/docs/endpoints/ A prompt template for an agent to fetch the directory file, filter platforms based on eligibility, order by payoff, and draft submissions. It instructs the agent to stop rather than invent missing values. ```text Fetch https://submitmap.com/llms-full.txt and read the platform records. Product: {NAME} ({URL}) - {ONE_LINE_DESCRIPTION} Pricing: {PRICING}. Stage: {STAGE}. 1. Filter to platforms where the product meets everything under "You need" and trips nothing under "You will be rejected if". Say which were excluded and why. 2. If the product is already out, order them by what pays off soonest: fastest approval, dofollow, strongest domain, and slot the few with months of queue in behind so their clocks start too. If a launch date is still ahead, lead with those long queues instead. 3. For each, draft the submission from its steps and requirements, and stop rather than invent a value I have not given you. Return one section per platform, ready to paste. ``` -------------------------------- ### list_submissions Source: https://submitmap.com/docs/tools/ Shows where every submission for a project stands: what went out, when, what came back, what is still waiting. This is where 'did I ever submit to that one' gets answered. ```APIDOC ## list_submissions ### Description Shows where every submission for a project stands: what went out, when, what came back, what is still waiting. This is where 'did I ever submit to that one' gets answered. ### Method N/A (Tool) ### Endpoint N/A ### Parameters #### Request Body - **projectId** (string) - Optional - Omit it when the account has one project. ### Response #### Success Response - **submissions** (array) - Every tracked platform with its status, dates, listing URL and notes. #### Response Example ```json { "submissions": [ { "platformSlug": "string", "status": "string", "submittedAt": "string", "launchAt": "string", "listingUrl": "string", "note": "string" } ] } ``` ``` -------------------------------- ### Long prompt to add product when repository is not the product Source: https://submitmap.com/docs/setup/ Use this prompt when the session is not in the product's folder or the repository is not the product. Replace the placeholders with the product's name, URL, description, target audience, pricing, and launch status. ```text "Add my product to SubmitMap. It is called {NAME}, it lives at {URL}, it is a {WHAT IT DOES} for {WHO}, pricing is {FREE / FREEMIUM / PAID}, and it is {LIVE / PRE-LAUNCH}." ``` -------------------------------- ### create_project Source: https://submitmap.com/docs/tools/ Stores a product once. From inside the product's own workspace an agent should fill most of this in from the README, package metadata, site copy, and assets folder, and ask only about what is missing. ```APIDOC ## create_project ### Description Stores a product once. From inside the product's own workspace an agent should fill most of this in from the README, package metadata, site copy, and assets folder, and ask only about what is missing. ### Method N/A (Tool) ### Endpoint N/A ### Parameters #### Request Body - **name** (string) - Required - The only required field. - **url** (string) - Optional - Where it lives. - **pitch** (string) - Optional - One paragraph in the maker's own words. - **facts** (object) - Optional - The same shape qualify_project takes. Decides what it qualifies for. Domain rating is the exception: it is measured from the url on the way in, so leave it out. - **pack** (object) - Optional - What a submission form asks for: taglines at three lengths, descriptions, categories, maker bio, first comment, logo, cover, gallery, demo video. Every asset is two fields. The public address is what the dashboard shows, and the path on the machine your agent runs on is what a form uploads. ### Response #### Success Response - **project** (object) - The stored project, with the gaps in its pack named. #### Response Example ```json { "project": { "id": "string", "name": "string", "url": "string", "pitch": "string", "facts": {}, "pack": {}, "gaps": [] } } ``` ``` -------------------------------- ### qualify_project Source: https://submitmap.com/docs/tools/ Describes a product inline and returns platforms sorted into ready, fixable, and blocked categories, plus a recommended list. ```APIDOC ## qualify_project ### Description Describes a product inline and returns platforms sorted into ready, fixable, and blocked categories, plus a recommended list. ### Method MCP Tool ### Endpoint https://submitmap.com/api/mcp ### Parameters #### Query Parameters - **name** (string) - Optional - What it is called. - **url** (string) - Optional - Where it lives. - **stage** (string) - Optional - Where the product is. - **pricingModel** (string) - Optional - How it charges. - **categories** (array) - Optional - Every audience and form factor it belongs to. - **domainRating** (integer) - Optional - Numbers a few platforms gate on. - **monthlyTraffic** (integer) - Optional - Numbers a few platforms gate on. - **livePublicUrl** (boolean) - Optional - Boolean flag. - **openSignup** (boolean) - Optional - Boolean flag. - **pricingPage** (boolean) - Optional - Boolean flag. - **logoSquare** (boolean) - Optional - Boolean flag. - **coverImage** (boolean) - Optional - Boolean flag. - **demoVideo** (boolean) - Optional - Boolean flag. - **publicRepo** (boolean) - Optional - Boolean flag. - **privacyPolicy** (boolean) - Optional - Boolean flag. - **docs** (boolean) - Optional - Boolean flag. - **payingCustomers** (boolean) - Optional - Boolean flag. - **acceptsBacklink** (boolean) - Optional - Boolean flag. - **goal** (string) - Optional - What the run is for. - **budget** (string) - Optional - Decides whether platforms that charge to list appear at all. - **launchAt** (string) - Optional - When the launch is planned. ### Response #### Success Response - **ready** (array) - Platforms ready now. - **fixable** (array) - Platforms reachable once you supply something specific, each with the exact list of what is missing. - **blocked** (array) - Platforms structurally out of reach, each with the rule that blocks it. - **recommended** (array) - The run in the order it should be worked, with each line marked as a quick win or a queue to start early. ``` -------------------------------- ### every_tool Source: https://submitmap.com/docs/tools/ Lists all available tools and their descriptions. Takes no arguments and returns one entry per project with name, url, pitch, facts, pack, and gaps. ```APIDOC ## every_tool ### Description Lists all available tools and their descriptions. Takes no arguments and returns one entry per project with name, url, pitch, facts, pack, and gaps. ### Method N/A (Tool) ### Endpoint N/A ### Parameters None ### Response #### Success Response - **projects** (array) - One entry per project, each containing: name, url, pitch, facts, pack, and gaps. #### Response Example ```json { "projects": [ { "name": "string", "url": "string", "pitch": "string", "facts": {}, "pack": {}, "gaps": [] } ] } ``` ``` -------------------------------- ### plan_submissions Source: https://submitmap.com/docs/tools/ Writes the run order: which platforms, in what sequence, and why each one sits where it does. It shows on the dashboard as a checklist that ticks itself off as submissions land. Free and uncapped on every plan. ```APIDOC ## plan_submissions ### Description Writes the run order: which platforms, in what sequence, and why each one sits where it does. It shows on the dashboard as a checklist that ticks itself off as submissions land. Free and uncapped on every plan. ### Method N/A (Tool) ### Endpoint N/A ### Parameters #### Request Body - **projectId** (string) - Optional - Omit it when the account has one project. - **summary** (string) - Optional - Why this order, in a sentence or two. The maker reads it. - **checklist** (array) - Optional - What the maker has to prepare first: the gallery, the demo video, a privacy page, a launch date. Read it off the platforms in this plan; a generic list helps nobody. - **items** (array) - Optional - platformSlug plus a reason, in the order they should be submitted. First is next. Anything already tracked is reordered rather than reset. ### Response #### Success Response - **plan** (object) - The plan as stored, in order. #### Response Example ```json { "plan": { "summary": "string", "checklist": ["string"], "items": [ { "platformSlug": "string", "reason": "string" } ] } } ``` ``` -------------------------------- ### submission_playbook Source: https://submitmap.com/docs/tools/ Provides everything needed to submit one stored project to one platform, in the maker's own browser. Read the preflight before opening a tab. It is what stops a run dying halfway through a form for want of a cover image, and it is what the free plan meters. ```APIDOC ## submission_playbook ### Description Provides everything needed to submit one stored project to one platform, in the maker's own browser. Read the preflight before opening a tab. It is what stops a run dying halfway through a form for want of a cover image, and it is what the free plan meters. ### Method N/A (Tool) ### Endpoint N/A ### Parameters #### Request Body - **platformSlug** (string) - Required - The platform identifier. - **projectId** (string) - Optional - Omit it when the account has one project. - **signInAs** (string) - Optional - The Google address the maker wrote out when they agreed you could sign in, or sign up, for them on this project. Pass it on every later call so the answer travels with the work. It belongs to one project; on another, ask again. ### Response #### Success Response - **preflight** (object) - The preflight checks. - **signInPlan** (object) - The sign-in plan. - **packValues** (object) - The pack values mapped onto the fields this form asks for. - **steps** (array) - The steps. - **gotchas** (array) - The gotchas. - **traps** (array) - The traps in the form itself. - **callAfter** (string) - The call to make afterwards. #### Response Example ```json { "preflight": {}, "signInPlan": {}, "packValues": {}, "steps": [], "gotchas": [], "traps": [], "callAfter": "string" } ``` ``` -------------------------------- ### Cursor: Add SubmitMap MCP server to mcp.json Source: https://submitmap.com/docs/setup/ Paste this into .cursor/mcp.json (or ~/.cursor/mcp.json for global use) with your own token. Cursor picks up the file without a restart; a green dot next to the server name indicates a successful connection. ```json { "mcpServers": { "submitmap": { "type": "http", "url": "https://submitmap.com/api/mcp", "headers": { "Authorization": "Bearer smap_your_token_here" } } } } ``` -------------------------------- ### get_platform Source: https://submitmap.com/docs/tools/ Returns full details for a single platform, including acceptance criteria, submission steps, requirements, and gotchas. ```APIDOC ## get_platform ### Description Returns full details for a single platform, including acceptance criteria, submission steps, requirements, and gotchas. ### Method MCP Tool ### Endpoint https://submitmap.com/api/mcp ### Parameters #### Query Parameters - **slug** (string) - Required - The platform slug, e.g. "product-hunt". ### Response #### Success Response - **public_record** (object) - The public record of the platform. - **form_brief** (object) - With a token, carries that platform's form brief; without one, null. - **traps** (array) - With a token, carries the traps that only bite something filling the form; without one, null. ``` -------------------------------- ### Codex CLI: Add SubmitMap MCP server to config.toml Source: https://submitmap.com/docs/setup/ Add this to ~/.codex/config.toml (or .codex/config.toml in a project) with your own token. To keep the token out of the file, replace the http_headers line with bearer_token_env_var = "SUBMITMAP_TOKEN" and set that variable in your shell. Run codex mcp list to verify the connection. ```toml [mcp_servers.submitmap] url = "https://submitmap.com/api/mcp" http_headers = { "Authorization" = "Bearer smap_your_token_here" } ``` -------------------------------- ### Antigravity MCP config for SubmitMap Source: https://submitmap.com/docs/setup/ Add this JSON under mcpServers in ~/.gemini/config/mcp_config.json or .agents/mcp_config.json. Uses serverUrl; Antigravity ignores url or httpUrl. Replace smap_your_token_here with your token. ```json { "mcpServers": { "submitmap": { "serverUrl": "https://submitmap.com/api/mcp", "headers": { "Authorization": "Bearer smap_your_token_here" } } } } ``` -------------------------------- ### list_projects Source: https://submitmap.com/docs/tools/ Lists the projects on the account, each with its facts, its pack and what the pack is still missing. ```APIDOC ## list_projects ### Description Lists the projects on the account, each with its facts, its pack and what the pack is still missing. ### Method MCP Tool ### Endpoint https://submitmap.com/api/mcp ### Parameters No arguments. ### Response #### Success Response - **projects** (array) - Each project with its facts, its pack and what the pack is still missing. ``` -------------------------------- ### record_submission Source: https://submitmap.com/docs/tools/ Logs what happened, as soon as it happens and before the next brief, including when it is only queued for review and including when you cannot prove it landed. The project is issued no other brief until this is called. ```APIDOC ## record_submission ### Description Logs what happened, as soon as it happens and before the next brief, including when it is only queued for review and including when you cannot prove it landed. The project is issued no other brief until this is called. ### Method N/A (Tool) ### Endpoint N/A ### Parameters #### Request Body - **platformSlug** (string) - Required - The platform identifier. - **status** (string) - Required - One of: planned, attempted, submitted, live, rejected, needs_changes, or skipped. Use attempted for a form you sent without seeing the outcome. Use planned with a note to hand a platform back when it needs the maker. Use skipped when the maker looked at a platform and decided against it. - **listingUrl** (string) - Optional - The product's URL on that platform, once there is one. - **submittedAt** (string) - Optional - ISO 8601 timestamp. - **launchAt** (string) - Optional - ISO 8601 timestamp, only if it is scheduled. - **note** (string) - Optional - Anything the maker will want when they read this back in a month. Required with planned from an agent: what it needs from the maker. ### Response #### Success Response - **submission** (object) - The submission as recorded. - **remaining** (object) - What the account has left. #### Response Example ```json { "submission": { "platformSlug": "string", "status": "string", "listingUrl": "string", "submittedAt": "string", "launchAt": "string", "note": "string" }, "remaining": {} } ``` ``` -------------------------------- ### opencode: Add SubmitMap MCP server to opencode.json Source: https://submitmap.com/docs/setup/ Add this under the "mcp" key in ~/.config/opencode/opencode.json (or opencode.json in a project) with your own token. "type": "remote" makes it an HTTP server. Keep "enabled": true, otherwise the server is read but left switched off. Run opencode mcp list to verify. ```json { "mcp": { "submitmap": { "type": "remote", "url": "https://submitmap.com/api/mcp", "enabled": true, "headers": { "Authorization": "Bearer smap_your_token_here" } } } } ``` -------------------------------- ### Hermes MCP config for SubmitMap Source: https://submitmap.com/docs/setup/ Add this YAML under mcp_servers in ~/.hermes/config.yaml. Uses url for streamable HTTP. Replace smap_your_token_here with your token. Run /reload-mcp in a chat session. ```yaml mcp_servers: submitmap: url: "https://submitmap.com/api/mcp" headers: Authorization: "Bearer smap_your_token_here" ``` -------------------------------- ### Claude Code: Add SubmitMap MCP server via CLI Source: https://submitmap.com/docs/setup/ Run this command in the terminal to add the SubmitMap MCP server to Claude Code. Use --scope user to make it available in all projects. Drop the --header line to connect without an account and use only the three public tools. ```bash claude mcp add --transport http submitmap \ https://submitmap.com/api/mcp \ --header "Authorization: Bearer smap_your_token_here" ``` -------------------------------- ### whoami Source: https://submitmap.com/docs/tools/ Returns which account the token belongs to, which plan it is on, and what it already holds. ```APIDOC ## whoami ### Description Returns which account the token belongs to, which plan it is on, and what it already holds. ### Method MCP Tool ### Endpoint https://submitmap.com/api/mcp ### Parameters No arguments. ### Response #### Success Response - **account** (object) - The account. - **plan** (string) - The plan. - **projects** (integer) - How many projects it has. - **tracked_submissions** (integer) - How many tracked submissions it has. - **limit_info** (string) - Where the maker lifts a limit if one exists. ``` -------------------------------- ### search_platforms Source: https://submitmap.com/docs/tools/ Searches the directory of platforms with filters. Returns a count and summaries of matching platforms. ```APIDOC ## search_platforms ### Description Searches the directory of platforms with filters. Returns a count and summaries of matching platforms. ### Method MCP Tool ### Endpoint https://submitmap.com/api/mcp ### Parameters #### Query Parameters - **query** (string) - Optional - Free text over name, tagline and categories. - **category** (string) - Optional - One audience or form factor, e.g. "dev tools". - **pricing** (string) - Optional - free, freemium or paid. - **dofollow** (boolean) - Optional - Only platforms whose link is dofollow. - **requiresBacklink** (boolean) - Optional - Filter on whether a badge or link back is demanded. - **maxApprovalDays** (integer) - Optional - Only platforms that approve within this many days. - **minDomainRating** (integer) - Optional - A floor on domain rating. - **maxDomainRating** (integer) - Optional - A ceiling on domain rating. - **sort** (string) - Optional - approvalDays (default) or domainRating. - **limit** (integer) - Optional - Cap the rows returned. - **excludeTracked** (boolean) - Optional - Leave out what this project has already been sent to or planned for. Needs a token. - **projectId** (string) - Optional - Omit it when the account has one project. ### Response #### Success Response - **count** (integer) - The number of platforms found. - **platforms** (array) - One summary per platform, each with the URL of its page on the site. ```