mcp-nextdoor
Provides tools for browsing neighborhood feed, creating posts, searching marketplace, discovering local events, getting recommendations, and finding local service providers on Nextdoor.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-nextdoorsearch marketplace for bicycles under $200"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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 |
| Yes | Browserbase CDP WebSocket URL for browser connection |
| Yes | Your Nextdoor account email |
| Yes | Your Nextdoor account password |
Installation
npm install @striderlabs/mcp-nextdoorOr from tarball:
npm install ./striderlabs-mcp-nextdoor-1.0.0.tgzMCP 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 retrievecategory(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 titlebody(string, required) — Post body contentcategory(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 termsmax_price(number, optional) — Maximum pricemin_price(number, optional) — Minimum pricelimit(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 eventsdays_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.comNotes
Authentication: The server logs in using email/password on first use. Sessions are reused across tool calls.
Post creation:
create_postdrafts 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 toolscreate_postA
Create a new post in the Nextdoor neighborhood. Drafts the post in the composer (does not auto-submit for safety).
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Post body content | |
| title | Yes | Post title | |
| category | No | Post category | general |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of service providers to retrieve (1-50) | |
| service_type | Yes | Type of service to search for (e.g., 'plumber', 'electrician', 'babysitter', 'landscaper') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of events to retrieve (1-50) | |
| days_ahead | No | How many days ahead to look for events |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of posts to retrieve (1-50) | |
| category | No | Post category filter | all |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recommendations to retrieve (1-50) | |
| category | No | Business category to filter by (e.g., 'restaurant', 'plumber', 'dentist', 'all') | all |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of listings to retrieve (1-50) | |
| query | Yes | Search query for marketplace listings | |
| max_price | No | Maximum price filter | |
| min_price | No | Minimum price filter |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.0.0- First observed
create_post - First observed
find_services - First observed
get_events - First observed
get_feed - First observed
get_recommendations - First observed
search_marketplace
TDQS
Each tool targets a distinct function: posting, services, events, feed, recommendations, marketplace. There is no overlap in purpose, and descriptions clearly differentiate them.
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.
Six tools cover the core features of a neighborhood app without being excessive. Each tool serves a distinct and essential purpose.
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
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
An MCP server that automatically collects feedback on your MCP server.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP Server for an Agent Task Marketplace
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for automating Turo peer-to-peer car rental interactions using stealth browser automation. It enables users to search for vehicles, view detailed listing and host information, and create or manage car bookings.518MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP Server that enables AI assistants to interact with your local browsers.3,60754MIT
- AlicenseAqualityDmaintenanceFully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.63MIT
- AlicenseAqualityDmaintenanceMCP server for LinkedIn that enables AI agents to post, comment, like, and manage content on LinkedIn.10171MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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