Community Board

Search and discover local community listings, classifieds, services and events.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
66%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,462Tokens (tool definitions)
~4.6 KBTypical response size
Moderate attention impact (1.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "community-board": {
      "url": "https://mcp.shavitnetzer.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.shavitnetzer.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_listings(query, category, min_price, max_price, latitude, ...)

Use this first whenever the user asks to find, search for, buy or rent something locally (e.g. 'תחפש לי', 'תמצא לי', 'אני מחפש לקנות'): second-hand items, vehicles, apartments, jobs, professionals, pets or events. Searches active Community Board listings. Filter by words in the title or description, category slug, and inclusive minimum or maximum price. Supply both latitude and longitude to calculate distance; also supply radius_km to limit results to that distance. Use distance sorting only with an origin, relevance to put title matches first for a query, or newest for recent listings. An empty results array means no active listings matched the filters.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "anyOf": [
        {
          "maxLength": 200,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional words to match in title or description.",
      "title": "Query"
    },
    "category": {
      "anyOf": [
        {
          "maxLength": 80,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional category slug, such as vehicles or real_estate.",
      "title": "Category"
    },
    "min_price": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional inclusive minimum price; use the listing currency.",
      "title": "Min Price"
    },
    "max_price": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional inclusive maximum price; use the listing currency.",
      "title": "Max Price"
    },
    "latitude": {
      "anyOf": [
        {
          "maximum": 90,
          "minimum": -90,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Latitude of the search origin; provide together with longitude.",
      "title": "Latitude"
    },
    "longitude": {
      "anyOf": [
        {
          "maximum": 180,
          "minimum": -180,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Longitude of the search origin; provide together with latitude.",
      "title": "Longitude"
    },
    "radius_km": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "maximum": 1000,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional maximum distance in kilometers; requires latitude and longitude.",
      "title": "Radius Km"
    },
    "sort": {
      "default": "newest",
      "description": "Result ordering: relevance, distance (requires origin), or newest.",
      "enum": [
        "relevance",
        "distance",
        "newest"
      ],
      "title": "Sort",
      "type": "string"
    }
  },
  "title": "search_listingsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "items": {
        "$ref": "#/$defs/ListingOutput"
      },
      "title": "Results",
      "type": "array"
    },
    "count": {
      "title": "Count",
      "type": "integer"
    }
  },
  "required": [
    "results",
    "count"
  ],
  "$defs": {
    "ListingOutput": {
      "description": "Public listing fields returned by Community Board tools.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "category": {
          "title": "Category",
          "type": "string"
        },
        "price": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Price"
        },
        "currency": {
          "title": "Currency",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address"
        },
        "latitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Latitude"
        },
        "longitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Longitude"
        },
        "distance_km": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Distance Km"
        },
        "created_at": {
          "title": "Created At",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "description",
        "category",
        "price",
        "currency",
        "status",
        "address",
        "latitude",
        "longitude",
        "distance_km",
        "created_at"
      ],
      "title": "ListingOutput",
      "type": "object"
    }
  },
  "title": "ListingSearchOutput"
}
🟢get_listing(listing_id)

Use this when the user wants more details about a listing returned by a search. Retrieves one listing by its UUID. Active listings are visible to everyone. Draft, sold, closed, or expired listings are returned only to their owner when the local development identity is configured; otherwise they are reported as not found.

Input Schema

{
  "type": "object",
  "properties": {
    "listing_id": {
      "description": "UUID of the listing to retrieve.",
      "title": "Listing Id",
      "type": "string"
    }
  },
  "required": [
    "listing_id"
  ],
  "title": "get_listingArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "title": {
      "title": "Title",
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "category": {
      "title": "Category",
      "type": "string"
    },
    "price": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Price"
    },
    "currency": {
      "title": "Currency",
      "type": "string"
    },
    "status": {
      "title": "Status",
      "type": "string"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Address"
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latitude"
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Longitude"
    },
    "distance_km": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Distance Km"
    },
    "created_at": {
      "title": "Created At",
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "description",
    "category",
    "price",
    "currency",
    "status",
    "address",
    "latitude",
    "longitude",
    "distance_km",
    "created_at"
  ],
  "description": "Public listing fields returned by Community Board tools.",
  "title": "ListingOutput"
}
🟢search_nearby(latitude, longitude, radius_km, category, sort)

