tan-en-yao's picture
docs: rename demo video link
1f42055
|
Raw
History Blame Contribute Delete
8.23 kB

A newer version of the Gradio SDK is available: 6.28.0

Upgrade
metadata
title: FixMyNeighborhood MCP Server
emoji: πŸ™οΈ
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 6.0.0
app_file: app.py
pinned: false
tags:
  - building-mcp-track-enterprise
  - building-mcp-track-consumer
  - building-mcp-track-customer
  - building-mcp-track-creative
  - mcp-server
  - tools

FixMyNeighborhood MCP Server

MCP 1st Birthday Hackathon Hugging Face Spaces Gradio MCP License: MIT

An MCP (Model Context Protocol) tool server providing NYC infrastructure data for AI agents. Built for the MCP 1st Birthday Hackathon.

Demo

Watch Demo Video

Social Media

X Post

MCP Endpoints

Transport URL
SSE https://mcp-1st-birthday-fixmyneighborhood-mcp-server.hf.space/gradio_api/mcp/sse
HTTP https://mcp-1st-birthday-fixmyneighborhood-mcp-server.hf.space/gradio_api/mcp/

Available Tools

Tool Description Parameters
geo_search_address Reverse geocode lat/lon to NYC address (real data via Photon API) lat, lon
validate_address Validate NYC address and detect borough (real data via Photon API) address
cityinfra_lookup_asset Look up city infrastructure records (real data via NYC Open Data) address, asset_type
get_nearby_reports Find similar 311 reports nearby (real data via NYC 311 Open Data) address, issue_type, radius_blocks
weather_get_current Get current weather + hazard assessment (real data via Weather.gov) lat, lon
get_department_info Get NYC department contact info and SLA targets (real data via NYC 311 SLA) department_code
pdf_generate_report Generate real PDF report (via ReportLab) issue_type, address, urgency, description
sendgrid_send_email Send email via Resend API (test mode - routes to test sink) to, subject, body, api_key, from_email, report_id

Use with Claude Desktop

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fixmyneighborhood": {
      "url": "https://mcp-1st-birthday-fixmyneighborhood-mcp-server.hf.space/gradio_api/mcp/sse"
    }
  }
}

Restart Claude Desktop. Then try:

"There's a pothole at coordinates 40.7580, -73.9855. Can you look up the address and find out which department handles road issues?"

Use with MCP Inspector

Test the server with the official MCP Inspector:

npx @anthropic-ai/mcp-inspector https://mcp-1st-birthday-fixmyneighborhood-mcp-server.hf.space/gradio_api/mcp/sse

Use with FixMyNeighborhood App

This MCP server powers the FixMyNeighborhood App, a full AI agent application for reporting city infrastructure issues.

Local Development

# Clone the repo
git clone https://huggingface.co/spaces/MCP-1st-Birthday/fixmyneighborhood-mcp-server

# Install dependencies
pip install -r requirements.txt

# Run with MCP enabled
python app.py

Local MCP endpoint: http://localhost:7860/gradio_api/mcp/sse

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Gradio MCP Server (8 Tools)                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ geo_search      β”‚  β”‚ validate        β”‚  β”‚ cityinfra       β”‚   β”‚
β”‚  β”‚ _address 🌐     β”‚  β”‚ _address 🌐     β”‚  β”‚ _lookup_asset🌐 β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ get_nearby      β”‚  β”‚ weather_get     β”‚  β”‚ get_department  β”‚   β”‚
β”‚  β”‚ _reports 🌐     β”‚  β”‚ _current 🌐     β”‚  β”‚ _info 🌐        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚  β”‚ pdf_generate    β”‚  β”‚ sendgrid        β”‚   🌐 = Real API       β”‚
β”‚  β”‚ _report 🌐      β”‚  β”‚ _send_email 🌐  β”‚                        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                   /gradio_api/mcp/sse (SSE)                      β”‚
β”‚                   /gradio_api/mcp/ (HTTP)                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚                    β”‚                  β”‚
              β–Ό                    β–Ό                  β–Ό
        Claude Desktop      MCP Inspector      FixMyNeighborhood App

Real API Integrations

Tool API Source Free Tier
geo_search_address Photon API (OpenStreetMap) Unlimited (500ms rate limit)
validate_address Photon API (OpenStreetMap) Unlimited (500ms rate limit)
cityinfra_lookup_asset NYC Open Data (DOT Pothole Work Orders) Unlimited
get_nearby_reports NYC 311 Open Data Unlimited
weather_get_current Weather.gov (NOAA) Unlimited
get_department_info NYC 311 SLA Data Unlimited
pdf_generate_report ReportLab (local generation) N/A
sendgrid_send_email Resend API (test sink: delivered@resend.dev) Safe demo mode

Complete Report Flow

The server supports a production-ready flow with safety guardrails:

1. pdf_generate_report()  β†’  Creates PDF, returns report_id (e.g., "FMN-20251127050500")
2. sendgrid_send_email(report_id="FMN-20251127050500")  β†’  Attaches PDF to email
                                                        β†’  Routes to test sink (delivered@resend.dev)

Safety Features:

  • All emails route to delivered@resend.dev (Resend test sink)
  • From address uses onboarding@resend.dev (no domain verification needed)
  • Real Resend API is exercised, but no emails reach municipal inboxes

Hackathon Track

Track 1: Building MCP - This server demonstrates how to build MCP tools with Gradio that can be used by any MCP-compatible client (Claude Desktop, AI agents, etc.).