Ambee MCP

Community Maps, travel and weather

Live air quality, pollen and weather data from Ambee.

What can you do with Ambee MCP?

  • lat + lng (numbers), or
  • place (free text, e.g. "Bengaluru")
  • locale (boolean) — adds a localTime field to each record.
  • aqiStandard (air quality only) — EPA (default), IN, UK, CN, or CA.
  • units (weather only) — imperial (default), metric, or si.
  • speciesRisk (pollen only) — include per-species risk levels where the region supports it.

Install

The installation steps are in the documentation below. Documentation

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Ambee MCP Server
  2. Table of contents
  3. Tools
  4. Error handling
  5. Requirements
  6. Install
  7. Configure
  8. Run standalone
  9. Connect a client
  10. Example prompts
  11. Support
  12. Contributing
  13. Notes
  14. License

Ambee MCP Server

The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more — direct access to live air quality, pollen, and weather data.

Point your assistant at this server and it can answer questions like "Is it a bad tree pollen day in Atlanta?" or "Should we move the Saturday offsite indoors?" by calling Ambee's data directly, instead of guessing from stale training data.

Looking for a ready to access server? Try our host Ambee MCP

Table of contents

Tools

Six tools — latest conditions and a 48-hour forecast for each of the three datasets:

ToolEndpointReturns
air_quality_latestGET /v3/aq/latestAQI + CO/NO2/O3/PM10/PM2.5/SO2, dominant pollutant, category. 1 record.
air_quality_forecastGET /v3/aq/forecast/48hrsSame fields, hourly. Up to 48 records.
weather_latestGET /v3/weather/latestTemperature, apparent temp, humidity, dew point, pressure, cloud cover, precipitation, wind, UV index, ozone, visibility, summary. 1 record.
weather_forecastGET /v3/weather/forecast/48hrsSame fields, hourly. Up to 48 records.
pollen_latestGET /v3/pollen/latestTree/grass/weed counts + risk levels, optional per-species breakdown. 1 record.
pollen_forecastGET /v3/pollen/forecast/48hrsSame fields, hourly. Up to 48 records.

Every tool accepts either:

  • lat + lng (numbers), or
  • place (free text, e.g. "Bengaluru")

Sending both, or neither, is rejected client-side before any request is made. All /v3 endpoints accept place natively, so no separate geocoding step is needed.

Optional parameters:

  • locale (boolean) — adds a localTime field to each record.
  • aqiStandard (air quality only) — EPA (default), IN, UK, CN, or CA.
  • units (weather only) — imperial (default), metric, or si.
  • speciesRisk (pollen only) — include per-species risk levels where the region supports it.

Error handling

Every response is checked against Ambee's documented status codes:

CodeMeaningHow this server handles it
200OKReturned as normal tool output.
206Partial data (quota ran out mid-response)Returned as usable data, with a warning field explaining it's trimmed.
400Bad requestReturned as a tool error explaining likely cause (missing/invalid params).
401UnauthorizedReturned as a tool error — check AMBEE_API_KEY.
403ForbiddenReturned as a tool error — key lacks permission for this endpoint.
404Not foundReturned as a tool error — no data for that location.
422Quota exceededReturned as a tool error — plan quota hit.
429Rate limitedReturned as a tool error — back off and retry.
500Internal server errorReturned as a tool error — retry later.
299DeprecatedReturned as a tool error — endpoint/feature not supported.

Every non-2xx response comes back as an MCP tool error (isError: true) with a human-readable message combining Ambee's own error text and a short hint on what to do next, so the calling assistant can explain the failure instead of just surfacing a raw status code.

Requirements

Install

git clone https://github.com/getambee/ambee-mcp-server.git
cd ambee-mcp-server
npm install

Configure

export AMBEE_API_KEY="your-ambee-api-key"

Never commit your key or put it in a config file that goes into version control. See SECURITY.md for more on handling credentials safely.

Run standalone

npm start

You should see [ambee-mcp-server] running on stdio on stderr. The process communicates over stdio and will wait for MCP messages — that's expected.

Connect a client

The server speaks standard MCP over stdio, so it works with any compliant client. The command and environment variable are the same everywhere — only the config file format changes.

Claude Code
claude mcp add --transport stdio ambee \
  -- node /absolute/path/to/ambee-mcp-server/src/index.js \
  --env AMBEE_API_KEY=your-ambee-api-key

