Neeed Directory
REMOTE · NEEED.DIRECTORY
Search Neeed Directory's software listings, draft one for a maker to claim, and manage your own.
Available components
Last scanned (22 hours ago)
Scores higher than 55% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Search and Retrieval
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_listing). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability84
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1078 tokens (~119/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
- Stability: unverified → 0.03 ▲ functional
- 31 Oct 26 68
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://neeed.directory/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=neeed.directory | CN=WE1,O=Google Trust Services,C=US | 16 Sept 2026 | 15 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 5bb51ce6a1ae91b0e562ad04e689a40 |
| SANs: neeed.directory, *.neeed.directory | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of neeed.directory. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| directory. | present | 5701 | 8 | Verified |
| neeed.directory. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains |
| content-security-policy | base-uri 'none'; child-src 'none'; connect-src 'self' https://e.visitors.now https://papercuts.so https://papercuts.3492edd506cc555a3722bf9e102bcf80.r2.cloudflarestorage.com; default-src 'self'; font-src 'self'; form-action 'self'; frame-ancestors 'none'; frame-src https://challenges.cloudflare.com; img-src 'self' blob: data: https://media.neeed.directory https://lh3.googleusercontent.com https://neeed.directory https://*.neeed.directory; manifest-src 'self'; media-src 'self'; object-src 'none'; script-src 'self' 'unsafe-inline' https://cdn.visitors.now https://papercuts.so https://challenges.cloudflare.com; style-src 'self' 'unsafe-inline'; worker-src 'self' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | accelerometer=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), usb=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://neeed.directory/api/mcp | Verified | 200 | |
| http (plaintext) | http://neeed.directory/api/mcp | HTTPS enforced | 308 | https://neeed.directory/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_badge Check my badge ~82
Looks for the Neeed badge on one of your Free listings' sites now and answers found, missing or inconclusive, with the markup to add. It records nothing: the maker presses Verify on the listing's edit page to make the link dofollow or bring a hidden listing back.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | The listing's slug, from my_listings |
| Name | Type | Req | Description |
|---|---|---|---|
| badge | object | yes | The badge for the product's site, linking to its listing |
| next_step | string | yes | – |
| result | string | yes | inconclusive: the site could not be read, which says nothing either way |
| slug | string | yes | – |
| verified | boolean | yes | Whether the listing has the badge on record |
No examples provided.
fetch Fetch product ~60
One approved product on Neeed Directory by id, the slug from search or list_products. Returns its title, plain-text card, url and metadata including its website, category and pricing model.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A product slug from search or list_products |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| metadata | object | yes | – |
| text | string | yes | – |
| title | string | yes | – |
| url | string | yes | – |
No examples provided.
list_categories List categories ~39
Every category on Neeed Directory with its slug, name, approved product count and url. Pass a category slug to list_products to read its product cards.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | yes | – |
No examples provided.
list_products List products ~114
Approved product cards on Neeed Directory, newest first, with optional query, category, label and tag filters. Returns at most 50 cards per page with a total count. Each slug is an id that fetch accepts.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Category slug |
| label | string | – | Label slug |
| limit | integer | – | Products per page |
| page | integer | – | Page number |
| q | string | – | Full-text query over name, tagline and description |
| tag | string | – | Tag slug |
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | yes | – |
| page | integer | yes | – |
| products | array | yes | – |
| total | integer | yes | Matches across every page |
No examples provided.
my_listings My listings ~107
Your listings on Neeed Directory, newest first: status, plan, badge, the admin's feedback when there is any, and the page to open. Pass a slug to get one. When next_page is a number, call again with that page for older listings.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | The page to read, from 1 (the default), 100 listings each; ignored with a slug |
| slug | string | – | The listing's slug, from my_listings |
| Name | Type | Req | Description |
|---|---|---|---|
| listings | array | yes | – |
| next_page | – | yes | The page to ask for next, or null on the last page |
| total | integer | yes | Your listings across every page, or 1 or 0 with a slug |
No examples provided.
search Search products ~74
Search approved products on Neeed Directory, newest first. Returns at most 20 results with id, title and url. The id is the product slug; pass it to fetch for a plain-text card. Queries shorter than two characters return no results.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search terms; the first 100 characters are read |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | – |
No examples provided.
submit_product Submit a product ~228
Without sign-in, saves a private draft listing on Neeed Directory and returns a claim link: nothing is published or charged until the maker opens it, signs in and submits. Signed in with permission to edit listings, submits the listing to the maker's account: Neeed's automatic check publishes it or holds it for review, and Premium returns a Stripe Checkout link the maker pays in the browser.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | One category slug from list_categories |
| description | string | yes | What it does and for whom, factual, in plain text. The 1000-character limit counts &, < and > as several characters each |
| name | string | yes | The product's name |
| plan | string | – | The plan the maker wants; nothing is charged until they submit |
| pricing_model | string | yes | How the maker charges for it |
| product_type | string | yes | software, or digital_product for templates, courses, ebooks and the like |
| punchline | string | yes | One line on what it does |
| website | string | yes | The product's website, https |
| Name | Type | Req | Description |
|---|---|---|---|
| badge | object | – | Free plan only: the badge for the product's site, linking to its future listing |
| checkout_url | string | – | Signed in, Premium, live: Stripe Checkout, which the maker opens and pays |
| claim_url | string | – | The maker opens it, signs in and submits. Works once. |
| expires_at | string | – | When the claim link stops working |
| listing_status | string | – | already_submitted only: where that listing stands |
| next_steps | array | – | – |
| plan | string | – | Signed in only. pending_payment: Premium starts once the maker pays |
| slug | string | – | The reserved product slug for a draft |
| status | string | yes | draft_created: saved for the maker to claim. already_listed: the site is live on Neeed. already_submitted: signed in, this account already has a listing for the site, see listing_status. live: listed… |
| url | string | – | The listing: its public page when live or already_listed, its edit page otherwise |
No examples provided.
update_listing Update a listing ~189
Edits one of your listings: name, punchline, description, category, pricing model or Twitter handle, under the dashboard's rules. Editing a listing that is not live sends it back for review; a live listing stays live. A rejected listing cannot be edited.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | One category slug from list_categories |
| description | string | – | What it does and for whom, factual, in plain text. The 1,000-character limit counts &, < and > as several characters each |
| name | string | – | The product's name |
| pricing_model | string | – | How the maker charges for it |
| punchline | string | – | One line on what it does |
| slug | string | yes | The listing's slug, from my_listings |
| string | – | The product's Twitter or X handle, like @neeed. Empty clears it |
| Name | Type | Req | Description |
|---|---|---|---|
| next_step | string | yes | – |
| slug | string | yes | – |
| status | string | yes | live: public. in_review: waiting on a review. changes_requested: edit it to send it back. rejected: final. hidden_badge_missing: hidden until the badge is back and verified |
| url | string | yes | – |
No examples provided.
upgrade_listing Upgrade to Premium ~59
Returns a Stripe Checkout link that upgrades one of your live Free listings to Premium, with the price. Nothing is charged until the maker opens the link and pays in the browser.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | The listing's slug, from my_listings |
| Name | Type | Req | Description |
|---|---|---|---|
| amount | object | yes | – |
| checkout_url | string | yes | Stripe Checkout. The maker opens it and pays in the browser |
| note | string | yes | – |
| slug | string | yes | – |
No examples provided.
How do I install the Neeed Directory MCP server?
Neeed Directory is a hosted endpoint at https://neeed.directory/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · neeed.directory
claude mcp add --transport http directory-neeed-listings 'https://neeed.directory/api/mcp'
What is the Neeed Directory MCP server?
Neeed Directory is an MCP server listed in the public MCP registry as directory.neeed/listings. Search Neeed Directory's software listings, draft one for a maker to claim, and manage your own. This page covers its hosted endpoint (https://neeed.directory/api/mcp).
Is the Neeed Directory MCP server safe to use?
Neeed Directory scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Neeed Directory MCP server expose?
Neeed Directory exposes 9 tools: search, fetch, list_categories, list_products, submit_product, and 4 more. Their descriptions and schemas cost roughly 952 tokens of context every time the server is loaded.
Does the Neeed Directory MCP server require authentication?
No. We connected to Neeed Directory without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Neeed Directory MCP server still maintained?
Neeed Directory is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.