Skip to main content
Glama
iris-weather-mcp

iris-weather-mcp

by evarness-ai

iris-weather-mcp

The weather plugin's forecast tool as a standalone MCP server process, run through the harness's signed MCP bridge, with no import of iris_harness in the plugin process. This is the experiment of iris-harness#82: comparison data for the trust-ladder / isolation question, not a production proposal. The server itself is standalone; the comparison tests are built against iris_harness's stable tier where possible and record in docs/GAPS.md (GAP-M1) the places where they had to import non-stable modules (the MCP bridge and its signing package), because the stable tier offers no MCP surface.

  • src/iris_weather_mcp/: the server (official mcp SDK, stdio). Dependencies: mcp, httpx.

  • tests/: the comparison suite. It runs in a SECOND venv that holds the harness wheel and spawns the server with the first venv's interpreter. Fault fixtures are stdlib-only servers in tests/servers/; the upstream is a loopback stub.

  • docs/COMPARISON.md: in-process vs MCP, per graduation property, with evidence.

  • docs/GAPS.md: what the bridge and SDK could not do, as precise findings.

  • scripts/ci_local.sh: the local gate (two fresh venvs, lint, isolation proof, tests).

The in-process plugin (../iris-weather-plugin) is the control arm and is not modified.

Running the tests

iris-harness is not on a package index yet (iris-harness#108). scripts/ci_local.sh is the gate: it builds two throwaway venvs (the server's, with no harness; the test host's, with an iris-harness wheel built from the clone given by IRIS_HARNESS_CLONE, default ../iris-harness, or a prebuilt wheel in IRIS_WHEEL_DIR), lints, scans the server source, and runs the suite. The control arm (tests/test_compare.py) imports a sibling checkout of iris-weather-plugin at ../iris-weather-plugin; it is skipped, loudly, when that is absent. There is no hosted CI for this repository.

Related MCP server: weather-mcp

License and contributing

Apache-2.0, the same license as iris-harness (see LICENSE). Contributions follow CONTRIBUTING.md.

Available Tools

2 tools
weather_code_meaningA

Explain a WMO weather code in words. Args: {"code": int}.

Inputs: code (required). Returns: result

weather_forecastB

Get the daily weather forecast for a place from Open-Meteo. Args: location (str), days (int 1-16, default 3).

Inputs: location (required), days. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct purposes: one decodes a WMO weather code, while the other retrieves a daily forecast. There is no overlap or ambiguity in what each tool does.

    Naming Consistency4/5

    Both names use consistent snake_case with a shared `weather_` prefix, which makes them predictable. The pattern is noun-based rather than verb_noun (e.g., `weather_code_meaning` is a bit noun-heavy), so it is slightly less action-oriented than ideal, but still consistent.

    Tool Count3/5

    Two tools is on the thin side for a weather server; it covers forecast and code interpretation but lacks surface area for common weather queries. The count is borderline rather than clearly appropriate or excessive.

    Completeness3/5

    The surface covers daily forecasting and WMO code explanation, but missing current conditions, hourly data, historical weather, or alerts means common weather requests cannot be fulfilled. These are notable gaps for an agent expecting a general-purpose weather service.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides weather forecasts and active alerts for US locations using the National Weather Service API. It supports both local stdio and remote HTTP/SSE transport modes for flexible integration with MCP clients.
      104 npm
      GPL 3.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Exposes weather data from the free Open-Meteo API via decorator-driven MCP tools with Zod schemas, supporting stdio and HTTP transports.
      48 npm
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      An MCP server providing worldwide weather via the free Open-Meteo APIs (no API key needed). Runs fully self-contained in Docker as a streamable-HTTP MCP service.
      -