trackmcp
Back to directory

MCP server for the GridNews API — market news, press releases, and sentiment for AI agents

0 stars TypeScriptOthers Updated Aug 31, 2026
ai-agentsclaudefinancial-newsfintechllmllm-toolsmarket-newsmcpmcp-servermodel-context-protocolnews-apipress-releasessentiment-analysisstock-markettypescript

Documentation

@gridnews/mcp

MCP server for GridNews — market news, press releases, and sentiment for AI agents.

Gives any MCP-capable assistant the latest market coverage: story clusters ranked

by how many independent outlets corroborated them, article search across thousands

of sources, per-ticker news with an aggregate sentiment reading, primary-source

wire releases, and trending topic clusters.

Install

Requires Node.js 20+ and a GridNews API key. `get_topics` works without a key;

every other tool needs one.

Claude Code

bash
claude mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp

Claude Desktop

Add to `claude_desktop_config.json`:

json
{
  "mcpServers": {
    "gridnews": {
      "command": "npx",
      "args": ["-y", "@gridnews/mcp"],
      "env": { "GRIDNEWS_API_KEY": "your_key" }
    }
  }
}

Cursor

Add to `.cursor/mcp.json`:

json
{
  "mcpServers": {
    "gridnews": {
      "command": "npx",
      "args": ["-y", "@gridnews/mcp"],
      "env": { "GRIDNEWS_API_KEY": "your_key" }
    }
  }
}

OpenAI Codex

bash
codex mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp

Gemini CLI

Add to `~/.gemini/settings.json`:

json
{
  "mcpServers": {
    "gridnews": {
      "command": "npx",
      "args": ["-y", "@gridnews/mcp"],
      "env": { "GRIDNEWS_API_KEY": "your_key" }
    }
  }
}

Configuration

VariableDefaultPurpose
`GRIDNEWS_API_KEY`Your API key. Required for everything except `get_topics`.
`GRIDNEWS_BASE_URL``https://api.gridnews.io`Override the API host.
`GRIDNEWS_TIMEOUT_MS``30000`Per-request timeout. Raise it if you use `get_symbol_sentiment` heavily.

Tools

ToolPurposeMinimum tier
`get_top_events`The biggest stories now, as clusters ranked by independent corroborationfree (filters need basic)
`get_event_detail`Every outlet that carried one story, grouped by independent voicefree
`search_news`Search articles and press releases by text, symbol, source, date, sentiment, and qualityfree (filters need basic)
`get_symbol_news`Recent coverage for one ticker, plus an aggregate sentiment readingfree
`get_symbol_sentiment`Sentiment analysis for a ticker over a timeframe, with its basispro
`list_press_releases`Wire releases filtered by symbol, provider, company, and datefree
`list_sources`The sources GridNews indexes, with ids for the `sources` filterfree
`get_topics`Trending topic clusters as keyword groups with article countsnone
`get_usage`The key's tier, entitlements, and remaining daily quotafree

Corroboration, not outlet count

`get_top_events` returns stories rather than documents, and reports two

different numbers:

  • `sourcesCount` — how many outlets carried the story. This is reach.
  • `independent voices` — how many of those were not republishing each

other. This is the evidence.

They are usually not the same. Outlets that redistribute each other collapse

into one voice, so a story on five outlets all running the same wire copy is

one voice, not five. Where an outlet was carrying someone else's copy, the

tool marks it inline:

code
2 independent voices across 4 outlets · 4 filings · impact 1.47
- Wall Street Journal: https://wsj.com/...
- Dow Jones [carrying wall-street-journal]: https://morningstar.com/...
- GuruFocus: https://gurufocus.com/...

A press release is always a single voice however many wires carried it — one

issuer announcing itself is not confirmation.

Pass `minVoices: 2` for corroborated stories only. There is no default:

single-voice clusters are real distribution records and are not hidden, they

just rank last.

Tier behaviour

GridNews gates features and history depth by tier. Rather than failing opaquely,

the tools report what a call needs:

  • A 403 names the required tier and the key's current one, so the agent can

retry without the gated parameter instead of giving up.

  • A 429 reports remaining quota and reset time, so the agent waits rather than

looping.

  • Results note when a tier's history window excluded older articles, so a thin

result isn't mistaken for an absence of coverage.

`get_usage` explains any of these on demand.

Development

bash
npm install
npm run build
npm test

The test suite drives the built server over a real stdio MCP session against a

stubbed API, so it covers protocol handshake, argument validation, HTTP

serialization, formatting, and the tier/quota failure paths without needing a

live key.

License

MIT

Frequently asked questions

What is mcp?

mcp is MCP server for the GridNews API — market news, press releases, and sentiment for AI agents

How do I install mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp open source?

Yes — it is hosted on GitHub at https://github.com/gridnews/mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP