Skip to main content
Glama

Server Details

A directory of product launch platforms: where your product qualifies and how each form is filled.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 36 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
FifthWye/submitmap-mcp
GitHub Stars
279
Server Listing
SubmitMap MCP server

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation4/5

Each tool targets a distinct resource or action: projects, platforms, submissions, plans, and account identity are clearly separated. The only mild overlap is between qualify_project's `recommended` list and plan_submissions, but their descriptions make the division of labor understandable.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern: create_project, get_platform, list_projects, plan_submissions, record_submission. Two exceptions—submission_playbook and whoami—break the pattern, but they are still readable and the overall convention is strong.

Tool Count5/5

Eleven tools is well-scoped for a domain covering project management, platform discovery, qualification, submission planning, and tracking. Each tool earns its place and the count is comfortably within the ideal range.

Completeness4/5

The surface covers the core lifecycle: create/update/list projects, search/get platforms, qualify, plan, record, and list submissions, plus account identity. The main gap is no delete_project, and there is no single get_project, but list_projects provides enough access for agents to work around it.

Available Tools

11 tools
create_projectAInspect

Store a product on the account. Before asking the maker anything, use what you can already see: a README, package metadata, the site's own copy and title, an assets or public folder. A maker working in their product's repository should be able to say 'add my product to SubmitMap' and get a filled-in project back, with questions only about what is genuinely not there. Fill in as much as you can, leave the rest, and come back with update_project. Facts drive what it qualifies for; the pack is what you will paste into forms later. Ask about images early: most platforms want a square logo and many want a cover, and every asset in the pack is two fields, the public address (logoUrl) and the file on the maker's machine (logoFile), because a form uploads the file and only the address can be shown back to them.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
nameYes
packNo
factsNoSame shape qualify_project takes: stage, pricingModel, categories, and the booleans. It is also where the two answers that decide a run order live once the maker has given them (`goal`, `budget`, and `launchAt` if they named a date), which is what stops the next session asking again. Leave domainRating out: the url is measured against Ahrefs on the way in and the measured number is what gets stored, so a guess here is overwritten anyway.
pitchNoOne paragraph in the maker's own words.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden, and it does so well: it explains that facts drive qualification while pack is what gets pasted into forms, that assets come as URL/file pairs, and that logoFile is a local path that cannot be displayed. It stops short of covering auth, idempotency, or error behavior, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The paragraph is dense but focused: the opening sentence states purpose, and the following sentences each add workflow or image-handling guidance without repeating schema content. It could be more scannable with structuring, but no sentence feels like padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or annotations exist, yet the description provides enough operational context for a complex nested creation tool: it clarifies pack vs facts, image/file behavior, the update_project handoff, and the expected filled-in result. Missing explicit return value, error, and duplicate-handling details prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema by explaining the conceptual split between facts and pack and detailing the URL/file duality for logo and media assets. It does not enumerate top-level url/name/pitch, but schema already describes pitch and many nested fields, so the partial compensation is still strong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete action, 'Store a product on the account', and later contrasts itself with update_project by saying to 'come back with update_project'. This makes the tool's purpose distinct from siblings and not simply a restatement of its name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: first use visible evidence from README, metadata, and site copy, fill as much as possible, ask only about genuinely missing facts, then follow up with update_project. It also prioritizes image questions early, which is concrete operational advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_platformAInspect

Full record for one platform: eligibility, disqualifiers, step-by-step submission instructions, requirements, gotchas and expected outcome. All of that is free, and it is what decides whether this product should be submitted here at all. Pass brief: true to also get agentPrompt, the brief for that platform's form, and agentGotchas, the traps that only bite something filling it (a placeholder that contradicts its label, a second email input belonging to a newsletter, a honeypot). The brief spends one of the account's tracked platforms, so ask for it once the maker has decided to fill this form, not while you are still choosing between platforms. For a stored project, submission_playbook returns the same brief with the maker's values already in it.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPlatform slug, e.g. "product-hunt".
briefNoInclude agentPrompt and agentGotchas. This is the paid half and it spends a tracked platform, once, for good. Leave it out while you are deciding where to submit: eligibility, disqualifiers, gotchas, approval time and link type all come back either way. A platform this account has already spent a slot on is free to brief again, so re-reading one costs nothing.
projectIdNoWhich project the brief is for, when brief is true. Omit it when the account has one project. A brief is one form being worked on for one product, and the project it belongs to cannot be issued another until this one has an outcome recorded.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does an excellent job: it discloses that the brief 'spends one of the account's tracked platforms' and that re-briefing an already-spent platform is free. It also explains the project constraint (a project cannot be issued another brief until the current one has an outcome recorded). These are non-obvious behavioral traits an agent must know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence carries meaningful information, from the core purpose to the cost model and the alternative tool. It front-loads the main value and then details the paid/optional part. Slightly dense but not wasteful; a 4 reflects efficient use of length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-oriented tool with 3 parameters and no output schema or annotations, the description covers everything an agent needs: what data is returned (including the optional brief fields), the cost/behavior, the project constraint, and when to use an alternative. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself is richly descriptive (explains the paid nature of brief, the project constraint, and when to omit projectId). The description text adds minimal additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns a 'full record for one platform' and enumerates the content (eligibility, disqualifiers, submission instructions, requirements, gotchas, expected outcome). It also distinguishes itself from siblings by mentioning the brief (agentPrompt/agentGotchas) and referencing submission_playbook, so an agent can clearly tell it apart from search_platforms and submission_playbook without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: it says to ask for the brief 'once the maker has decided to fill this form, not while you are still choosing between platforms' and that submission_playbook returns the same brief with values pre-filled for stored projects. It also states that eligibility and disqualifiers come back even without the brief, making the decision context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsAInspect

The projects on this account, each with its facts (eligibility answers) and its pack (what a submission form asks for), plus what is still missing from the pack. Call it whenever the maker says "my product" or "my project" without naming one: it is how you find out which project they mean, and every other account tool takes the id it returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It explains the output structure (facts, pack, missing items) and the role of the returned ID for other tools. It implies read-only behavior by describing a listing operation, though it does not explicitly state side effects or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the primary function and then delivering a crisp use case. Every phrase contributes to understanding the tool's purpose and usage, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the key return elements: projects with facts, pack, missing items, and an ID usable by other tools. It places the tool within the broader toolset. It could be slightly more explicit about the output format (e.g., array of projects) but that is easily inferred.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description need not explain input schema. The schema coverage is trivially 100% with an empty object. The description focuses on output semantics, which is appropriate for a parameterless list operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all projects on the account, each with its facts (eligibility answers), pack (submission form fields), and missing pack items. It also distinguishes itself as the means to resolve ambiguous references to 'my project', setting it apart from sibling tools that require an ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Call it whenever the maker says "my product" or "my project" without naming one' and explains that every other account tool takes the ID it returns. This clearly differentiates when to use this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_submissionsAInspect

Where every submission for a project stands: what went out, when, what came back, and what is still waiting. This is the tool behind "check my submissions", "what did I submit", "did I ever submit to that one" and "how is my launch going", so answer those from here instead of asking the maker to remember. Start with list_projects if they have not named a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoOmit it when the account has one project, which is the free tier.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the transparency burden. It strongly implies a read-only status lookup through 'Where every submission for a project stands' and 'what came back, and what is still waiting', and says the tool answers from stored data rather than memory. It does not explicitly state 'read-only' or discuss data freshness/authorization, but the behavior is clearly non-mutating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, every one earning its place: functionality, user-query mapping/guidance, and a prerequisite. No repetition of the schema or tool name, and the tone is engaging without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description fully covers what data the user wants, which queries map to it, and what to do before calling it. It is complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter is 100% (projectId), so the baseline is 3. The description adds value by telling the agent to call list_projects first when no project is named, which indirectly clarifies when projectId is needed or can be omitted. It also reinforces the project context through example queries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool as a status dashboard for project submissions, listing exactly what information it provides (what went out, when, what came back, what is waiting). It also distinguishes itself from sibling tools by explicitly positioning it as the answer to 'check my submissions' and similar queries, rather than record_submission or plan_submissions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit user language triggers ('check my submissions', 'what did I submit') and a concrete precondition: 'Start with list_projects if they have not named a project.' This tells the agent exactly when to call this tool and what to do first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_submissionsAInspect

Write the run order for a project: which platforms, in what sequence, and why each one is where it is. Anything already submitted to is dropped from the plan and named back to you in alreadySubmitted, because a plan is what is still ahead. Pass the platforms in the order they should be worked, with a short reason on each, plus a summary of the strategy. The plan appears on the maker's dashboard as a checklist that ticks itself off as submissions land. Anything already tracked is reordered rather than reset. Call it after qualify_project, using the recommended list it hands back, and if that response carried questions, put them to the maker before you plan: the order depends on the answers, and a plan written on an assumption is one they have to undo by hand. A plan costs nothing on any plan, so plan the whole run the product deserves rather than a short one sized to a guess about what the account can track.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesIn the order they should be submitted. First is next.
summaryNoWhy this order, in a sentence or two. The maker reads this.
checklistNoWhat the maker has to prepare before any of this can be submitted: the gallery, the demo video, a privacy policy page, a launch date. Write it from what the platforms in this plan actually demand and what the project is missing, not from a generic template. The maker ticks these off or throws them away on their dashboard, and anything they have already decided on keeps that decision when you plan again.
projectIdNoOmit it when the account has one project, which is the free tier.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and delivers: already-submitted items are dropped and echoed back in `alreadySubmitted`, the plan renders as a dashboard checklist that ticks itself off, already-tracked items are reordered rather than reset, and planning costs nothing. It discloses return behavior, side effects, and idempotency — far more than the schema or annotations could convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly 220 words, but every sentence contributes a distinct piece — purpose, return behavior, parameter handling, dashboard side effect, reorder-not-reset semantics, workflow scheduling, and cost. The purpose is front-loaded and there is no filler; the lenth is earned by the absence of annotations and an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, cross-tool workflow, no annotations, no output schema), the description is remarkably complete: it covers when to call, precenditions, what gets excluded, the key return field (`alreadySubmitted`), idempotent reordering, and cost. The only minor gap is the full return shape, and the most consequential part of it is explicitly named.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real value: items must be passed in work order with a short reason each, the summary is read by the maker, and the checklist must be 'written from what the platforms in this plan actually demand and what the project is missing, not from a generic template,' with decisions surviving re-plans. This meaningsfuly extends the schema's bare field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, 'Write the run order for a project: which platforms, in what sequence, and why each one is where it is,' gives a specific verb, resource, and scope in one breath. It also distinguishes itself from siblings by naming its workflow position ('Call it after qualify_project') and implying a contrast with record_submission (planning vs. recording).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call it after qualify_project, using the `recommended` list it hands back' is explicit when-and-with-what guidance tied to a named sibling. The conditional 'if that response carried `questions`, put them to the maker before you plan: the order depends on the answers, and a plan written on an assumption is one they have to undo by hand' is an explicit when-not with a concrete consequence, and the already-submitted exclusion tells the agent what to leave out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qualify_projectAInspect

Given a product, work out which platforms it qualifies for right now, which it could qualify for after supplying something (with the exact list of what is missing), and which are structurally out of reach. It also hands back recommended: the run in the order it should be worked, so the plan comes out of the directory rather than out of what you remember of the web. That order is decided by goal and budget, and when they have not been answered the response says what it assumed and carries the questions to put to the maker: ask them, call again with the answers, and store them with update_project so nobody asks twice. Needs no account: describe the product inline. Every field is optional and an unanswered field becomes a gap to fill rather than a rejection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
docsNo
goalNoWhat this run is for, which decides the order of it. `already-live` means the product is out and wants listings, links and traffic now, so the run leads on fast approvals, dofollow links and strong domains. `launching-later` means there is a launch date ahead, so it leads on the platforms with months of queue. Ask the maker rather than guessing: absent, it is inferred from `stage` and the response says so.
nameNo
stageNo
budgetNoWhether platforms that charge to list may appear in the run. Absent means `free-only`, which is the assumption that cannot cost anybody anything. `freemium` platforms are in the run either way: their submission is free, and paying to skip their queue is a separate question at the form.
launchAtNoISO 8601 date the maker is launching on, when they have named one.
demoVideoNo
categoriesNoEvery audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, an mcp server is `mcp`, a workspace with several of those means all of them. Then answer what it is commercially, which is a separate question and the one most runs lose platforms on: most launch boards say what they take by who ships it, not by what it runs on, so a subscription mobile app is `mobile` and `saas`, anything a solo maker or small team shipped is `indie`, and something sold to companies is `b2b`. Leaving those off does not make the run safer, it makes it shorter. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web.
coverImageNo
logoSquareNo
openSignupNo
publicRepoNo
pricingPageNo
domainRatingNo
pricingModelNo
livePublicUrlNo
privacyPolicyNo
monthlyTrafficNo
acceptsBacklinkNo
payingCustomersNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It reveals assumptions (goal/budget defaults), that unanswered fields become gaps rather than rejections, that it does not require an account, and that it suggests storing answers via a separate tool. This is transparent about its non‑mutating nature and the kind of output it produces, covering important behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but each sentence adds meaningful content: purpose, output, ordering logic, assumptions, workflow, and account requirement. It is front‑loaded with the core purpose and logically structured, though a bit verbose for a tool description. It earns its length given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output categories and the recommended order, and the next steps (ask questions, call again, store). It does not detail the exact return structure or enumerate the criteria for each qualification tier, but given that there is no output schema and the tool's complex behavior, it provides enough for an agent to invoke it and process the result sensibly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 19% (goal, budget, categories, launchAt), and the main description does not define most of the 21 parameters. It does add global semantics: every field is optional and missing fields become gaps to fill. This helps, but it does not explain individual boolean/attribute fields (e.g., docs, demoVideo, coverImage) beyond being product attributes. The description compensates at a high level but not per‑parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is explicit: it states the tool qualifies a product against platforms, distinguishing three outcomes (qualifies now, qualifies after filling gaps, structurally out of reach). It also names the `recommended` output and how it is derived, clearly differentiating from siblings like search_platforms and plan_submissions by focusing on qualification and ordering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it is used inline without an account, takes product details, and every field is optional. It explains the workflow of asking questions, calling again, and storing answers via update_project. However, it does not explicitly name alternative tools or state when not to use it, though the overall flow implies its use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_submissionAInspect

Log what happened to the dashboard: the listing URL, when it was sent, when it goes live. Call it as soon as a submission lands, before you ask for the next brief, including when it is only queued for review, and including when you are not sure it landed: that is what attempted is for. The next brief on this project is refused until this call is made. A platform that needs the maker (a captcha, a login, a payment, a file, an address to confirm) is recorded as planned with a note saying what you need from them: that hands it back without claiming an outcome, and frees the run to carry on. This costs nothing on any plan and no status costs more than another, so record what actually happened: the brief was what spent the tracked platform, and leaving the row wrong now only makes the run harder to follow.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoRequired with `planned`: what you need from the maker, in one line they can act on.
statusYesUse `attempted` when the form was sent and you cannot prove it arrived: the tab died, the connection dropped, the page never came back. It is not a lesser `submitted`, it is the honest one, and it carries the verification the platform record describes so somebody can settle it later. Never re-send a form to find out; every platform has a way to check without submitting twice. Use `planned`, with a note, to hand a platform back to the maker when it is waiting on them. A first record is `submitted`, `attempted` or `planned`: `live`, `rejected` and `needs_changes` come after one of those.
launchAtNoISO 8601, if it is scheduled.
projectIdNoOmit it when the account has one project, which is the free tier.
listingUrlNoThe product's URL on that platform.
submittedAtNoISO 8601.
platformSlugYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers: it discloses that the next brief is refused until this call is made, that planned frees the run without claiming an outcome, that attempted carries verification for later settling, and that re-sending forms to test is not the right approach. This goes well beyond the structured schema and gives the agent a clear model of side effects and workflow consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but lengthy and somewhat conversational, with several clauses stacked into long sentences. The purpose is front-loaded, but the behavioral guidance could be tightened without losing meaning. It earns its place overall, but is not a model of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description is remarkably complete. It covers when to call, what statuses mean, how to handle uncertain submissions, how to handle platform-side requirements, cost implications, and workflow blocking. An agent has enough context to invoke the tool correctly in the full range of intended situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already documents most parameters. The description adds meaningful semantic nuance on top: it explains the exact meaning of attempted as distinct from submitted, requires note for planned, and clarifies when launchAt/submittedAt are relevant. It does not add anything about platformSlug, but the schema gap is minor and mostly inferable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Log what happened to the dashboard: the listing URL, when it was sent, when it goes live.' It clearly identifies this as a recording/logging tool for submissions. However, it does not explicitly contrast itself with sibling tools like plan_submissions or submission_playbook, though the purpose is inferable from context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: call it as soon as a submission lands, before asking for the next brief, including queued-review and uncertain-landing cases. It also specifies the planned status usage for platforms waiting on the maker and explains that record status costs nothing on any plan. This is strong, actionable routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_platformsAInspect