claude mcp list   # confirm it shows as connected
Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ambee": {
      "command": "node",
      "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
      "env": {
        "AMBEE_API_KEY": "your-ambee-api-key"
      }
    }
  }
}
Cursor

Add to ~/.cursor/mcp.json (or the project-level .cursor/mcp.json):

{
  "mcpServers": {
    "ambee": {
      "command": "node",
      "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
      "env": {
        "AMBEE_API_KEY": "your-ambee-api-key"
      }
    }
  }
}
VS Code (GitHub Copilot / MCP extension)

Add to .vscode/mcp.json:

{
  "servers": {
    "ambee": {
      "command": "node",
      "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
      "env": {
        "AMBEE_API_KEY": "your-ambee-api-key"
      }
    }
  }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "ambee": {
      "command": "node",
      "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
      "env": {
        "AMBEE_API_KEY": "your-ambee-api-key"
      }
    }
  }
}
Cline (VS Code extension)

Open Cline's MCP settings panel and add a new server with:

  • Command: node
  • Args: /absolute/path/to/ambee-mcp-server/src/index.js
  • Environment variable: AMBEE_API_KEY=your-ambee-api-key

Or edit cline_mcp_settings.json directly using the same command / args / env shape as the examples above.

Zed

Add to Zed's settings.json under context_servers:

{
  "context_servers": {
    "ambee": {
      "command": {
        "path": "node",
        "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
        "env": {
          "AMBEE_API_KEY": "your-ambee-api-key"
        }
      }
    }
  }
}
Ollama

Ollama's native app doesn't speak MCP directly yet, but any Ollama model can call this server through an MCP-aware bridge or agent framework, since Ollama exposes an OpenAI-compatible API that MCP client libraries (such as mcp-use or LangChain's MCP adapters) can route tool calls through. A minimal example using mcp-use with a local Ollama model:

from mcp_use import MCPAgent, MCPClient
from langchain_ollama import ChatOllama

client = MCPClient.from_dict({
    "mcpServers": {
        "ambee": {
            "command": "node",
            "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
            "env": {"AMBEE_API_KEY": "your-ambee-api-key"},
        }
    }
})

llm = ChatOllama(model="llama3.1")
agent = MCPAgent(llm=llm, client=client)

result = agent.run("What's the air quality in Bengaluru right now?")
print(result)
ChatGPT (developer mode / custom connectors)

ChatGPT's MCP connector support (developer mode, Team/Enterprise workspaces) expects a remote HTTP server rather than a local stdio process. To expose this server that way, run it behind an MCP-to-HTTP gateway (e.g. mcp-remote or a small reverse proxy) and register the resulting URL as a custom connector in ChatGPT's settings.

Any other MCP client

Every MCP client ultimately needs the same three things — a command, args, and an env block:

{
  "command": "node",
  "args": ["/absolute/path/to/ambee-mcp-server/src/index.js"],
  "env": {
    "AMBEE_API_KEY": "your-ambee-api-key"
  }
}

Consult your client's docs for where this config block goes.

Example prompts

  • "How bad is the air in Los Angeles right now?"
  • "When is PM2.5 lowest tomorrow so I can run outside?"
  • "My kid has a grass allergy — is Saturday morning in Austin going to be rough for her?"
  • "What's the UV index at 90210 right now, in metric units?"
  • "Compare air quality between our Bengaluru and Austin offices."

Support

Contributing

Contributions are welcome — see CONTRIBUTING.md for how to propose changes, our code style, and the PR process.

Notes

  • All tools are read-only; nothing here can modify your Ambee account or data.
  • MCP calls draw from the same Ambee API quota/rate limits as REST calls.
  • Only "latest" and "48-hour forecast" are exposed today. Ambee's /v3 API also supports historical data and 120-hour forecasts — see open issues or open a feature request.

License

MIT

Frequently asked questions

What is Ambee MCP?

Live air quality, pollen and weather data from Ambee.

How do I install Ambee MCP?

Follow the installation steps in its documentation, shown on this page and in its repository.

Is Ambee MCP open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Ambee MCP?

It is published by ambeelabs. AI.tn lists it but does not maintain or endorse it.

From the community awesome-mcp-servers lists and the project's GitHub repository. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.