Skip to main content
Glama

@striderlabs/mcp-nextdoor

MCP (Model Context Protocol) server for Nextdoor — the local community platform. Automate neighborhood feed browsing, marketplace search, event discovery, and local service finding using Playwright with Browserbase.

Requirements

  • Node.js 18+

  • A Browserbase account with a CDP-enabled session URL

  • A Nextdoor account

Related MCP server: mcp-browser-kit

Environment Variables

Variable

Required

Description

BROWSERBASE_CDP_URL

Yes

Browserbase CDP WebSocket URL for browser connection

NEXTDOOR_EMAIL

Yes

Your Nextdoor account email

NEXTDOOR_PASSWORD

Yes

Your Nextdoor account password

Installation

npm install @striderlabs/mcp-nextdoor

Or from tarball:

npm install ./striderlabs-mcp-nextdoor-1.0.0.tgz

MCP Configuration

Add to your MCP client config (e.g., Claude Desktop ~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "nextdoor": {
      "command": "node",
      "args": ["/path/to/node_modules/@striderlabs/mcp-nextdoor/dist/index.js"],
      "env": {
        "BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION",
        "NEXTDOOR_EMAIL": "you@example.com",
        "NEXTDOOR_PASSWORD": "yourpassword"
      }
    }
  }
}

Tools

get_feed

Get posts from your Nextdoor neighborhood feed.

Parameters:

  • limit (number, 1-50, default: 10) — Number of posts to retrieve

  • category (string, default: "all") — Filter by: all, crime_safety, lost_found, free_stuff, recommendations, general

Example:

{ "limit": 5, "category": "crime_safety" }

create_post

Draft a new post in your Nextdoor neighborhood. The post is loaded into the composer but not auto-submitted (safety measure).

Parameters:

  • title (string, required) — Post title

  • body (string, required) — Post body content

  • category (string, default: "general") — Category: general, crime_safety, lost_found, free_stuff, recommendations

Example:

{ "title": "Lost black cat - Maple St area", "body": "Missing since Tuesday evening...", "category": "lost_found" }

search_marketplace

Search Nextdoor's For Sale & Free marketplace.

Parameters:

  • query (string, required) — Search terms

  • max_price (number, optional) — Maximum price

  • min_price (number, optional) — Minimum price

  • limit (number, 1-50, default: 10) — Number of listings

Example:

{ "query": "bicycle", "max_price": 200, "limit": 5 }

get_events

Get upcoming local events from Nextdoor.

Parameters:

  • limit (number, 1-50, default: 10) — Number of events

  • days_ahead (number, 1-90, default: 30) — Days ahead to look

Example:

{ "limit": 10, "days_ahead": 14 }

get_recommendations

Get local business recommendations from neighbors.

Parameters:

  • category (string, default: "all") — Business type (e.g., restaurant, plumber, dentist)

  • limit (number, 1-50, default: 10) — Number of recommendations

Example:

{ "category": "restaurant", "limit": 5 }

find_services

Search for local service providers.

Parameters:

  • service_type (string, required) — Service to find (e.g., plumber, electrician, babysitter)

  • limit (number, 1-50, default: 10) — Number of providers

Example:

{ "service_type": "house cleaner", "limit": 5 }

How It Works

The server uses Playwright to connect to a Browserbase-managed Chromium browser via CDP (Chrome DevTools Protocol). It navigates to Nextdoor, authenticates with your credentials, and scrapes or interacts with the page to fulfill tool requests.

MCP Client → mcp-nextdoor server → Playwright CDP → Browserbase → Chromium → nextdoor.com

Notes

  • Authentication: The server logs in using email/password on first use. Sessions are reused across tool calls.

  • Post creation: create_post drafts content into the composer but does not submit automatically to prevent accidental posts.

  • Selectors: Nextdoor's frontend changes periodically. If extraction returns empty results, the page structure may have changed.

  • Rate limiting: Be respectful of Nextdoor's terms of service and avoid excessive automated requests.

License

MIT — Strider Labs

Available Tools

6 tools
create_postA

Create a new post in the Nextdoor neighborhood. Drafts the post in the composer (does not auto-submit for safety).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesPost body content
titleYesPost title
categoryNoPost categorygeneral

TDQS

A3.7/5.0
Behavior3/5

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

Discloses that it only drafts and does not auto-submit, which is important. However, no annotations provided, so missing details like authentication requirements, return value, or effect on state. Agent may need more on safety.

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?

Two sentences, front-loaded with purpose. No redundant or irrelevant information.

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

Completeness3/5

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

Adequate for a simple creation tool but lacks details on output (e.g., whether it returns a draft ID) and the need for manual submission. Could be slightly more complete given no output schema.

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 covers all 3 parameters with descriptions. The description adds minimal extra meaning beyond the schema. 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?

Clearly states 'Create a new post' with specific verb and resource. Differentiates from sibling tools which are all read-only or for other purposes. Also adds nuance about drafting, not auto-submitting.

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

Usage Guidelines3/5

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

Implies usage for post creation but lacks explicit when-to-use or when-not-to-use compared to siblings. No alternatives mentioned, though context from sibling names helps distinguish.

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

find_servicesA

Search for local service providers on Nextdoor (plumbers, electricians, babysitters, etc.). Returns providers with ratings, contact info, and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of service providers to retrieve (1-50)
service_typeYesType of service to search for (e.g., 'plumber', 'electrician', 'babysitter', 'landscaper')

TDQS

A3.8/5.0
Behavior2/5

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

No annotations, and description fails to disclose key behaviors such as read-only nature, pagination, caching, or authentication requirements. It only mentions return fields.

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?

Two sentences front-loading purpose and return info. No filler, each word adds value.

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 simple search tool with two parameters and no output schema, description adequately covers purpose and return data. Minor gaps in behavioral details.

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 100% with descriptions for both parameters. Description adds examples for service_type but does not enhance parameter meaning beyond 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?

Clearly states verb 'Search' and resource 'local service providers on Nextdoor', with concrete examples. Distinct from siblings like search_marketplace.

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?

Describes what it does but does not explicitly state when not to use or compare to alternatives. Context is clear, no exclusions provided.

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

get_eventsA

Get upcoming local events from Nextdoor. Returns events with date, time, location, description, and organizer.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of events to retrieve (1-50)
days_aheadNoHow many days ahead to look for events

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosure. It states the tool returns specific fields (date, time, location, description, organizer), which is helpful. However, it omits behavioral details such as whether results are paginated, any authentication requirements, the geographic scope ('local' is ambiguous), or potential limitations on the data. The description is adequate but not comprehensive.

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 consists of two concise sentences: the first defines the action and scope, the second lists return fields. Every word adds value; there is no redundancy or filler. The structure is front-loaded and efficient.

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 the tool's simplicity (2 parameters, no nested objects, no output schema), the description covers the core purpose and output fields. It lacks detail on geographic scope (e.g., 'local' to the user's verified address) and any default behavior, but overall provides sufficient context for an agent to understand the tool's function.

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 100% (both limit and days_ahead have descriptions). The description repeats 'upcoming' and 'local' but does not add meaning beyond what the schema already provides. It does not explain how the two parameters interact (e.g., whether days_ahead filters events starting within that window, or if limit applies per query). Baseline score of 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 clearly states the verb 'Get', the resource 'upcoming local events from Nextdoor', and lists the returned fields (date, time, location, description, organizer). It unambiguously distinguishes itself from sibling tools like create_post or get_feed, which serve different purposes.

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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusionary conditions, or scenarios where other tools (e.g., get_feed) might be more appropriate. The absence of any usage direction leaves the agent to infer solely from the tool name.

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

get_feedA

Get posts from the Nextdoor neighborhood feed. Returns recent posts including title, author, content, category, and engagement metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of posts to retrieve (1-50)
categoryNoPost category filterall

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Indicates read-only operation ('Get posts... Returns recent posts'), but does not mention authentication needs, rate limits, or any side effects. Adequate but shallow.

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?

