solar-mcp
Enables real-time space weather and HF propagation assessments, including solar conditions, forecasts, alerts, and band outlooks, via the GitHub Copilot extension in VS Code.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@solar-mcpWhat are the current solar conditions?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 project. No authentication required — all data from NOAA SWPC 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 for the sync mechanism.
Install
pip install solar-mcpRelated MCP server: io.github.qso-graph/ionis-mcp
Tools
Tool | Description |
| Current SFI, Kp, and NOAA R/S/G space weather scales |
| 27-day SFI and Kp forecast from NOAA |
| Active space weather alerts and warnings |
| Real-time DSCOVR L1 solar wind (Bz, speed, density) |
| GOES X-ray flux and solar flare classification |
| HF band-by-band propagation assessment (160m-6m) |
| Service version + upstream spec version (fleet identity attestation) |
Quick Start
No credentials needed — just install and configure your MCP client.
Configure your MCP client
Claude Desktop
Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"solar": {
"command": "solar-mcp"
}
}
}Claude Code
Add to .claude/settings.json:
{
"mcpServers": {
"solar": {
"command": "solar-mcp"
}
}
}ChatGPT Desktop
{
"mcpServers": {
"solar": {
"command": "solar-mcp"
}
}
}Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"solar": {
"command": "solar-mcp"
}
}
}VS Code / GitHub Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"solar": {
"command": "solar-mcp"
}
}
}Gemini CLI
Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):
{
"mcpServers": {
"solar": {
"command": "solar-mcp"
}
}
}Ask questions
"What are the current solar conditions?"
"Is the solar wind causing any geomagnetic disturbance?"
"What's the 27-day solar forecast look like?"
"Are any bands open right now on HF?"
"Are there any active space weather alerts?"
"What class solar flare is happening?"
Testing Without Network
SOLAR_MCP_MOCK=1 solar-mcpMCP Inspector
solar-mcp --transport streamable-http --port 8008Development
git clone https://github.com/qso-graph/solar-mcp.git
cd solar-mcp
pip install -e .License
GPL-3.0-or-later
Available Tools
7 toolsget_version_infoA
Get solar-mcp service version and upstream spec version.
Returns the running PyPI version of solar-mcp and the NOAA SWPC endpoint set revision currently in use. Use this to confirm fleet alignment across MCP deployments — agents can compare service_version and spec_version across servers to detect drift without going outside the MCP protocol.
Returns: service_name, service_version (PyPI), and spec_version (NOAA SWPC endpoint set).
| 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?
With no annotations, the description fully discloses it is a read-only operation returning version info, with details on return fields and source.
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?
Concise and front-loaded, though the returns section could be slightly more compact.
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 simplicity and output schema, the description covers purpose, usage, and return values completely.
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 exist, but the description adds value by explaining the returned fields beyond the empty schema.
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 the tool returns solar-mcp service version and upstream spec version, distinct from sibling tools that provide solar data.
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?
Explicitly describes usage for confirming fleet alignment across MCP deployments by comparing versions, providing clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_alertsA
Get active NOAA space weather alerts and warnings.
Shows current solar flare alerts, geomagnetic storm warnings, radiation storm alerts, and other SWPC bulletins.
Returns: List of active alerts with product ID, issue time, and message text.
| 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 are provided, so the description alone conveys the tool's read-only nature (no side effects). It lists the types of alerts and the return structure, which is sufficient for a simple retrieval tool but does not disclose any potential rate limits or freshness of data.
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 three concise sentences: the first states the main purpose, the second lists examples, and the third describes the return value. No redundant information, and it is well-structured.
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 (no parameters) and the existence of an output schema (which defines return values), the description is complete enough. It specifies the output fields (product ID, issue time, message text). Could add details on data freshness or pagination, but not necessary for this straightforward 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?
The tool has no parameters (0 params), so the baseline is 4. The description appropriately focuses on the purpose and output, requiring no additional parameter clarification.
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 the tool's function: 'Get active NOAA space weather alerts and warnings.' It uses a specific verb ('Get') and resource ('active NOAA space weather alerts'), and lists examples of alert types, distinguishing it from siblings like solar_conditions and solar_forecast.
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?
The description implies usage for retrieving current alerts and warnings, but does not explicitly state when to use this tool over alternatives or provide any exclusions. It is clear for its intended use but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_band_outlookA
Get HF band-by-band propagation outlook based on current conditions.
Derives a propagation assessment for each HF band (160m through 6m) from the current SFI and Kp values. Useful for deciding which band to operate on right now.
Returns: Per-band condition rating (Poor/Fair/Good/Excellent) with explanation, plus current SFI and Kp values.
| 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?
With no annotations, the description carries the full burden. It explains the derivation from SFI/Kp and the return values (per-band rating, explanation, current SFI/Kp), implying a read-only computation. No contradictory or missing behavioral traits are apparent.
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 with two paragraphs, front-loading the main action in the first sentence. Every sentence adds value: purpose, derivation context, usage guidance, and return structure. No 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?
Given no parameters and an existing output schema, the description covers all necessary context: it explains the input (current SFI/Kp implicitly from system), the per-band output (rating and explanation), and the additional SFI/Kp values. It is complete for a simple read-only 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?
The tool has zero parameters, so the baseline is 4. The description does not need to add parameter semantics, and it correctly implies no inputs are required.
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 states a specific verb 'Get' and resource 'HF band-by-band propagation outlook', clearly indicating the tool's purpose. It distinguishes itself from sibling tools like solar_alerts or solar_forecast by focusing on current propagation per HF band (160m-6m) using SFI and Kp values.
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?
The description advises 'Useful for deciding which band to operate on right now', providing clear context for immediate use. It does not explicitly exclude alternative tools or state when not to use, but the reference to 'current conditions' implicitly sets boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_conditionsA
Get current solar conditions — SFI, Kp, and NOAA space weather scales.
Returns the latest 10.7 cm solar flux index (SFI), planetary Kp index, and NOAA R/S/G scales (radio blackout, solar radiation, geomagnetic storm). Includes an HF band outlook derived from current indices.
Returns: Current SFI, Kp, NOAA scales, and band-by-band propagation outlook.
| 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?
With no annotations, description fully discloses that it returns current conditions and specifies the data fields. No behavioral traits beyond read-only are needed; description is adequate.
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 short paragraphs front-loaded with purpose, no fluff. Every sentence adds value.
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?
For a simple, parameterless tool with an output schema, description covers all relevant return values and purpose sufficiently.
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?
Zero parameters with empty schema; description adds full meaning by listing exactly what is returned, exceeding the baseline of 4 by providing rich 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?
Clearly states verb 'Get', resource 'solar conditions', and enumerates specific indices (SFI, Kp, NOAA scales, HF band outlook). Differentiates from siblings that focus on alerts, forecasts, or specific data types.
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?
Implies usage for current conditions overview without explicit when-not-to-use or alternatives. Context from sibling names provides differentiation, but description lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_forecastA
Get the NOAA 27-day solar flux and geomagnetic forecast.
Shows predicted SFI and Kp values for the next 27 days, useful for planning DX operations, contests, and POTA/SOTA activations.
Returns: Day-by-day forecast with predicted SFI and Kp values.
| 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 are provided, so the description carries full burden. It explains the return value (day-by-day forecast with SFI and Kp), which is helpful. It does not discuss authentication, rate limits, or data freshness, but given the simple read operation, it is adequate.
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 extremely concise and well-structured: a one-line purpose, a contextual sentence, and a return description. Every sentence adds value with no wasted words.
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?
For a zero-parameter tool with an output schema, the description is fairly complete. It covers purpose, use cases, and return content. It could optionally mention units or granularity, but this is likely covered by the output schema.
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?
There are no parameters, so parameter semantics are not needed. The description correctly adds no parameter information. Baseline of 4 is appropriate.
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 the tool provides a 27-day solar flux and geomagnetic forecast from NOAA, specifying the data (SFI and Kp values) and intended uses like DX operations. It distinguishes from siblings like solar_alerts and solar_conditions by focusing on the forecast aspect.
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?
The description mentions it is useful for planning activities, providing clear context. However, it does not explicitly state when not to use it or compare with alternatives, leaving some ambiguity among the sibling solar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_windA
Get real-time DSCOVR L1 solar wind data.
Shows interplanetary magnetic field (Bz component), solar wind speed, and proton density from the DSCOVR satellite at L1 (~1.5M km sunward). Southward Bz (negative) drives geomagnetic storms.
Returns: Bz (nT), Bt (nT), wind speed (km/s), density (p/cm³), and geomagnetic storm assessment.
| 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 exist, so the description carries full burden. It states the source (DSCOVR at L1), data fields, and a scientific context. However, it omits details on update frequency, latency, or whether data is cached. As a read-only data fetch, the behavior is adequately outlined.
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 summary line, one key explanatory note, and a bulleted return list. No superfluous words; essential information is front-loaded.
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 no parameters and an existing output schema, the description provides the key data fields, source, and a scientific note. It is largely complete but could mention data update frequency or real-time latency for full completeness.
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?
There are zero parameters, so schema coverage is 100%. The description adds value by explaining the output fields and their scientific relevance, which is the primary context needed beyond the empty schema.
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 the tool retrieves 'real-time DSCOVR L1 solar wind data' and lists specific fields (Bz, Bt, wind speed, density, storm assessment). This verb+resource combination distinguishes it from sibling tools like solar_forecast or solar_xray.
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?
The description implies use for monitoring geomagnetic storms via the Bz component note, but lacks explicit guidance on when to use this tool over siblings or when not to use it. No alternatives or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar_xrayA
Get GOES X-ray flux and solar flare status.
Shows the current X-ray classification (A, B, C, M, X) from GOES satellite data. M and X class flares can cause HF radio blackouts.
Returns: Current flare class, X-ray flux, and HF impact assessment.
| 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?
With no annotations, the description carries full burden. It explains the output includes current flare class, X-ray flux, and HF impact assessment, and provides context on the classification scale and effects. However, it does not mention whether the data is from a specific satellite or update frequency.
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, with two short paragraphs. The first sentence front-loads the main action, and the rest adds necessary context without unnecessary words.
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 no parameters and an output schema (exists), the description sufficiently explains the return values, including the classification and HF impact. It is complete for a simple data retrieval 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?
There are no parameters, so the description adds all meaning beyond the empty schema. It clearly explains what the tool returns and the significance of the X-ray classification.
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 the tool retrieves GOES X-ray flux and solar flare status, specifying the X-ray classification (A, B, C, M, X) and the impact of M/X flares on HF radio blackouts. This distinguishes it from sibling tools like solar_alerts or solar_forecast.
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?
The description implies the tool is for current solar flare status but does not explicitly state when to use it over alternatives like solar_alerts or solar_conditions. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool covers a distinct aspect of solar and space weather data—alerts, current conditions, forecasts, wind, X-ray flux, propagation outlook, and version info. There is minor overlap between solar_band_outlook and solar_conditions (both include HF outlook), but descriptions and primary outputs clearly differentiate them.
Six of seven tools follow a consistent 'solar_<noun>' pattern (solar_alerts, solar_conditions, etc.). The outlier is 'get_version_info', which uses a verb_noun style and breaks the prefix convention. This small inconsistency prevents a perfect score.
With 7 tools covering alerts, current conditions, forecasts, wind, X-ray flux, and propagation outlook, the set is well-scoped for the domain. No tool feels extraneous, and the count is typical for a focused data-providing MCP server.
The tool surface covers the core needs of an agent interested in HF propagation: current indices, alerts, forecast, solar wind, and X-ray data. Minor gaps exist, such as the lack of sunspot number or solar imagery, but these are not essential for the server's stated purpose.
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
Amateur radio MCP server with band plans, EIRP, cable loss, antenna gains, and more
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Space weather: Kp index, solar flare flux, alerts. $0.01/query, free testnet funds.
NOAA Space Weather Prediction Center (solar wind, Kp, aurora, alerts)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides real-time NOAA space weather data (solar flares, Kp index, solar wind) and analyzes HF radio propagation conditions for amateur radio operators to determine optimal frequency bands.MIT
- AlicenseAqualityDmaintenanceAn MCP server for HF radio propagation analytics using the IONIS dataset collection, enabling natural language queries about band conditions, propagation paths, and solar correlations.12GPL 3.0
- AlicenseAqualityDmaintenanceMCP server for HamQTH.com — callsign lookup, DX cluster spots, Reverse Beacon Network, DXCC resolution, and more through any MCP-compatible AI assistant.8GPL 3.0
- AlicenseAqualityFmaintenanceMCP server for QRZ.com — callsign lookups, DXCC entity resolution, and logbook queries through any MCP-compatible AI assistant.62GPL 3.0
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/qso-graph/solar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server