Skip to main content
Glama
atmospore

Atmospore

Official
by atmospore

atmospore-mcp

MCP server for Atmospore. Lets Claude (and other AI assistants supporting MCP) answer questions about pollen forecasts at any point on Earth.

What it does

Adds four tools to Claude:

Tool

Use it for

get_pollen(lat, lon, forecast_days)

"What's the pollen forecast in Oslo this week?"

get_top_species(lat, lon, limit)

"What pollen is highest in Bergen right now?"

get_area_average(lat, lon, radius_km, forecast_days)

"Is tree or grass pollen worse in London this week?"

list_supported_species()

"What species do you cover?"

And one resource:

  • atmospore://help — usage notes browsable from Claude Desktop

Coordinates work anywhere on the planet — the model has global coverage at ~28 km resolution.

Related MCP server: Weather & Climate Intelligence MCP

Install

pip install atmospore-mcp

Setup in Claude Desktop

  1. Get a free Atmospore API key at atmospore.com/account (100 calls/day, no credit card required).

  2. Edit your Claude Desktop config:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%/Claude/claude_desktop_config.json

  3. Add Atmospore as an MCP server:

{
  "mcpServers": {
    "atmospore": {
      "command": "atmospore-mcp",
      "env": {
        "ATMOSPORE_API_KEY": "ak_your_key_here"
      }
    }
  }
}
  1. Restart Claude Desktop.

  2. Ask Claude: "what's the pollen in Oslo today?" — it'll call the tool and report back.

Example prompts

  • "What's the pollen forecast for Oslo this week?"

  • "Is tree or grass pollen worse in Stockholm right now?"

  • "I'm allergic to birch — when is birch pollen peaking in Bergen?"

  • "Compare pollen levels in London and Copenhagen today."

Quotas

Each tool call hits the Atmospore API and counts against your key's daily quota. The free tier (100 calls/day) covers casual use — typical Claude conversations fire 1–5 tool calls. Heavy users (~5+ pollen conversations/day) will want the paid plan.

When you hit the quota the tool returns a structured quota_exceeded response and Claude will tell you in plain language: "You've hit your Atmospore daily limit. Upgrade at atmospore.com/plans."

Develop locally

git clone https://github.com/atmospore/atmospore-mcp
cd atmospore-mcp
pip install -e ".[test]"
pytest
ATMOSPORE_API_KEY=ak_... atmospore-mcp  # runs the server on stdio
  • atmospore — the underlying Python client this server wraps.

  • atmospore.com — the hosted forecast and developer dashboard.

License

MIT.

Available Tools

4 tools
get_area_averageA

Get tree, grass, and weed pollen aggregates over a radius around a point.

Use this for higher-level questions like "is tree or grass pollen worse this week?" or "is pollen rising over the next few days in Stockholm?". Returns one entry per day with overall_risk and per-category aggregates (tree_tot, grass_tot, weed_tot).

radius_km (default 25) controls the area. forecast_days (default 7) sets the horizon.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
radius_kmNo
forecast_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description lacks behavioral traits such as idempotency, side effects, or authentication needs. It only explains output structure and parameter defaults, which is minimal for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, and every sentence adds value. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists (not shown) but description explains return structure adequately. Parameter coverage is sufficient for operation, though lacks error or behavior details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but description adds meaning by explaining radius_km controls the area and forecast_days sets the horizon. However, lat and lon are not explicitly described, though implied by context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Get' and resource 'pollen aggregates over a radius' and distinguishes from siblings by framing it for higher-level questions, clearly indicating its focus on area aggregates over time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly states when to use the tool with examples ('is tree or grass pollen worse this week?') and implies it is for area-based queries rather than point-specific data, but does not directly mention when not to use or compare to siblings like get_pollen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pollenB

Get the daily pollen forecast for a specific point on Earth.

Use this for questions like "what's the pollen in Oslo?" or "is the pollen bad in Bergen tomorrow?".

Returns a list of daily forecasts. Each day includes:

  • date (YYYY-MM-DD)

  • overall_risk: "Low" | "Moderate" | "High" | "Very High"

  • species: per-species values in grains/m³ with individual risk levels

If the user asks about a city by name, look up its coordinates first (or use the get_area_average tool with rough coords if you only know the city).

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
forecast_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions return structure (date, overall_risk, species) but does not disclose rate limits, auth requirements, or side effects. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points and examples. Front-loads purpose. Some minor redundancy, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers return format and usage hints. With output schema, return details are helpful but not essential. Lacks coordinate format, forecast_days limits, or error handling. Adequate for simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description does not explain lat, lon, or forecast_days beyond mentioning coordinates. No format or range information, adding minimal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves daily pollen forecast for a point on Earth. Distinguishes from sibling get_area_average by implying point-specific vs area, though not explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides example questions and guidance on when to use this tool vs get_area_average for city names. Lacks explicit when-not-to-use, but context is good.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_speciesA

Get the top contributing pollen species at a specific point today.

Use this to answer "what pollen is highest in Oslo right now?" or "which trees are blooming in Bergen?". Returns a ranked list (highest first). Each species includes:

  • species (slug, e.g. 'birch')

  • display_name (human-readable, e.g. 'Birch')

  • max_value in grains/m³

  • risk_level

  • category ('tree' | 'grass' | 'weed')

limit (default 5) caps the list length.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output structure (species, display_name, max_value, risk_level, category) and time specificity (today). However, it lacks explicit mention of being read-only or non-destructive, though the read nature is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a lead sentence stating the purpose, followed by a short list of output fields and one additional note about the limit parameter. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description adequately explains the return values and default behavior. It could be improved by noting timezone or edge cases (e.g., no data), but is sufficient for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the limit parameter's default and function, but provides no additional meaning for lat/lon beyond their names. This partially adds value but leaves a gap for the required coordinates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the top contributing pollen species at a specific point today,' specifying a verb, resource, location, and time. This distinguishes it from sibling tools like get_area_average (averages) and get_pollen (all species).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete usage examples ('what pollen is highest in Oslo right now?') and states it returns a ranked list. While it doesn't explicitly say when not to use, the context of sibling tools implies alternatives for different queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_supported_speciesA

List all pollen species the model tracks, with metadata.

Use this if the user asks "what species do you cover?" or to validate a species name before using it in another tool. Returns slug, display name, category (tree/grass/weed), localised display names (en, no, sv), and concentration thresholds for the risk levels.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It details the return fields (slug, display name, category, localized names, concentration thresholds), but doesn't mention any potential side effects or performance characteristics. Adequate for a read-only list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action, each sentence adds value. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and an output schema present, the description fully explains the tool's purpose and return data. It also provides usage context, making it complete for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Baseline 4 applies as the description does not need to add parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all pollen species the model tracks', with a specific verb and resource. It distinguishes itself from siblings like get_pollen and get_area_average by focusing on the supported species list with metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit scenarios: 'Use this if the user asks "what species do you cover?" or to validate a species name before using it in another tool.' No mentions of when not to use, but for a list tool, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedget_area_average
    • First observedget_pollen
    • First observedget_top_species
    • First observedlist_supported_species

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct aspect: area aggregates, point forecasts, top species, and species listing. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (get_area_average, get_pollen, get_top_species, list_supported_species).

Tool Count5/5

Four tools is well-scoped for a pollen data server, covering the core operations without being excessive or minimal.

Completeness4/5

The tools cover querying forecasts by point or area, top species, and species metadata. Minor gaps like historical data or multi-point queries are absent but acceptable for the domain.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atmospore/atmospore-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server