Search the SubmitMap directory of startup launch platforms and directories. Filter by free-text query, category, pricing, link type, backlink requirement, approval speed or domain rating, and with a token leave out the ones this project has already been sent to. This is the tool behind "find me a small directory I can submit to right now": it is the whole directory, so answer from it rather than from what you remember of the web. Returns summaries; call get_platform for the full record including the submission steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoFastest approval first (the default), or strongest domain first. Either way, a platform that publishes no approval time comes last rather than reading as instant.
limitNoReturn at most this many. The count is unaffected.
queryNoFree text matched against name, tagline, domain, slug and categories. A bare domain works: "startupfa.me" finds Startup Fame.
pricingNo
categoryNoe.g. "AI tools", "Dev tools", "Web apps".
dofollowNoOnly platforms giving a dofollow backlink.
projectIdNoOmit it when the account has one project, which is the free tier.
excludeTrackedNoLeave out every platform this project has already been submitted to or planned for. Needs a token, and is what makes "one I have not done yet" answerable.
maxApprovalDaysNoOnly platforms approving within this many days. Leaves out every platform that publishes no approval time, the same way a rating bound leaves out the unrated.
maxDomainRatingNoOnly platforms up to this domain rating. The small, quick, unglamorous end of the directory, which is where a first submission usually belongs.
minDomainRatingNoOnly platforms with at least this domain rating.
requiresBacklinkNoFilter on whether they demand a badge/link back.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden and does disclose useful behavioral traits: it searches the entire directory, respects a project tracker when a token is supplied, and returns summaries rather than full records. It could add more about auth/rate limits, but for a read-only search tool the behavior is adequately transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence pulls weight: the first lists what the tool searches and how to filter, the second gives the concrete user phrase and the authoritative source over model memory, the third explains the return type and the next tool. It is dense but well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For 12 optional parameters and no output commentary, the description tells the agent what to use, what to filter by, what the source of truth is, and what to call next for full details. It is complete enough though it stops short of describing return field shape or pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high at 92%, so the input schea carries most of the parameter meaning. The description adds context about filtering concepts and the token-gated excludeTracked behavior, but mostly names parameters rather than revealing details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: it searches the SubmitMap directory of startup launch platforms. It also distinguishes itself from the get_platform sibling by noting it returns summaries rather than full records, and frames itself as the tool behind a concrete user request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly describes when an agent should use it (whenever the user asks for a directory to submit to, and when asked about what is in the directory rather than memory). It also directs the agent to call get_platform for full record details including submission steps, which is a clear alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submission_playbookAInspect

Everything needed to submit a stored project to one platform, yourself, in the maker's browser: a preflight of what is still missing, the sign-in plan (on the first submission it carries a question for the maker: hand every login back to them, or use the Google address they write out, which you then pass back as signInAs), the pack values mapped onto the fields the form asks for, the steps, the gotchas, the agentGotchas (traps in the form itself), and the call to make afterwards. Read the preflight before opening a tab. One brief is out at a time per project: ask for the next platform only after record_submission has answered this one, because until then this tool refuses the next brief and names the one still open. Do not fetch briefs ahead or in parallel. This is the tool the free plan meters: it covers the same submissions the dashboard tracks, plus any platform the account has already sent to, and past that it says so and points at the upgrade rather than answering.

ParametersJSON Schema
NameRequiredDescriptionDefault
signInAsNoThe Google address the maker wrote out when they agreed you could sign in, or sign up, for them on this project, whether they said it when asked or before you started. Pass it on every call after they say it, so the answer travels with the work instead of living in your head. It belongs to one project: on a different one, ask again rather than sending the address you were given for the last. Leave it out if they have not written one: sign-in then goes back to them, which is the safe end.
projectIdNoOmit it when the account has one project, which is the free tier.
platformSlugYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does so thoroughly. It reveals the one-brief-per-project refusal behavior, the free-plan metering with upgrade redirection, the sign-in decision path, and the presence of gotchas/agentGotchas, all of which are non-obvious behavioral traits affecting invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a single dense paragraph packed with caveats and embedded clauses, making it harder to scan. Every sentence does convey a distinct operational fact and the purpose is front-loaded, but restructuring into bullets or shorter sentences would improve clarity significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and no annotations, the description thoroughly covers what the tool returns, when it refuses, how metering works, and how sign-in is handled. The only minor gap is enumerating exact platform slugs, but the description points to account/platform context and related sibling tools, which is sufficient for an agent to proceed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Two of three parameters already have detailed schema descriptions, so the description adds marginal value for signInAs and projectId. The missing piece is platformSlug: the schema gives only a type, and the description never explains what platform slugs are valid or where to obtain them, leaving the one required parameter under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as the complete submission brief for a stored project on one platform and distinguishes it from record_submission, which is the follow-up call. However, it lacks an explicit verb like 'fetch' or 'return,' presenting the tool as a noun phrase ('Everything needed to submit...') rather than stating the core action directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong operational context: read the preflight before opening a tab, fetch one brief at a time, never fetch ahead or in parallel, and wait for record_submission before requesting the next platform. It does not, however, compare this tool against sibling planning tools like plan_submissions, so some alternative routing is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_projectBInspect

Fill in or correct a stored project. Facts and pack are merged into what is there, so you can add one field at a time as the maker answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
nameNo
packNo
factsNo
pitchNo
projectIdNoOmit it when the account has one project, which is the free tier.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explicitly discloses the merge semantics ('Facts and pack are merged into what is there') and the incremental nature, which is critical for an agent to know it won't overwrite unmentioned fields. It does not cover error cases or idempotency, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose and key behavior. It avoids verbosity and is easily scanned. However, given the tool's complexity, it is almost too terse—it omits context that might be expected at this level, though it remains structurally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has complex nested objects and many optional fields, yet the description ignores how to select the project (projectId), what happens if no projectId is given, and how pack relates to facts. With zero annotations and low schema coverage, an agent lacks critical context to call this tool correctly without additional probing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, yet the top-level description adds no parameter-level explanation. It does not clarify that 'projectId' is optional or how 'pack' and 'facts' relate. The schema itself covers some nested fields, but the description fails to compensate for the low coverage, leaving many parameters underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Fill in or correct') and resource ('a stored project'), which unambiguously distinguishes it from create_project. It also communicates the incremental merge behavior, leaving no doubt that this tool patches existing data rather than creating new records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at a usage pattern ('as the maker answers') but gives no explicit when-to-use guidance, no alternatives, and no exclusions. It does not mention that create_project should be used for new projects or that qualify_project fills gaps, so an agent must infer when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiAInspect

Which SubmitMap account this token belongs to, named by its email address, which plan it is on, and what it already holds. Call it first if you are unsure whether the maker is connected, and tell them the address it reports: it is the only way either of you can tell one of their accounts from another. It does not hand you the plan's limits and you do not need them to work: plan the whole run, and a limit says so at the write it stops.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosure. It reveals what the tool returns (email, plan, existing holdings) and what it does not (plan limits), effectively implying a read-only identity operation. It doesn't explicitly state there are no side effects, but that's implied by the context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description packs useful information but is somewhat wordy, with a cryptic final sentence ('plan the whole run, and a limit says so at the write it stops') that may puzzle an AI agent. The core purpose is front-loaded, but the extra guidance could be tightened for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter identity tool, the description sufficiently covers what it does, what it returns, and when to use it. It even clarifies what it doesn't return (plan limits). It lacks exact output formatting details, but that's minor given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no schema to elaborate. The description adds meaningful output context (email, plan, holdings) that goes beyond the empty input schema, though parameter-specific semantics are not applicable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: it identifies which SubmitMap account a token belongs to, including the associated email, plan, and held items. This is a specific identity-check function that is distinct from sibling tools like list_projects or create_project, which focus on other actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to call it: 'Call it first if you are unsure whether the maker is connected' and emphasizes it's the only way to distinguish accounts. It also advises against using it for plan limits ('It does not hand you the plan's limits'), but doesn't name alternative tools for that purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedget_platform1 field changed
      • addedInput schema / properties / projectId
        Added value: +{
        +  "description": "Which project the brief is for, when brief is true. Omit it when the account has one project. A brief is one form being worked on for one product, and the project it belongs to cannot be issued another until this one has an outcome recorded.",
        +  "type": "string"
        +}
    • Changedrecord_submission2 fields changed
      • addedInput schema / properties / note / description
        Added value: +"Required with `planned`: what you need from the maker, in one line they can act on."
      • changedInput schema / properties / status / description
        Previous value: -"Use `attempted` when the form was sent and you cannot prove it arrived: the tab died, the connection dropped, the page never came back. It is not a lesser `submitted`, it is the honest one, and it carries the verification the platform record describes so somebody can settle it later. Never re-send a form to find out; every platform has a way to check without submitting twice."New value: +"Use `attempted` when the form was sent and you cannot prove it arrived: the tab died, the connection dropped, the page never came back. It is not a lesser `submitted`, it is the honest one, and it carries the verification the platform record describes so somebody can settle it later. Never re-send a form to find out; every platform has a way to check without submitting twice. Use `planned`, with a note, to hand a platform back to the maker when it is waiting on them. A first record is `submitted`, `attempted` or `planned`: `live`, `rejected` and `needs_changes` come after one of those."
  2. 1 tool update
    • Changedsubmission_playbook1 field changed
      • changedInput schema / properties / signInAs / description
        Previous value: -"The Google address the maker wrote out when they agreed you could sign in for them on this project. Pass it on every call after they say it, so the answer travels with the work instead of living in your head. It belongs to one project: on a different one, ask again rather than sending the address you were given for the last. Leave it out if they have not written one: sign-in then goes back to them, which is the safe end."New value: +"The Google address the maker wrote out when they agreed you could sign in, or sign up, for them on this project, whether they said it when asked or before you started. Pass it on every call after they say it, so the answer travels with the work instead of living in your head. It belongs to one project: on a different one, ask again rather than sending the address you were given for the last. Leave it out if they have not written one: sign-in then goes back to them, which is the safe end."
  3. 1 tool update
    • Changedget_platform1 field changed
      • addedInput schema / properties / brief
        Added value: +{
        +  "description": "Include agentPrompt and agentGotchas. This is the paid half and it spends a tracked platform, once, for good. Leave it out while you are deciding where to submit: eligibility, disqualifiers, gotchas, approval time and link type all come back either way. A platform this account has already spent a slot on is free to brief again, so re-reading one costs nothing.",
        +  "type": "boolean"
        +}
  4. 2 tool updates
    • Changedcreate_project1 field changed
      • changedInput schema / properties / facts / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, an mcp server is `mcp`, a workspace with several of those means all of them. Then answer what it is commercially, which is a separate question and the one most runs lose platforms on: most launch boards say what they take by who ships it, not by what it runs on, so a subscription mobile app is `mobile` and `saas`, anything a solo maker or small team shipped is `indie`, and something sold to companies is `b2b`. Leaving those off does not make the run safer, it makes it shorter. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."
    • Changedqualify_project1 field changed
      • changedInput schema / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, an mcp server is `mcp`, a workspace with several of those means all of them. Then answer what it is commercially, which is a separate question and the one most runs lose platforms on: most launch boards say what they take by who ships it, not by what it runs on, so a subscription mobile app is `mobile` and `saas`, anything a solo maker or small team shipped is `indie`, and something sold to companies is `b2b`. Leaving those off does not make the run safer, it makes it shorter. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."
  5. 2 tool updates
    • Changedcreate_project2 fields changed
      • changedInput schema / properties / facts / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."
      • changedInput schema / properties / facts / properties / categories / items / enum
        Previous value: -[
        -  "ai",
        -  "b2b",
        -  "community",
        -  "content",
        -  "design",
        -  "dev",
        -  "directory",
        -  "extension",
        -  "free",
        -  "hardware",
        -  "indie",
        -  "local",
        -  "marketing",
        -  "marketplace",
        -  "mobile",
        -  "no-code",
        -  "open-source",
        -  "prelaunch",
        -  "productivity",
        -  "saas",
        -  "web"
        -]New value: +[
        +  "agent-skill",
        +  "ai",
        +  "b2b",
        +  "community",
        +  "content",
        +  "design",
        +  "dev",
        +  "directory",
        +  "extension",
        +  "free",
        +  "hardware",
        +  "indie",
        +  "local",
        +  "marketing",
        +  "marketplace",
        +  "mcp",
        +  "mobile",
        +  "no-code",
        +  "open-source",
        +  "prelaunch",
        +  "productivity",
        +  "saas",
        +  "web"
        +]
    • Changedqualify_project2 fields changed
      • changedInput schema / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: agent-skill, ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, web."
      • changedInput schema / properties / categories / items / enum
        Previous value: -[
        -  "ai",
        -  "b2b",
        -  "community",
        -  "content",
        -  "design",
        -  "dev",
        -  "directory",
        -  "extension",
        -  "free",
        -  "hardware",
        -  "indie",
        -  "local",
        -  "marketing",
        -  "marketplace",
        -  "mobile",
        -  "no-code",
        -  "open-source",
        -  "prelaunch",
        -  "productivity",
        -  "saas",
        -  "web"
        -]New value: +[
        +  "agent-skill",
        +  "ai",
        +  "b2b",
        +  "community",
        +  "content",
        +  "design",
        +  "dev",
        +  "directory",
        +  "extension",
        +  "free",
        +  "hardware",
        +  "indie",
        +  "local",
        +  "marketing",
        +  "marketplace",
        +  "mcp",
        +  "mobile",
        +  "no-code",
        +  "open-source",
        +  "prelaunch",
        +  "productivity",
        +  "saas",
        +  "web"
        +]
  6. 2 tool updates
    • Changedcreate_project1 field changed
      • changedInput schema / properties / facts / description
        Previous value: -"Same shape qualify_project takes: stage, pricingModel, categories, and the booleans. Leave domainRating out: the url is measured against Ahrefs on the way in and the measured number is what gets stored, so a guess here is overwritten anyway."New value: +"Same shape qualify_project takes: stage, pricingModel, categories, and the booleans. It is also where the two answers that decide a run order live once the maker has given them (`goal`, `budget`, and `launchAt` if they named a date), which is what stops the next session asking again. Leave domainRating out: the url is measured against Ahrefs on the way in and the measured number is what gets stored, so a guess here is overwritten anyway."
    • Changedqualify_project3 fields changed
      • addedInput schema / properties / budget
        Added value: +{
        +  "description": "Whether platforms that charge to list may appear in the run. Absent means `free-only`, which is the assumption that cannot cost anybody anything. `freemium` platforms are in the run either way: their submission is free, and paying to skip their queue is a separate question at the form.",
        +  "enum": [
        +    "free-only",
        +    "will-pay"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / goal
        Added value: +{
        +  "description": "What this run is for, which decides the order of it. `already-live` means the product is out and wants listings, links and traffic now, so the run leads on fast approvals, dofollow links and strong domains. `launching-later` means there is a launch date ahead, so it leads on the platforms with months of queue. Ask the maker rather than guessing: absent, it is inferred from `stage` and the response says so.",
        +  "enum": [
        +    "already-live",
        +    "launching-later"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / launchAt
        Added value: +{
        +  "description": "ISO 8601 date the maker is launching on, when they have named one.",
        +  "type": "string"
        +}
  7. 1 tool update
    • Changedsearch_platforms1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Free text matched against name, tagline and categories."New value: +"Free text matched against name, tagline, domain, slug and categories. A bare domain works: \"startupfa.me\" finds Startup Fame."
  8. 2 tool updates
    • Changedcreate_project1 field changed
      • addedInput schema / properties / pack / properties / xHandle
        Added value: +{
        +  "description": "Without the @. Launch boards ask for it and some make it a required field, so a pack without one stalls at the last step of a form that is otherwise finished. Fill it only with an account you hold: it is printed on the listing as the maker, and a handle typed to satisfy a validator credits whoever really owns it. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "type": "string"
        +}
    • Changedupdate_project1 field changed
      • addedInput schema / properties / pack / properties / xHandle
        Added value: +{
        +  "description": "Without the @. Launch boards ask for it and some make it a required field, so a pack without one stalls at the last step of a form that is otherwise finished. Fill it only with an account you hold: it is printed on the listing as the maker, and a handle typed to satisfy a validator credits whoever really owns it. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "type": "string"
        +}
  9. 1 tool update
    • Changedcreate_project1 field changed
      • changedInput schema / properties / facts / description
        Previous value: -"Same shape qualify_project takes: stage, pricingModel, categories, and the booleans."New value: +"Same shape qualify_project takes: stage, pricingModel, categories, and the booleans. Leave domainRating out: the url is measured against Ahrefs on the way in and the measured number is what gets stored, so a guess here is overwritten anyway."
  10. 3 tool updates
    • Changedcreate_project8 fields changed
      • addedInput schema / properties / pack / properties / coverFile
        Added value: +{
        +  "description": "The same cover as a file on the machine your agent runs on, for the forms that upload it.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / coverUrl / description
        Previous value: -"1270x760, the size every gallery accepts. A URL or a local path."New value: +"1270x760, the size every gallery accepts. The public address of it."
      • addedInput schema / properties / pack / properties / demoVideoFile
        Added value: +{
        +  "description": "The video as a file on the machine your agent runs on, for the few platforms that upload rather than embed.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / demoVideoUrl / description
        Previous value: -"Optional almost everywhere, decisive on a few. A URL or a local path."New value: +"Optional almost everywhere, decisive on a few. A watch page or a hosted file."
      • addedInput schema / properties / pack / properties / galleryFiles
        Added value: +{
        +  "description": "The same frames as files on the machine your agent runs on, in the same order, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / pack / properties / galleryUrls / description
        Previous value: -"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."New value: +"Three to five, first one a poster slide. Public addresses, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • addedInput schema / properties / pack / properties / logoFile
        Added value: +{
        +  "description": "The same logo as a file on the machine your agent runs on, like /Users/you/product/logo-512.png. This is the one a submission form uploads, because a file picker cannot be handed a link. It stays a path: nothing can display it, here or anywhere else.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / logoUrl / description
        Previous value: -"Square, transparent, 512px or better. A URL, or the path to the file on the machine your agent runs on."New value: +"Square, transparent, 512px or better. The public address of the image: forms with a logo URL field take this one, and it is what shows on your dashboard."
    • Changedsearch_platforms2 fields changed
      • changedInput schema / properties / maxApprovalDays / description
        Previous value: -"Only platforms approving within this many days."New value: +"Only platforms approving within this many days. Leaves out every platform that publishes no approval time, the same way a rating bound leaves out the unrated."
      • changedInput schema / properties / sort / description
        Previous value: -"Fastest approval first (the default), or strongest domain first."New value: +"Fastest approval first (the default), or strongest domain first. Either way, a platform that publishes no approval time comes last rather than reading as instant."
    • Changedupdate_project8 fields changed
      • addedInput schema / properties / pack / properties / coverFile
        Added value: +{
        +  "description": "The same cover as a file on the machine your agent runs on, for the forms that upload it.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / coverUrl / description
        Previous value: -"1270x760, the size every gallery accepts. A URL or a local path."New value: +"1270x760, the size every gallery accepts. The public address of it."
      • addedInput schema / properties / pack / properties / demoVideoFile
        Added value: +{
        +  "description": "The video as a file on the machine your agent runs on, for the few platforms that upload rather than embed.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / demoVideoUrl / description
        Previous value: -"Optional almost everywhere, decisive on a few. A URL or a local path."New value: +"Optional almost everywhere, decisive on a few. A watch page or a hosted file."
      • addedInput schema / properties / pack / properties / galleryFiles
        Added value: +{
        +  "description": "The same frames as files on the machine your agent runs on, in the same order, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / pack / properties / galleryUrls / description
        Previous value: -"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."New value: +"Three to five, first one a poster slide. Public addresses, one per line. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • addedInput schema / properties / pack / properties / logoFile
        Added value: +{
        +  "description": "The same logo as a file on the machine your agent runs on, like /Users/you/product/logo-512.png. This is the one a submission form uploads, because a file picker cannot be handed a link. It stays a path: nothing can display it, here or anywhere else.",
        +  "type": "string"
        +}
      • changedInput schema / properties / pack / properties / logoUrl / description
        Previous value: -"Square, transparent, 512px or better. A URL, or the path to the file on the machine your agent runs on."New value: +"Square, transparent, 512px or better. The public address of the image: forms with a logo URL field take this one, and it is what shows on your dashboard."
  11. 4 tool updates
    • Changedcreate_project1 field changed
      • addedInput schema / properties / pack / properties / contactEmail
        Added value: +{
        +  "description": "The address you submit under. Most forms ask for one, and it is where the confirmation link lands, so a mailbox nobody opens stalls the submission. Per product, not per person: a client launch and a side project rarely want the same address, and the one you use here is the one the listing belongs to. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "type": "string"
        +}
    • Changedrecord_submission2 fields changed
      • addedInput schema / properties / status / description
        Added value: +"Use `attempted` when the form was sent and you cannot prove it arrived: the tab died, the connection dropped, the page never came back. It is not a lesser `submitted`, it is the honest one, and it carries the verification the platform record describes so somebody can settle it later. Never re-send a form to find out; every platform has a way to check without submitting twice."
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "planned",
        -  "submitted",
        -  "live",
        -  "rejected",
        -  "needs_changes"
        -]New value: +[
        +  "planned",
        +  "attempted",
        +  "submitted",
        +  "live",
        +  "rejected",
        +  "needs_changes"
        +]
    • Changedsearch_platforms6 fields changed
      • addedInput schema / properties / excludeTracked
        Added value: +{
        +  "description": "Leave out every platform this project has already been submitted to or planned for. Needs a token, and is what makes \"one I have not done yet\" answerable.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Return at most this many. The count is unaffected.",
        +  "type": "number"
        +}
      • addedInput schema / properties / maxDomainRating
        Added value: +{
        +  "description": "Only platforms up to this domain rating. The small, quick, unglamorous end of the directory, which is where a first submission usually belongs.",
        +  "type": "number"
        +}
      • addedInput schema / properties / minDomainRating
        Added value: +{
        +  "description": "Only platforms with at least this domain rating.",
        +  "type": "number"
        +}
      • addedInput schema / properties / projectId
        Added value: +{
        +  "description": "Omit it when the account has one project, which is the free tier.",
        +  "type": "string"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Fastest approval first (the default), or strongest domain first.",
        +  "enum": [
        +    "approvalDays",
        +    "domainRating"
        +  ],
        +  "type": "string"
        +}
    • Changedupdate_project1 field changed
      • addedInput schema / properties / pack / properties / contactEmail
        Added value: +{
        +  "description": "The address you submit under. Most forms ask for one, and it is where the confirmation link lands, so a mailbox nobody opens stalls the submission. Per product, not per person: a client launch and a side project rarely want the same address, and the one you use here is the one the listing belongs to. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead.",
        +  "type": "string"
        +}
  12. 3 tool updates
    • Changedcreate_project10 fields changed
      • changedInput schema / properties / pack / properties / categories / description
        Previous value: -"Three at most, in the platform's own vocabulary where it has one."New value: +"Three at most, in the platform's own vocabulary where it has one. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / firstComment / description
        Previous value: -"Product Hunt and Show HN only, and it matters there."New value: +"Product Hunt and Show HN only, and it matters there. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / galleryUrls / description
        Previous value: -"Three to five, first one a poster slide. URLs or local paths."New value: +"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / longDescription / description
        Previous value: -"Two or three paragraphs, for the forms with room."New value: +"Two or three paragraphs, for the forms with room. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / makerBio / description
        Previous value: -"Asked for by launch platforms, not by plain directories. Max 160 characters."New value: +"Asked for by launch platforms, not by plain directories. Max 160 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / name / description
        Previous value: -"Exactly as it should appear in a listing."New value: +"Exactly as it should appear in a listing. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / oneLiner / description
        Previous value: -"A sentence that works as a meta description. Max 140 characters."New value: +"A sentence that works as a meta description. Max 140 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / pricing / description
        Previous value: -"What it costs, in a sentence a form can take."New value: +"What it costs, in a sentence a form can take. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / shortDescription / description
        Previous value: -"The paragraph most directory forms ask for. Max 260 characters."New value: +"The paragraph most directory forms ask for. Max 260 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / tagline / description
        Previous value: -"One line, no product name, no full stop. Max 60 characters."New value: +"One line, no product name, no full stop. Max 60 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
    • Changedsubmission_playbook1 field changed
      • addedInput schema / properties / signInAs
        Added value: +{
        +  "description": "The Google address the maker wrote out when they agreed you could sign in for them on this project. Pass it on every call after they say it, so the answer travels with the work instead of living in your head. It belongs to one project: on a different one, ask again rather than sending the address you were given for the last. Leave it out if they have not written one: sign-in then goes back to them, which is the safe end.",
        +  "type": "string"
        +}
    • Changedupdate_project10 fields changed
      • changedInput schema / properties / pack / properties / categories / description
        Previous value: -"Three at most, in the platform's own vocabulary where it has one."New value: +"Three at most, in the platform's own vocabulary where it has one. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / firstComment / description
        Previous value: -"Product Hunt and Show HN only, and it matters there."New value: +"Product Hunt and Show HN only, and it matters there. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / galleryUrls / description
        Previous value: -"Three to five, first one a poster slide. URLs or local paths."New value: +"Three to five, first one a poster slide. URLs or local paths. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / longDescription / description
        Previous value: -"Two or three paragraphs, for the forms with room."New value: +"Two or three paragraphs, for the forms with room. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / makerBio / description
        Previous value: -"Asked for by launch platforms, not by plain directories. Max 160 characters."New value: +"Asked for by launch platforms, not by plain directories. Max 160 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / name / description
        Previous value: -"Exactly as it should appear in a listing."New value: +"Exactly as it should appear in a listing. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / oneLiner / description
        Previous value: -"A sentence that works as a meta description. Max 140 characters."New value: +"A sentence that works as a meta description. Max 140 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / pricing / description
        Previous value: -"What it costs, in a sentence a form can take."New value: +"What it costs, in a sentence a form can take. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / shortDescription / description
        Previous value: -"The paragraph most directory forms ask for. Max 260 characters."New value: +"The paragraph most directory forms ask for. Max 260 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
      • changedInput schema / properties / pack / properties / tagline / description
        Previous value: -"One line, no product name, no full stop. Max 60 characters."New value: +"One line, no product name, no full stop. Max 60 characters. Write it as the maker would: no em dashes, which read as machine-written and get the whole listing dismissed. Use a comma, a colon, a semicolon, brackets or a full stop instead."
  13. 2 tool updates
    • Changedcreate_project2 fields changed
      • changedInput schema / properties / facts / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."
      • changedInput schema / properties / facts / properties / categories / items / enum
        Previous value: -[
        -  "ai",
        -  "b2b",
        -  "content",
        -  "design",
        -  "dev",
        -  "directory",
        -  "extension",
        -  "free",
        -  "hardware",
        -  "indie",
        -  "local",
        -  "marketing",
        -  "marketplace",
        -  "mobile",
        -  "no-code",
        -  "open-source",
        -  "prelaunch",
        -  "productivity",
        -  "saas",
        -  "web"
        -]New value: +[
        +  "ai",
        +  "b2b",
        +  "community",
        +  "content",
        +  "design",
        +  "dev",
        +  "directory",
        +  "extension",
        +  "free",
        +  "hardware",
        +  "indie",
        +  "local",
        +  "marketing",
        +  "marketplace",
        +  "mobile",
        +  "no-code",
        +  "open-source",
        +  "prelaunch",
        +  "productivity",
        +  "saas",
        +  "web"
        +]
    • Changedqualify_project2 fields changed
      • changedInput schema / properties / categories / description
        Previous value: -"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."New value: +"Every audience and form factor this product belongs to, not just the main one. A product is often several at once, and one missing tag is one directory it never hears about: a repository holding a browser extension and a web app is `extension` and `web`, and an open-source AI dev tool is `open-source`, `ai` and `dev`. Look at what the product actually ships before you answer: a manifest.json means `extension`, an ios or android target means `mobile`, a public repository means `open-source`, a workspace with several of those means all of them. Tags: ai, b2b, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mobile, no-code, open-source, prelaunch, productivity, saas, web."
      • changedInput schema / properties / categories / items / enum
        Previous value: -[
        -  "ai",
        -  "b2b",
        -  "content",
        -  "design",
        -  "dev",
        -  "directory",
        -  "extension",
        -  "free",
        -  "hardware",
        -  "indie",
        -  "local",
        -  "marketing",
        -  "marketplace",
        -  "mobile",
        -  "no-code",
        -  "open-source",
        -  "prelaunch",
        -  "productivity",
        -  "saas",
        -  "web"
        -]New value: +[
        +  "ai",
        +  "b2b",
        +  "community",
        +  "content",
        +  "design",
        +  "dev",
        +  "directory",
        +  "extension",
        +  "free",
        +  "hardware",
        +  "indie",
        +  "local",
        +  "marketing",
        +  "marketplace",
        +  "mobile",
        +  "no-code",
        +  "open-source",
        +  "prelaunch",
        +  "productivity",
        +  "saas",
        +  "web"
        +]
  14. 11 tool updates
    • First observedcreate_project
    • First observedget_platform
    • First observedlist_projects
    • First observedlist_submissions
    • First observedplan_submissions
    • First observedqualify_project
    • First observedrecord_submission
    • First observedsearch_platforms
    • First observedsubmission_playbook
    • First observedupdate_project
    • First observedwhoami

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Machine-readable directory of AI products that register themselves, plus an agent-readability grader for any URL.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Transforms scattered customer feedback from sources like Slack, Zoom, and JIRA into actionable product insights and AI-generated PRDs. It features over 50 tools for semantic clustering, sentiment analysis, and VOC-based prioritization to streamline product management workflows.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.