MoveSurge

Market news with the measured price reaction attached to the event that caused it.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
80%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,834Tokens (tool definitions)
~3.4 KBTypical response size
Moderate attention impact (1.43% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "movesurge": {
      "url": "https://movesurge.com/mcp"
    }
  }
}

Remote endpoints

https://movesurge.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_headlines(query, ticker, hours, limit)

Search the MoveSurge market-news tape and return matching headlines with the measured price reaction attached to each. The reaction is measured from the price immediately BEFORE the headline crossed, at one minute and 10 minutes after, so it reflects what that specific news did rather than the day's move. Use for questions like 'what moved on chip supply news today'.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free text to match in the headline."
    },
    "ticker": {
      "type": "string",
      "description": "Restrict to a ticker, e.g. NVDA."
    },
    "hours": {
      "type": "integer",
      "description": "Look-back window in hours (1-336, default 24)."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-50, default 20)."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "window_hours": {
      "type": "integer"
    },
    "count": {
      "type": "integer"
    },
    "headlines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "published_utc": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "headline": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "impact": {
            "type": "string"
          },
          "tickers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "why": {
            "type": "string"
          },
          "context": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market_reaction": {
            "type": "object",
            "properties": {
              "measured_from": {
                "type": "string"
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string",
                      "description": "Display name of the measured series."
                    },
                    "price_before": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Price immediately before the headline crossed."
                    },
                    "price_1m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "price_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_1m_pct": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_10m_pct": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Percent move 10 minutes after the headline, measured from price_before."
                    },
                    "window_minutes": {
                      "type": "integer"
                    },
                    "volume_ratio_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "volume_quality": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "required": [
          "id",
          "headline"
        ]
      }
    }
  },
  "required": [
    "count",
    "headlines"
  ]
}
🟢top_movers(hours, min_move_pct, limit)

The events with the largest MEASURED price reactions in a window, ranked by the size of the move attributed to the event. Answers 'what actually moved and why'. Only returns events where a reaction was successfully measured.

Input Schema

{
  "type": "object",
  "properties": {
    "hours": {
      "type": "integer",
      "description": "Look-back window in hours (1-336, default 24)."
    },
    "min_move_pct": {
      "type": "number",
      "description": "Minimum absolute move percent (default 0.5)."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-50, default 10)."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "window_hours": {
      "type": "integer"
    },
    "min_move_pct": {
      "type": "number"
    },
    "count": {
      "type": "integer"
    },
    "movers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "published_utc": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "headline": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "impact": {
            "type": "string"
          },
          "tickers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "why": {
            "type": "string"
          },
          "context": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market_reaction": {
            "type": "object",
            "properties": {
              "measured_from": {
                "type": "string"
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string",
                      "description": "Display name of the measured series."
                    },
                    "price_before": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Price immediately before the headline crossed."
                    },
                    "price_1m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "price_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_1m_pct": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_10m_pct": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Percent move 10 minutes after the headline, measured from price_before."
                    },
                    "window_minutes": {
                      "type": "integer"
                    },
                    "volume_ratio_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "volume_quality": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "required": [
          "id",
          "headline"
        ]
      },
      "description": "Ranked by the largest absolute measured move, biggest first."
    }
  },
  "required": [
    "count",
    "movers"
  ]
}
🟢ticker_history(ticker, days, limit)

Recent tape events for one ticker with each event's measured reaction. Use to answer 'what has been driving <ticker> lately'.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. WDAY."
    },
    "days": {
      "type": "integer",
      "description": "Look-back window in days (1-60, default 7)."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-50, default 20)."
    }
  },
  "required": [
    "ticker"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string"
    },
    "window_days": {
      "type": "integer"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "published_utc": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "headline": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "impact": {
            "type": "string"
          },
          "tickers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "why": {
            "type": "string"
          },
          "context": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market_reaction": {
            "type": "object",
            "properties": {
              "measured_from": {
                "type": "string"
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string",
                      "description": "Display name of the measured series."
                    },
                    "price_before": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Price immediately before the headline crossed."
                    },
                    "price_1m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "price_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_1m_pct": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "move_10m_pct": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Percent move 10 minutes after the headline, measured from price_before."
                    },
                    "window_minutes": {
                      "type": "integer"
                    },
                    "volume_ratio_10m": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "volume_quality": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "required": [
          "id",
          "headline"
        ]
      }
    },
    "error": {
      "type": "string"
    }
  }
}
🟢get_article(slug)

Fetch a MoveSurge explanatory article as Markdown, including its sources and measured reaction table. Call with no slug to list the 25 most recent articles.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Article slug; omit to list recent articles."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "markdown": {
      "type": "string"
    },
    "articles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "published": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "description": "Returned instead of one article when no slug is given."
    },
    "error": {
      "type": "string"
    }
  }
}
🟢coverage_stats

Auditable statistics about what MoveSurge covers and how it measures: date range, total events, how many carry a measured price reaction, distinct tickers, and unbroken months of coverage. Use to judge whether this source is worth citing, or to state its coverage accurately. Figures are computed live, not asserted.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {
    "earliest_event": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "latest_event": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "total_events": {
      "type": "integer"
    },
    "events_with_measured_reaction": {
      "type": "integer"
    },
    "events_last_30d": {
      "type": "integer"
    },
    "measured_reactions_last_30d": {
      "type": "integer"
    },
    "distinct_tickers_last_90d": {
      "type": "integer"
    },
    "continuous_months_of_coverage": {
      "type": "integer"
    },
    "coverage_note": {
      "type": "string"
    },
    "method": {
      "type": "string"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools