Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,42 @@ jobs:

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

# ---------------------------------------------------------------------------
# Registry-publish — pushes server.json to the Official MCP Registry after
# PyPI publish succeeds, so discovery surfaces stay in sync with PyPI.
# Canonical template: https://github.com/qso-graph/.github/blob/main/TEMPLATES.md
# ---------------------------------------------------------------------------
registry-publish:
name: Publish to MCP Registry
needs: publish
runs-on: ubuntu-latest
permissions:
id-token: write # GitHub OIDC auth to the Registry
contents: read
steps:
- uses: actions/checkout@v5

- name: Install jq (server.json bump)
run: sudo apt-get update && sudo apt-get install -y jq

- name: Install mcp-publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
./mcp-publisher --help > /dev/null

- name: Bump server.json to tag version
run: |
TAG_VERSION="${GITHUB_REF_NAME#v}"
echo "Setting server.json to ${TAG_VERSION}"
jq --arg v "$TAG_VERSION" \
'.version = $v | .packages[0].version = $v' \
server.json > /tmp/server.json
mv /tmp/server.json server.json
cat server.json

- name: Authenticate to MCP Registry (GitHub OIDC)
run: ./mcp-publisher login github-oidc

- name: Publish to MCP Registry
run: ./mcp-publisher publish
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@ All notable changes to `solar-mcp` are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added (CI hygiene)

- **MCP Registry sync** — `publish.yml` now publishes to the
[Official MCP Registry](https://registry.modelcontextprotocol.io)
after each PyPI publish, using GitHub OIDC for auth. Triggered on
`v*` tag push; no manual steps. Pattern documented in
[qso-graph/.github/TEMPLATES.md](https://github.com/qso-graph/.github/blob/main/TEMPLATES.md).
- **Registry version badge** in README — PyPI and Registry versions
visible side-by-side so any drift between publishing surfaces is
immediately apparent.

### Known drift (will resolve on next tagged release)

- Pre-`0.2.1` versions show as **stale** in the Official MCP Registry
(last sync was at v0.1.1). Forward-only sync model: the next real
release of solar-mcp catches the Registry up. We don't tag content-
free releases purely to sync.

solar-mcp is the **pilot repo** for this rollout (per Patton's
2026-05-16 architecture review). Once the next solar-mcp release
demonstrates the workflow end-to-end, the same pattern fans out to
the other 12 qso-graph + IONIS-AI MCP repos.

## [0.2.1] — 2026-05-15

### Added
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
<!-- mcp-name: io.github.qso-graph/solar-mcp -->
# solar-mcp

[![PyPI](https://img.shields.io/pypi/v/solar-mcp?label=PyPI&color=blue)](https://pypi.org/project/solar-mcp/)
[![MCP Registry](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.modelcontextprotocol.io%2Fv0%2Fservers%3Fsearch%3Dsolar-mcp&query=%24.servers%5B0%5D.server.version&label=MCP%20Registry&color=blue)](https://registry.modelcontextprotocol.io/v0/servers?search=solar-mcp)

MCP server for space weather and HF propagation conditions — live solar flux, Kp index, DSCOVR solar wind, X-ray flux, alerts, 27-day forecast, and band-by-band outlook through any MCP-compatible AI assistant.

Part of the [qso-graph](https://qso-graph.io/) project. **No authentication required** — all data from [NOAA SWPC](https://www.swpc.noaa.gov/) public endpoints.

> **Version drift?** If the PyPI and MCP Registry badges show different versions, the Registry is catching up to the latest PyPI release on this server's next tag. Forward-only sync — we don't tag content-free releases just to sync. See [qso-graph/.github TEMPLATES.md](https://github.com/qso-graph/.github/blob/main/TEMPLATES.md) for the sync mechanism.

## Install

```bash
Expand Down
Loading