Two concise sentences, front-loaded with purpose. Every sentence adds value. No wasted words.

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 simple 2-param tool without output schema, description adequately states what is returned. Lacks details on ordering, pagination, or empty feed behavior, but overall sufficient for low complexity.

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 covers both parameters (limit, category) with descriptions. Tool description adds return field details but not parameter-specific meaning. Baseline 3 appropriate for 100% schema coverage.

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?

Description clearly states 'Get posts from the Nextdoor neighborhood feed' with specific verb (get) and resource (feed posts). Lists return fields (title, author, content, category, engagement metrics), distinguishing it from siblings like create_post or find_services.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives. Implies use for general feed retrieval, but no exclusions or comparisons to similar tools like get_events or get_recommendations.

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

get_recommendationsA

Get local business recommendations from Nextdoor neighbors. Returns businesses with ratings, reviews, and neighbor endorsements.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recommendations to retrieve (1-50)
categoryNoBusiness category to filter by (e.g., 'restaurant', 'plumber', 'dentist', 'all')all

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description fails to disclose behavioral traits such as read-only nature, idempotency, authentication needs, or potential side effects. Leaves ambiguity about safety and repeatability.

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?

Single sentence that is direct and efficient, containing all essential information without any filler. Perfectly 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?

Covers input parameters via schema and output content in description. Lacks explanation of result ordering, pagination, or any limitations beyond the limit parameter. Adequate for a simple read tool.

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 covers both parameters with descriptions (100% coverage). Description does not add additional meaning beyond what schema provides, meeting baseline but not exceeding.

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?

Description clearly states the action ('Get'), the resource ('local business recommendations'), and the source ('from Nextdoor neighbors'). It also specifies return content (ratings, reviews, endorsements), distinguishing it from siblings like find_services.

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

Usage Guidelines3/5

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

Implies usage for getting recommendations but provides no explicit guidance on when to use this vs alternatives like find_services. No 'when not to use' or context on prerequisites.

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

search_marketplaceA

Search Nextdoor's local marketplace (For Sale & Free section) for items. Returns listings with price, seller, and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of listings to retrieve (1-50)
queryYesSearch query for marketplace listings
max_priceNoMaximum price filter
min_priceNoMinimum price filter

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool returns listings, implying a read-only operation, but does not explicitly declare side effects, required permissions, or data freshness. The search nature is safe, but details like rate limits or pagination are absent.

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 a single, front-loaded sentence of 20 words with no unnecessary words. It efficiently conveys the core action and output, earning its place without fluff.

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

Completeness3/5

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

The tool has 4 parameters and no output schema. The description mentions return fields (price, seller, description) but does not explain limit behavior, default ordering, or how the 'For Sale & Free section' filter works. Given the complexity, it is adequate but not fully complete.

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%, with each parameter (query, limit, min_price, max_price) already described in the schema. The description adds no additional parameter-level meaning; it only mentions output fields. Baseline 3 is appropriate as the schema does the heavy lifting.

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 the verb 'search', the resource 'Nextdoor's local marketplace (For Sale & Free section)', and specifies the output 'listings with price, seller, and description'. This distinguishes it from siblings like create_post or find_services, which are distinct actions.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool vs alternatives. However, the purpose is clear enough that an agent can infer it is for marketplace item searches, not for posts or events. No 'when-to-use' or 'when-not-to-use' guidance is provided.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedcreate_post
    • First observedfind_services
    • First observedget_events
    • First observedget_feed
    • First observedget_recommendations
    • First observedsearch_marketplace

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct function: posting, services, events, feed, recommendations, marketplace. There is no overlap in purpose, and descriptions clearly differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (create_post, find_services, get_events, get_feed, get_recommendations, search_marketplace). The verbs vary but are appropriate and predictable.

Tool Count5/5

Six tools cover the core features of a neighborhood app without being excessive. Each tool serves a distinct and essential purpose.

Completeness4/5

The set covers major actions like posting, browsing feed, events, services, recommendations, and marketplace. Missing update/delete for posts, but the core workflow is functional.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-nextdoor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server