Is the Submitmap Directory MCP server down?

mcp-registry/com.submitmap/directory · v2.0.0

healthy
Last checked 2026-10-17 10:49 UTC · handshake 854ms

As of 2026-10-17 10:49 UTC, the Submitmap Directory MCP server is up with a Glimind reliability score of 99/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

uptime (30d checks)
100%
checks observed
3,572
outages (90d)
0
tools
11

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

Install Submitmap Directory MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http submitmap-directory-mcp-server https://submitmap.com/api/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "submitmap-directory-mcp-server": {
      "type": "http",
      "url": "https://submitmap.com/api/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: D (68/100)

D (68/100): 0 error(s), 4 warning(s) across 11 tool(s); ~12,291 tokens of tool definitions.
Scores higher than 4% of 15,270 MCP servers Glimind has audited.
Its tool list costs an agent ~12,291 tokens per session — more than 85% of servers.
no tool-poisoning patterns
Schemas100
Descriptions52
Safety hints5
Token cost81
Client compatibility70
Protocol100
Reliability100
Stability84

What to fix (6)

2 tool definition(s) exceed ~1,200 tokens each (largest: create_project, ~4,504).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~7,114 tokens every session.

Tools: create_project, update_project · saves ~7,114 tokens/session

11 of 11 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones.

Tools: create_project, get_platform, list_projects, list_submissions, plan_submissions and 6 more

28 parameter(s) across 6 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call.

Tools: create_project, qualify_project, record_submission, search_platforms, submission_playbook and 1 more

2 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads.

Tools: create_project, update_project

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably.

In the last 30 days: 0 tool(s) removed and 4 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts.

Auto-fix: 6 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 6 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fcom.submitmap%2Fdirectory/fixes

