Atmospore
Officialatmospore-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 |
| "What's the pollen forecast in Oslo this week?" |
| "What pollen is highest in Bergen right now?" |
| "Is tree or grass pollen worse in London this week?" |
| "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-mcpSetup in Claude Desktop
Get a free Atmospore API key at atmospore.com/account (100 calls/day, no credit card required).
Edit your Claude Desktop config:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
Add Atmospore as an MCP server:
{
"mcpServers": {
"atmospore": {
"command": "atmospore-mcp",
"env": {
"ATMOSPORE_API_KEY": "ak_your_key_here"
}
}
}
}Restart Claude Desktop.
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 stdioRelated
atmospore — the underlying Python client this server wraps.
atmospore.com — the hosted forecast and developer dashboard.
License
MIT.
Available Tools
4 toolsget_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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| radius_km | No | ||
| forecast_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| forecast_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
get_area_average - First observed
get_pollen - First observed
get_top_species - First observed
list_supported_species
TDQS
Each tool targets a distinct aspect: area aggregates, point forecasts, top species, and species listing. No overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case (get_area_average, get_pollen, get_top_species, list_supported_species).
Four tools is well-scoped for a pollen data server, covering the core operations without being excessive or minimal.
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
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
Weather, climate, terrain, fire and flood risk data for any point or polygon on Earth. Free tier.
Free, keyless real-time air quality (US AQI plus PM2.5, PM10, ozone, NO2, SO2, CO) for any city.
Weather data, forecast API, climate data, historical weather, alerts, agricultural & travel weather.
Live stargazing forecasts: per-night sky scores, dark-sky sites, aurora & light pollution anywhere.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceWeather forecast server which returns 7 days of detailed weather anywhere in the world, using the OpenWeatherMap One Call API 3.0.10MIT
- AlicenseNot gradedqualityFmaintenanceProvides weather and climate intelligence for AI agents, including current conditions, forecasts, historical data, severe-weather alerts, agricultural outlook, and travel conditions via free and paid tools.MIT
- FlicenseAqualityDmaintenanceProvides real-time pollen level alerts and hayfever mitigation tips using the Ambee API.2-
- AlicenseNot gradedqualityDmaintenanceProvides real-time weather data and multi-day forecasts for any location worldwide.56MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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