Skip to main content

title: Oculon - Delhi Hotspots ML Explorer & MCP Server emoji: 👁️ colorFrom: blue colorTo: red sdk: gradio sdk_version: 5.20.0 app_file: app.py pinned: false license: mit short_description: Delhi hotspot forecasting via MCP & Gradio

👁️ Oculon: Delhi Hotspots ML Explorer & MCP Server

An interactive, multi-dataset spatial-temporal hotspot forecasting service and Model Context Protocol (MCP) server for Delhi crime and public safety data, hosted on Hugging Face Spaces at AbhyudayMishr/Oculon.

Gradio MCP Ready FastAPI Privacy Compliant


🌟 Features

  1. 4 Monitored Datasets with Independent Timelines:

    • 🔵 Missing Persons: Police station proxy coordinates.
    • 🟣 Unidentified Dead Bodies: Police station proxy coordinates.
    • 🔴 Stolen Vehicles: Approximate postal PIN centroids & nearest Metro station units.
    • 🟡 Missing Mobiles: Non-spatial temporal trends (no physical coordinates in source).
  2. Interactive Map Explorer with Direct Browser Opening:

    • Explore historical observations, predictions, and upcoming month forecasts.
    • Includes full-featured SVG layers: administrative boundaries, metro lines, railway lines, and primary road networks.
    • Dedicated action button: 🚀 Open Map in Fullscreen Browser Tab to view maps without iframe constraints.
  3. Dual Rigorous Benchmark Evaluation:

    • Baseline 80/20 Random Holdout: Historical holdout F1 and symmetric miss distance.
    • Strict Forward-Time (Expanding-Window Rolling Origin): Reserves the latest 20% of complete calendar months, scoring each target month using only strictly prior events. Evaluates Multiclass Log Loss, Brier score sum, and Wasserstein $W_1$ distance.
  4. Model Context Protocol (MCP) Server:

    • Connect LLM agents (Claude Desktop, Cursor, Antigravity, custom agents) over standard MCP SSE (/sse and /messages).
    • Query hotspots, fetch model metrics, and retrieve browser-openable map links directly into agent conversations.

🚀 How to Run Guide

Method 1: Instant Cloud Access (No Setup Required)


You can install oculon directly into any Python environment via pip:

pip install git+https://github.com/abhyudaymishr/bob-ai-hackathon-oculon.git

Or for editable development:

git clone https://github.com/abhyudaymishr/bob-ai-hackathon-oculon.git
cd bob-ai-hackathon-oculon
pip install -e .

CLI Commands Available Out of the Box:

  • oculon / oculon-mcp: Run the stdio Model Context Protocol (MCP) server directly (for Claude Desktop, Cursor, Antigravity, BoB, etc.):
    oculon
    
    (or python -m oculon)
  • oculon-app: Launch the local Gradio + FastAPI interactive web dashboard and map server:
    oculon-app
    

Programmatic Python Usage:

import oculon

# Query top hotspots for a dataset and month
hotspots = oculon.query_hotspots("missing_persons", "2026-04", top_k=5)
print(hotspots)

# Retrieve interactive map info
map_info = oculon.get_hotspot_map("all_datasets")
print(map_info["url"])

# Get evaluation metrics
metrics = oculon.get_model_metrics("missing_persons")
print(metrics)

Method 3: Run from Source

  1. Clone the Repository:

    git clone https://github.com/abhyudaymishr/bob-ai-hackathon-oculon.git
    cd bob-ai-hackathon-oculon
    
  2. Create and Activate a Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install Dependencies:

    pip install -r requirements.txt
    
  4. Start the Application:

    python app.py
    
    • Gradio Dashboard: http://localhost:7860
    • Interactive Maps: http://localhost:7860/maps/four_dataset_hotspot_explorer.html
    • REST API: http://localhost:7860/api/hotspots
    • Local MCP SSE Stream: http://localhost:7860/sse

Method 4: Standalone Stdio MCP Bridge (Auto-Opens Local Browser)

To connect Claude Desktop or Cursor to a local instance that actively launches your machine's default browser when a map is queried:

python3 -m oculon.mcp_server

🔌 Connecting via Model Context Protocol (MCP)

1. Claude Desktop (Remote SSE)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "oculon_delhi_hotspots": {
      "url": "https://abhyudaymishr-oculon.hf.space/sse"
    }
  }
}

2. Cursor

In Cursor Settings → Features → MCP Servers → Add New Server:

  • Name: oculon_delhi_hotspots
  • Type: SSE
  • URL: https://abhyudaymishr-oculon.hf.space/sse

🛠️ MCP Tools

Tool Parameters Description
query_hotspots dataset, month, query_text Query top forecasted hotspots with scores, coordinates, and direct map link.
get_hotspot_map map_type Returns browser-openable URL to the interactive map.
get_model_metrics dataset, evaluation_type Returns baseline 80/20 and rolling-origin validation metrics.
list_datasets_and_months (none) Lists available datasets, color representations, and forecast months.

🌐 Programmatic REST Endpoints

  • GET /maps/{map_name}.html: Direct raw static map view.
  • GET /api/hotspots?dataset=...&month=...: JSON hotspot forecasts.
  • GET /api/metrics: JSON model evaluation benchmarks.
  • GET /api/maps: Available map URLs.
  • GET /sse: Server-Sent Events stream for MCP clients.
  • POST /messages?session_id=...: JSON-RPC 2.0 message handler for MCP.

🛡️ Privacy Guarantees

  • No Raw Person-Level Records: All raw source CSVs containing names, phone numbers, or individual victim identifiers are strictly excluded.
  • Proxy Coordinates Only: Mapped points correspond to official police station coordinates, metro stations, or centroid postal codes, never private residential or incident addresses.
  • Aggregated Payloads: All served layers consist solely of statistical model probabilities, counts, and geographic reference geometries.

Metadata

Release files for oculon 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oculon 1.0.0
File Size Uploaded Provenance Actions
oculon-1.0.0.tar.gz 1.0 MB With provenance Details for oculon-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for oculon 1.0.0
File Interpreter ABI Platform Actions
oculon-1.0.0-py3-none-any.whl Python 3 none any Details for oculon-1.0.0-py3-none-any.whl

Total release size: 1.6 MB

Release files / oculon-1.0.0.tar.gz

Download URL oculon-1.0.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
e704be436a2e33612af848a6df031b091ea7b49337a77e442a70a6e3053a6718
BLAKE2b-256 checksum
How to use checksums
8ecc9e7b44ba51b6f7767d32cd42f9ece31ebc0ecf000c37ef026139eceb6b84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / oculon-1.0.0-py3-none-any.whl

Download URL oculon-1.0.0-py3-none-any.whl
Size 570.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd83ba1f29901c989346f9a5674da3a692d4c339229dd97cd4949c75dce72f8b
BLAKE2b-256 checksum
How to use checksums
49a1480871c65930bcb10d9a24a055acd9000bcafa13127fa884d30d35fe7134
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for oculon 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for oculon-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page