create_project 1 change
{
  "name": "create_project",
  "description": "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",
  "inputSchema": {
    "type": "object",
    "required": [
      "name"
    ],
    "properties": {
      "url": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "pack": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The page a visitor lands on, not a waitlist."
          },
          "name": {
            "type": "string",
            "description": "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."
          },
          "logoUrl": {
            "type": "string",
            "description": "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."
          },
          "pricing": {
            "type": "string",
            "description": "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."
          },
          "repoUrl": {
            "type": "string",
            "description": "The public repository, for open-source directories. Leave it empty for a closed-source product rather than pointing at something else."
          },
          "tagline": {
            "type": "string",
            "description": "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."
          },
          "xHandle": {
            "type": "string",
            "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."
          },
          "audience": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The people it is built for, like Freelancers or Small businesses, for the forms with a target-audience picker. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "coverUrl": {
            "type": "string",
            "description": "1270x760, the size every gallery accepts. The public address of it."
          },
          "location": {
            "type": "string",
            "description": "City and country, or country alone. Asked for as headquarters, and it decides the regional directories. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "logoFile": {
            "type": "string",
            "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."
          },
          "makerBio": {
            "type": "string",
            "description": "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."
          },
          "oneLiner": {
            "type": "string",
            "description": "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."
          },
          "teamSize": {
            "type": "string",
            "description": "How many people work on it, as a number or a range like 2-10. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "coverFile": {
            "type": "string",
            "description": "The same cover as a file on the machine your agent runs on, for the forms that upload it."
          },
          "makerName": {
            "type": "string",
            "description": "The person shown as the maker, first and last name, exactly as it should be printed on a listing. Launch boards and founder profiles require it. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "makerRole": {
            "type": "string",
            "description": "Their title, like Founder or Solo developer. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "techStack": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "What it is built with, five at most, like Next.js or Postgres. Launch boards for builders make it a required step. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "buildStory": {
            "type": "string",
            "description": "Why and how it was built, with the real numbers, for community posts and maker showcases that want a story rather than a description. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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."
          },
          "howItWorks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Three short steps, one per line, under 200 characters each. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "companyName": {
            "type": "string",
            "description": "The business behind the product, when it is not the product name. Review sites and B2B directories list the company. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "foundedYear": {
            "type": "string",
            "description": "Four digits. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "galleryUrls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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."
          },
          "contactEmail": {
            "type": "string",
            "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."
          },
          "demoVideoUrl": {
            "type": "string",
            "description": "Optional almost everywhere, decisive on a few. A watch page or a hosted file."
          },
          "firstComment": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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."
          },
          "fundingStage": {
            "type": "string",
            "description": "Bootstrapped, or what was raised and at which stage. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "galleryFiles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "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."
          },
          "alternativeTo": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Well-known products this replaces, by name. Alternative directories will not take a listing without one. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "demoVideoFile": {
            "type": "string",
            "description": "The video as a file on the machine your agent runs on, for the few platforms that upload rather than embed."
          },
          "monthlyRevenue": {
            "type": "string",
            "description": "MRR or a bracket like $0-1k, and only if the maker is happy for it to be public: forms that ask for it usually display it. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "longDescription": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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."
          },
          "monthlyVisitors": {
            "type": "string",
            "description": "A real figure from their analytics. Some directories make it a required number and print it. Only what the maker told you, never a guess. When a form requires it and it is empty here, ask the maker once, then save the answer with update_project so no other form stops on 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."
          },
          "shortDescription": {
            "type": "string",
            "description": "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."
          },
          "extendedDescription": {
            "type": "string",
            "description": "A full write-up of 400 words or more (about 2,500 characters) for the forms that set a minimum length. The long description above is shorter on purpose. Drafting it from the product is fine, but show the maker before it is used, because it goes out under their name. 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."
          }
        }
      },
      "facts": {
        "type": "object",
        "properties": {
          "stage": {
            "enum": [
              "idea",
              "prelaunch",
              "live",
              "revenue"
            ],
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "enum": [
                "agent-skill",
                "ai",
                "b2b",
                "christian",
                "community",
                "content",
                "design",
                "dev",
                "directory",
                "extension",
                "free",
                "hardware",
                "indie",
                "local",
                "marketing",
                "marketplace",
                "mcp",
                "mobile",
                "no-code",
                "open-source",
                "prelaunch",
                "productivity",
                "saas",
                "turkish-founders",
                "web"
              ],
              "type": "string"
            },
            "description": "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, christian, community, content, design, dev, directory, extension, free, hardware, indie, local, marketing, marketplace, mcp, mobile, no-code, open-source, prelaunch, productivity, saas, turkish-founders, web."
          },
          "pricingModel": {
            "enum": [
              "free",
              "freemium",
              "paid",
              "lifetime"
            ],
            "type": "string"
          }
        },
        "description": "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."
      },
      "pitch": {
        "type": "string",
        "description": "One paragraph in the maker's own words."
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
get_platform 1 change
{
  "name": "get_platform",
  "description": "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",
  "inputSchema": {
    "type": "object",
    "required": [
      "slug"
    ],
    "properties": {
      "slug": {
        "type": "string",
        "description": "Platform slug, e.g. \"product-hunt\"."
      },
      "brief": {
        "type": "boolean",
        "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."
      },
      "projectId": {
        "type": "string",
        "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."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}
list_projects 1 change
{
  "name": "list_projects",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/com.submitmap/directory"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.submitmap/directory"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.submitmap%2Fdirectory.svg)](https://glimind.com/server/mcp-registry%2Fcom.submitmap%2Fdirectory?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.submitmap%2Fdirectory?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.submitmap%2Fdirectory.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.submitmap%2Fdirectory.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.submitmap%2Fdirectory?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:289cad8887144ad3…, first seen 2026-10-17, included at leaf 5219 of 17,446. Version history · verify what your client received.

Tools (11)

Compare: most reliable data servers · most reliable knowledge servers · most reliable productivity servers · most reliable search servers · most reliable other servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Submitmap Directory MCP server down right now?

As of 2026-10-17 10:49 UTC, the Submitmap Directory MCP server is up with a Glimind reliability score of 99/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

How many tools does Submitmap Directory MCP server provide?

Submitmap Directory MCP server advertises 11 tools, including create_project, get_platform, list_projects, list_submissions, plan_submissions.

How do I install Submitmap Directory MCP server?

Point your MCP client at this streamable-http endpoint: https://submitmap.com/api/mcp

Is the Submitmap Directory MCP server safe to connect to an AI agent?

Glimind scanned all 11 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Submitmap Directory MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.