CougarMap

Find trail-camera spots for mountain lions from free public map data, ranked and explained.

OtherPythonv0.1.6

CougarMap

CougarMap finds where to put a trail camera for mountain lions (cougars). Give it a place and it reads the terrain from free public map data. It ranks camera spots you can walk to and explains why each one is good. The results come as a Google Earth map.

It works anywhere in the United States. It was built and tuned in the dry conifer mountains of the inland Northwest.

Quick start

1. Install. On a Mac or Linux, in a terminal:

curl -LsSf https://raw.githubusercontent.com/bryantclark/cougarmap/main/installer/install.sh | sh

On Windows, in PowerShell:

powershell -c "irm https://raw.githubusercontent.com/bryantclark/cougarmap/main/installer/install.ps1 | iex"

It installs uv (which brings its own Python) if you don't have it, installs CougarMap, and connects it to the AI apps it finds (step 3). Run it again any time to update. Then open a new terminal window so the cougarmap command is found.

  • Already have uv? uv tool install --python 3.12 cougarmap installs just the command.
  • No terminal? Download CougarMap-installer.zip from the latest release and double-click the installer in it.

2. Find camera spots around a coordinate. Give latitude and longitude the way Google Maps copies them. Optionally use the --radius-km flag to set a radius size.

cougarmap analyze --near "47.3712, -116.1029" --radius-km 3

The first run in a new place takes a few minutes, mostly downloading elevation and map data. Later runs take under a minute. When it finishes, it prints the best spots and a link to the map, and opens the map in Google Earth Pro (free).

To search a whole region around a town instead, use hotspots. It screens a 25 km circle and analyzes the most promising blocks:

cougarmap hotspots "Missoula, MT"

3. Use it from your AI assistant. The installer already connected CougarMap to the AI apps it found on your computer: Claude, Codex, Gemini CLI, Antigravity or Cursor. Restart the app, then ask "find me cougar camera spots near Missoula, MT". If you installed with uv tool install, or added an app later, run:

cougarmap setup

What you get

For each spot:

  • a score from 0 to 100 (60 or more is strong);
  • the reasons in plain English, for example "downwind end of a meadow edge, where cold air draining down the valley meets the prevailing wind";
  • the walk from the nearest road that is open that month, with distance and time;
  • the land it sits on (national forest, state land and so on), and its coordinates.

The Google Earth map has the ranked pins (click one for its reasons), walking routes, dawn and dusk air-flow arrows, saddles, and a layer for each factor you can switch on and off.

The ranked spots are on public land within 1 mile of walking from a road open that month. Private land is scored the same way and its best spots are found too, but kept apart: they're listed separately (P1, P2...) and sit in map layers that start switched off. Tick "Private land spots" in Google Earth to see them, for example to scan your own property, and get landowner permission before using one. --max-walk-miles and --month change the other defaults.

How it picks spots

CougarMap stacks four things lions use. The more of them at one spot, the better the spot:

  1. Wind. Lions hunt into the wind at dawn and dusk. The best ground is where cold air draining down a valley flows the same way as the prevailing wind on high-pressure days.
  2. Edges. Timber cover next to a meadow, clearcut or burn, where a lion can watch prey in the open. The most downwind end of an opening is best.
  3. Pinch points. Saddles, the base of cliffs, stream banks and natural funnels where travel concentrates.
  4. Limited water. Springs, seeps, seasonal water and small ponds. Water counts most when it is the only water for a mile.

It also favors natural travel lines such as drainage bottoms and ridge crossings. In winter it adds low, sun-facing ground with shallow snow, where deer spend the winter. It avoids paved roads, towns, trailheads and campgrounds. docs/HOW_IT_WORKS.md has the details.

What it can't see: the wind is modeled from weather history, not measured on the ground. Prey isn't modeled. Small springs and seeps are often missing from maps. If you know of water the maps miss, pin it in Google Earth and import the file (cougarmap import-kml my-pins.kml): your pins count as water. Some parks and state land restrict trail cameras, so check with whoever manages the land.

Testing it against real lions

The map is only as good as what it catches. CougarMap keeps a field log of cameras, camera checks, snow tracks and road surveys. cougarmap validate <area> tests the map against what you logged, with honest sample sizes. docs/FIELD_PROTOCOL.md explains what to record in plain language.

Privacy

Everything runs on your computer. CougarMap only downloads public map data (USGS, the Forest Service, OpenStreetMap, weather and snow data). Your Google Earth files, camera locations and field log stay in ~/Documents/CougarMap/my-data (set COUGARMAP_HOME to move it) and are never uploaded.

More

License

MIT; see LICENSE. Data downloaded at run time keeps its own terms (OpenStreetMap is ODbL; the Olympic Cougar Project GPS data used only by the validation check is CC BY-NC 4.0).

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx cougarmap

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-bryantclark-cougarmap": {
      "command": "uvx",
      "args": [
        "cougarmap"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

cougarmappypi

Compatible MCP Clients

CougarMap works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More