Use this when the user asks what is available, sold or happening near a place or near them (e.g. 'מה מוכרים לידי', 'מה קורה לידי', 'איש מקצוע באזור'). If their location is unknown, ask for a city or area first instead of guessing. Finds active listings near a geographic point using PostGIS distance search. Latitude and longitude are separate decimal-degree values; radius_km is required and measured in kilometers. You may narrow by category. Distance ordering is the default. An empty results array means nothing active matched within the radius.

Input Schema

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Search origin latitude in decimal degrees.",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Search origin longitude in decimal degrees.",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "radius_km": {
      "description": "Maximum distance from the origin, in kilometers.",
      "exclusiveMinimum": 0,
      "maximum": 1000,
      "title": "Radius Km",
      "type": "number"
    },
    "category": {
      "anyOf": [
        {
          "maxLength": 80,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional category slug.",
      "title": "Category"
    },
    "sort": {
      "default": "distance",
      "description": "Result ordering; distance requires the supplied origin.",
      "enum": [
        "relevance",
        "distance",
        "newest"
      ],
      "title": "Sort",
      "type": "string"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "radius_km"
  ],
  "title": "search_nearbyArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "items": {
        "$ref": "#/$defs/ListingOutput"
      },
      "title": "Results",
      "type": "array"
    },
    "count": {
      "title": "Count",
      "type": "integer"
    }
  },
  "required": [
    "results",
    "count"
  ],
  "$defs": {
    "ListingOutput": {
      "description": "Public listing fields returned by Community Board tools.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "category": {
          "title": "Category",
          "type": "string"
        },
        "price": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Price"
        },
        "currency": {
          "title": "Currency",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address"
        },
        "latitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Latitude"
        },
        "longitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Longitude"
        },
        "distance_km": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Distance Km"
        },
        "created_at": {
          "title": "Created At",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "description",
        "category",
        "price",
        "currency",
        "status",
        "address",
        "latitude",
        "longitude",
        "distance_km",
        "created_at"
      ],
      "title": "ListingOutput",
      "type": "object"
    }
  },
  "title": "ListingSearchOutput"
}
🟢list_categories

Use this to map what the user wants (e.g. car, apartment, plumber, job, dog, event) to a category slug before searching. Returns the category slugs and display names accepted by listing creation and search. Use a returned slug as the category parameter. An empty categories array means no categories are currently configured.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "list_categoriesArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "categories": {
      "items": {
        "$ref": "#/$defs/CategoryOutput"
      },
      "title": "Categories",
      "type": "array"
    },
    "count": {
      "title": "Count",
      "type": "integer"
    }
  },
  "required": [
    "categories",
    "count"
  ],
  "$defs": {
    "CategoryOutput": {
      "properties": {
        "slug": {
          "title": "Slug",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        }
      },
      "required": [
        "slug",
        "name",
        "description"
      ],
      "title": "CategoryOutput",
      "type": "object"
    }
  },
  "title": "CategoriesOutput"
}
🟢community_board_help

Use this when the user just says 'Community Board' or 'community-board', asks what this app can do, or asks for help or examples ('מה אפשר לעשות כאן?', 'עזרה'). Returns a summary, supported capabilities, the live category list, example requests in Hebrew and English, current limitations and search tips.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "community_board_helpArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "title": "Summary",
      "type": "string"
    },
    "capabilities": {
      "items": {
        "type": "string"
      },
      "title": "Capabilities",
      "type": "array"
    },
    "categories": {
      "items": {
        "$ref": "#/$defs/CategoryOutput"
      },
      "title": "Categories",
      "type": "array"
    },
    "examples": {
      "items": {
        "type": "string"
      },
      "title": "Examples",
      "type": "array"
    },
    "limitations": {
      "items": {
        "type": "string"
      },
      "title": "Limitations",
      "type": "array"
    },
    "tips": {
      "items": {
        "type": "string"
      },
      "title": "Tips",
      "type": "array"
    }
  },
  "required": [
    "summary",
    "capabilities",
    "categories",
    "examples",
    "limitations",
    "tips"
  ],
  "$defs": {
    "CategoryOutput": {
      "properties": {
        "slug": {
          "title": "Slug",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        }
      },
      "required": [
        "slug",
        "name",
        "description"
      ],
      "title": "CategoryOutput",
      "type": "object"
    }
  },
  "title": "HelpOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools