Skip to content

Add get_version_info tool — fleet identity attestation (v0.2.1)#1

Merged
KI7MT merged 2 commits into
mainfrom
feature/get-version-info
May 15, 2026
Merged

Add get_version_info tool — fleet identity attestation (v0.2.1)#1
KI7MT merged 2 commits into
mainfrom
feature/get-version-info

Conversation

@KI7MT
Copy link
Copy Markdown
Member

@KI7MT KI7MT commented May 15, 2026

Summary

Implements the fleet rollout per IONIS-AI/ionis-devel#49. solar-mcp is the exemplar — same diff shape fans out to the other 9 public servers next.

The new tool returns a standardized envelope:

{
  "service_name":    "solar-mcp",
  "service_version": "0.2.1",
  "spec_version":    "noaa-swpc-v1"
}

This is the minimum-viable identity attestation at the tool layer — agents can now confirm fleet alignment with a single call per server, without going outside the MCP protocol.

Why

Surfaced 2026-05-15 when Patton hit divergent values from solar:solar_conditions between Newton (9975WX) and Claude Desktop (M3). With no in-protocol way to ask "what version are you?", agents can't attribute divergence to version drift vs live-data timing vs config delta. get_version_info closes that gap fleet-wide.

Changes

  • src/solar_mcp/__init__.py — add __spec_version__ Final constant, modernize to mirror the adif-mcp pattern
  • src/solar_mcp/server.py — add get_version_info tool + _version_info_payload helper for direct test access without FastMCP wrapping
  • tests/test_tools.pyTestGetVersionInfo class with 5 unit tests (SOLAR-L2-041 .. SOLAR-L2-045)
  • README.md — tool added to the tools table
  • CHANGELOG.md — new file, Keep a Changelog format
  • pyproject.toml — version bump 0.2.0 → 0.2.1

Test plan

  • L2 unit: 42 tests pass locally (pytest tests/test_tools.py)
  • Security: 6 tests pass locally (pytest tests/test_security.py)
  • CI matrix green
  • Patton review (pattern lock before fan-out)

Convention reference

Locks the pattern for the remaining 9 public MCPs:

  • pota, wspr, ionis, sota, iota, eqsl, qrz, lotw, hamqth

Plus inbox-mcp (private) and n1mm-mcp.

KI7MT and others added 2 commits May 15, 2026 16:06
Implements the fleet rollout per IONIS-AI/ionis-devel#49. solar-mcp is
the exemplar; same diff shape fans out to the other 9 public servers.

The new tool returns a standardized envelope:

    {
      "service_name":    "solar-mcp",
      "service_version": "0.2.1",
      "spec_version":    "noaa-swpc-v1"
    }

This is the minimum-viable identity attestation at the tool layer —
agents can now confirm fleet alignment with a single call per server,
without going outside the MCP protocol.

Changes:
- src/solar_mcp/__init__.py — add __spec_version__ Final constant,
  modernize to match the adif-mcp pattern (Final types, explicit
  PackageNotFoundError handling)
- src/solar_mcp/server.py — add get_version_info tool + _version_info_payload
  helper for direct test access without FastMCP wrapping
- tests/test_tools.py — add TestGetVersionInfo class with 5 unit tests
  (SOLAR-L2-041 through SOLAR-L2-045)
- README.md — add tool to the tools table
- CHANGELOG.md — new file, follows Keep a Changelog format
- pyproject.toml — bump 0.2.0 → 0.2.1

Test count: 42 unit + 6 security = 48 tests, all green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes the CI gap noted on PR #1: solar-mcp previously had only
publish.yml (tag-triggered), so PRs landed without automated test
runs.

Workflow runs on PRs and pushes to main:
- Multi-Python matrix (3.10, 3.11, 3.12, 3.13)
- Unit tests (tests/test_tools.py — 42 tests)
- Security tests (tests/test_security.py — 6 tests)
- ci-all-green aggregator gates branch protection

Lint deferred — solar-mcp has no ruff/mypy config yet. If we want
to standardize that across the fleet, treat it as a separate
convention (fleet-wide pyproject.toml [tool.ruff] adoption).

Pattern locks for fan-out: same ci.yml shape lands on the other
9 public MCP servers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@KI7MT KI7MT merged commit 5d3bf84 into main May 15, 2026
5 checks passed
@KI7MT KI7MT deleted the feature/get-version-info branch May 15, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant