Skip to main content
Glama
atmospore

Atmospore

Official
by atmospore

atmospore-mcp

Atmospore 的 MCP 服务器。 允许 Claude(以及其他支持 MCP 的 AI 助手)回答关于全球任意地点花粉预报的问题。

功能介绍

为 Claude 添加了四个工具:

工具

用途

get_pollen(lat, lon, forecast_days)

“奥斯陆这周的花粉预报如何?”

get_top_species(lat, lon, limit)

“卑尔根现在哪种花粉浓度最高?”

get_area_average(lat, lon, radius_km, forecast_days)

“伦敦这周是树木花粉还是草类花粉更严重?”

list_supported_species()

“你们涵盖哪些物种?”

以及一个资源:

  • atmospore://help — 可在 Claude Desktop 中浏览的使用说明

坐标适用于全球任何地点 — 该模型具有约 28 公里分辨率的全球覆盖范围。

Related MCP server: pollen-alert-mcp

安装

pip install atmospore-mcp

在 Claude Desktop 中设置

  1. 在 atmospore.com/account 获取免费的 Atmospore API 密钥 (每天 100 次调用,无需信用卡)。

  2. 编辑您的 Claude Desktop 配置文件:

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

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

  3. 将 Atmospore 添加为 MCP 服务器:

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

  2. 询问 Claude:“奥斯陆今天的花粉情况如何?” — 它将调用该工具并向您报告。

提示词示例

  • “奥斯陆这周的花粉预报如何?”

  • “斯德哥尔摩现在是树木花粉还是草类花粉更严重?”

  • “我对桦树过敏 — 卑尔根的桦树花粉什么时候达到高峰?”

  • “比较一下伦敦和哥本哈根今天的花粉水平。”

配额

每次工具调用都会访问 Atmospore API 并计入您密钥的每日配额。免费层级(每天 100 次调用)涵盖日常使用 — 典型的 Claude 对话会触发 1-5 次工具调用。重度用户(每天约 5 次以上花粉对话)建议选择付费计划。

当您达到配额时,工具将返回一个结构化的 quota_exceeded 响应,Claude 将用通俗的语言告诉您:“您已达到 Atmospore 每日限额。请在 atmospore.com/plans 升级。”

本地开发

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 — 本服务器所封装的底层 Python 客户端。

  • atmospore.com — 托管的预报和开发者仪表板。

许可证

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.

  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

Scored across 4 tools

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
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers