documentation/docs/mcp/neighborhood-mcp.md
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller'; import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
<YouTubeShortEmbed videoUrl="https://www.youtube.com/embed/qY2i83l6dCQ" />Order food from nearby restaurants — right from your goose chat. Sellers are currently US-based.
In this tutorial, you'll learn how to set up the Neighborhood extension and use it to discover nearby restaurants, browse menus, build a cart, and check out — all through natural conversation with goose.
:::tip
<Tabs groupId="interface">
<TabItem value="ui" label="goose Desktop" default>
Install Neighborhood extension
</TabItem>
<TabItem value="cli" label="goose CLI">
Use goose configure to add a Remote Extension (Streamable HTTP) with:
Endpoint URL
https://connect.squareup.com/v2/mcp/neighborhood
Neighborhood is most powerful when goose combines it with context from your day — your schedule, your goals, your dietary needs. Instead of just searching for food, you can ask goose to reason about what to eat based on what you're doing.
:::info LLM Anthropic's Claude 4 Opus was used for this example. :::
Ask goose to find lunch options nearby. You can include details like your location, dietary restrictions, and what you're up to — goose will factor it all in.
Prompt:
Use the neighborhood extension for this. I'm looking to get lunch today.
I'm at 375 W Broadway in New York. I'm playing tennis later tonight.
Could you suggest some options so I can play well?
Let me find some restaurants near you!
Here are some restaurants near 375 W Broadway in SoHo! For pre-game fuel,
I'd recommend these options:
Best picks for a light, gluten-free meal:
Ba'al Falafel (71 Sullivan St) - Mediterranean food with falafel, hummus,
and fresh veggies — great carbs and protein
Kale & Things - Perfect for a healthy, nutrient-dense meal with greens and
lean proteins for sustained energy without feeling heavy
Tips for eating before playing sport:
- Eat 2-3 hours before playing to allow digestion
- Focus on complex carbs + lean protein (avoid heavy, fatty foods)
- Stay hydrated - consider grabbing a drink from Steam & Sip or Drip Drop Café
Would you like me to pull up the menu for any of these restaurants?
goose uses the Neighborhood extension's interactive UI to display restaurant cards right in the chat — each showing the name, category, and address with a View menu button.
goose doesn't just list restaurants — it tailors its recommendations to your situation. Since you mentioned playing tennis later, goose suggests meals that are energizing but not too heavy, and even includes a pro tip on pre-match eating timing.
Click on any restaurant to view its menu.
Ask goose to open a specific restaurant's menu. The interactive MCP app renders a full browsable menu directly in the chat — complete with category tabs, food photos, prices, and descriptions.
Prompt:
I'd like to view the Ba'al Falafel menu.
Browse through all the available dishes — Sandwiches, Salads, Combo platters, Soups, Pastries, Sides, Drinks, and more. Ask goose to add anything that catches your eye to your cart.
Tell goose what you'd like to order and it will add items to your cart. goose even takes your dietary preferences into account when suggesting items.
Prompt:
Add a Beets Apple Salad, Lentil Soup, and a Ginger Lemonade to my cart.
Your cart is ready! From here, just click the Check out button — it takes you straight to the payment page powered by Cash App. Complete your payment, and all that's left is to go pick up your lunch. 🎉
Try combining Neighborhood with other goose extensions for even more useful workflows:
Watch a full walkthrough of the Neighborhood extension in action:
<iframe class="aspect-ratio" src="https://www.youtube.com/embed/DG1HUFsekyc" title="Neighborhood Extension" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen ></iframe>