@gridnews/mcp
{
"answer": "This server is an MCP bridge to GridNews that gives AI agents real-time market news, press releases, and sentiment analysis across thousands of sources.\n\nCapabilities:\n\n- Get top events — Discover the biggest stories ranked by independent corroboration, with per-event outlet detail grouped by independent voice.\n- Search news (search_news) — Search articles and press releases by free text, ticker symbols, source, date range, sentiment, and quality score; results are newest-first and reranked against your query.\n- Get symbol news (get_symbol_news) — Retrieve recent coverage and press releases for a single ticker symbol, along with an aggregate sentiment reading.\n- Get symbol sentiment (get_symbol_sentiment) — Deeper positive/negative/neutral sentiment breakdown over a configurable timeframe (e.g., 24h, 7d), with basis and optional written analysis. Requires pro tier.\n- List press releases (list_press_releases) — Primary-source company announcements from major wire services (PR Newswire, GlobeNewswire, Business Wire), filterable by symbol, provider, company, and date.\n- List sources (list_sources) — Enumerate all indexed news sources with their IDs for constructing precise sources filters.\n- Get trending topics (get_topics) — Trending topic clusters as keyword groups with article counts, answering "what is the market talking about right now" without a specific query. Works with no API key.\n- Get usage (get_usage) — Check your API key's tier, entitlements, and remaining daily quota to diagnose permission or rate-limit failures. Tier-aware error handling names required tiers and reports quota/reset times.\n\nThe platform uses a corroboration-aware model that distinguishes outlets from independent voices, and story clusters are ranked accordingly."
}
Click on "Deploy 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., "@@gridnews/mcpWhat's the latest news and sentiment for NVDA?"
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.
@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
claude mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}OpenAI Codex
codex mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcpGemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}Related MCP server: crypto-news-mcp
Configuration
Variable | Default | Purpose |
| — | Your API key. Required for everything except |
|
| Override the API host. |
|
| Per-request timeout. Raise it if you use |
Tools
Tool | Purpose | Minimum tier |
| The biggest stories now, as clusters ranked by independent corroboration | free (filters need basic) |
| Every outlet that carried one story, grouped by independent voice | free |
| Search articles and press releases by text, symbol, source, date, sentiment, and quality | free (filters need basic) |
| Recent coverage for one ticker, plus an aggregate sentiment reading | free |
| Sentiment analysis for a ticker over a timeframe, with its basis | pro |
| Wire releases filtered by symbol, provider, company, and date | free |
| The sources GridNews indexes, with ids for the | free |
| Trending topic clusters as keyword groups with article counts | none |
| The key's tier, entitlements, and remaining daily quota | free |
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:
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
npm install
npm run build
npm testThe 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
Available Tools
9 toolsget_event_detailGet one story clusterA
Every outlet that carried one story, grouped by independent voice, with the signal that matched each into the cluster. Use it to check how well-corroborated a story actually is before repeating it, and to cite the original reporting. Event ids are not permanent — clusters are rebuilt as the rules change, so re-resolve from get_top_events rather than storing ids.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Event id from get_top_events. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It explains that clusters are rebuilt and IDs are not permanent, which is a key behavioral trait. However, it does not explicitly state that the operation is read-only or disclose any constraints like rate limits, permissions, or how the tool handles missing/invalid IDs. The implied read nature from the purpose is insufficient for maximum transparency.
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 efficient at three sentences, but the first sentence ('Every outlet that carried one story, grouped by independent voice, with the signal that matched each into the cluster') is slightly convoluted and could be streamlined. The remaining sentences are clear and front-loaded with usage guidance.
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 has only one parameter, no output schema, and simple scope, the description adequately covers what the tool returns (outlets grouped by voice with signals) and provides usage context. It could be more complete by specifying if there are limits or pagination, but the current description suffices for an uncomplicated 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 schema already describes event_id with 100% coverage. The description adds critical semantic nuance: that event IDs are not permanent and must be re-resolved from get_top_events, going beyond the schema's static description. This extra context helps the agent understand the parameter's lifecycle and proper usage.
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 every outlet that carried a story, grouped by independent voice with matching signals, and explicitly defines its use case: checking corroboration and citing original reporting. The title 'Get one story cluster' aligns and distinguishes it from siblings like get_top_events.
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 states when to use the tool ('to check how well-corroborated a story actually is before repeating it, and to cite the original reporting') and provides critical guidance that event ids are not permanent, advising to re-resolve from get_top_events rather than storing IDs. This effectively differentiates it from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbol_newsGet news for a tickerA
Recent news and press releases for a single ticker symbol, plus an aggregate sentiment reading across the recent coverage. Use this when the question is about one company; use search_news when it spans several or needs free-text matching.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results to return. Clamped by tier. | |
| symbol | Yes | Ticker symbol, e.g. 'AAPL'. | |
| sentiment | No | Only return articles with this sentiment. Requires pro tier or above. | |
| includePressReleases | No | Include press releases. Default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and adds meaningful behavioral context: it mentions the aggregate sentiment reading and that it returns recent coverage. It doesn't disclose all possible limitations or return format, but for a read-only news tool the key behaviors are covered.
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 sentences, front-loaded with the main function and immediately followed by usage guidance. 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?
Despite no output schema, the description gives a sufficient overview of the return content (news, press releases, sentiment score) and provides usage context. All parameters are documented in the schema, but it doesn't mention tier restrictions for sentiment filtering (though this is in the schema). Overall, well-rounded for a simple 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?
Schema description coverage is 100%, with all four parameters fully described (limit, symbol, sentiment, includePressReleases). The description adds no extra parameter-specific semantics beyond what the schema already provides, so baseline 3 applies.
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 recent news and press releases for a single ticker symbol, including an aggregate sentiment reading. It explicitly distinguishes this from search_news, which handles multiple companies or free-text matching.
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?
Provides an explicit directive: 'Use this when the question is about one company; use search_news when it spans several or needs free-text matching.' This is a strong when-to-use vs. alternative-guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbol_sentimentAnalyse sentiment for a tickerA
Deeper sentiment analysis for one ticker over a timeframe, with a positive/negative/neutral breakdown and the basis it was computed from. Requires pro tier or above. Slower than the other tools because it analyses articles on demand. Check the 'not enough data' note before reporting a reading as meaningful.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker symbol, e.g. 'AAPL'. | |
| timeframe | No | Lookback window, e.g. '24h', '7d'. Default '24h'. | |
| includeAnalysis | No | Include the longer-form written analysis. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the tier requirement, performance characteristics (slower, on-demand computation), and a data-sufficiency caveat. This goes beyond a simple 'returns sentiment' statement and helps set expectations.
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?
Three sentences with the core function front-loaded, followed by essential caveats. Every sentence adds value and there is no redundant repetition of the tool name or title.
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?
There is no output schema, but the description summarizes the key output components: sentiment breakdown, basis, and a data-quality note. It doesn't enumerate every field, but for a 3-param tool with a moderate output, this is adequate for selection and invocation.
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 input schema provides 100% coverage with descriptions for all three parameters. The tool description does not add additional meaning beyond the schema; it references the timeframe generically but doesn't elaborate on parameter syntax or constraints.
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 a specific verb ('analyse') and resource ('sentiment for one ticker'), and differentiates itself from sibling tools by mentioning the positive/negative/neutral breakdown and the basis. It is not a generic restatement of the name.
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?
Provides explicit context: requires pro tier, slower than other tools due to on-demand article analysis, and advises checking the 'not enough data' note. It lacks explicit exclusions or named alternatives, but the caveats give practical guidance for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_eventsGet top story clustersA
The biggest stories right now, as clusters of coverage rather than individual articles. Prefer this over search_news for open-ended questions like 'what is happening in the markets' — it ranks by how many INDEPENDENT outlets corroborated a story, so it surfaces what matters rather than whatever was published most recently. Report the independent-voice count, not the outlet count: outlets that republish each other count once, and a press release is a single issuer however many wires carried it.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Default 1. | |
| type | No | 'article' for journalism, 'press_release' for company announcements off the wires. Default: all. | |
| hours | No | Only events still active within this many hours. Default: all history the tier allows. | |
| limit | No | Events to return. Default 10. | |
| orderBy | No | Sort order. Default -impactScore, which ranks corroborated stories first. | |
| symbols | No | Ticker symbols, e.g. ['AAPL']. Requires basic tier or above. | |
| minVoices | No | Minimum independent voices. Pass 2 for corroborated stories only. No default — single-voice clusters are not hidden, they just rank last. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the ranking logic (independent voices vs. outlets, press release treatment) but omits important behavioral details: pagination behavior, default handling of hours parameter, tier requirements for symbols, and return format. The description adds value but leaves gaps.
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?
Three sentences, no wasted words. The opening sentence immediately states the purpose, followed by usage guidance and a key behavioral nuance. Every sentence earns its place.
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 complexity (7 parameters, no output schema, no annotations), the description covers the core concept and usage guidance but lacks details on return structure, pagination, default behaviors (e.g., hours default), and tier restrictions. It is adequate but not fully complete for an agent to use without additional context.
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?
Schema description coverage is 100%, so the baseline is 3. The description adds conceptual context about independent-voice counting and ranking, which enriches understanding of minVoices and orderBy, but does not provide additional parameter-specific guidance beyond what the schema already states. No significant value added beyond the 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 'the biggest stories right now, as clusters of coverage rather than individual articles.' It distinguishes itself from search_news for open-ended questions and explains the ranking by independent corroboration, making the purpose highly specific and actionable.
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 explicitly advises preferring this tool over search_news for open-ended questions, providing a clear alternative. However, it does not address other sibling tools like get_symbol_news or list_press_releases, nor does it specify when not to use this tool (e.g., for individual article lookups). The guidance is clear but narrowly scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topicsGet trending topicsA
Trending topic clusters across recent coverage, as keyword groups with article counts. Useful for answering 'what is the market talking about right now' without a specific query. Works without an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of topics. Default server-side. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the output shape, scope, and the lack of an API key requirement, which is useful. However, it omits potential behavioral details such as rate limits, sorting order, or the exact definition of 'recent', leaving room for uncertainty.
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 front-loaded with the core purpose, followed by a practical use case and a critical auth note. Every sentence adds value, with no redundant or filler content. It is concise and 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?
For a simple tool with one optional parameter and no output schema, the description provides enough context: it explains the result format, the use case, and the auth requirement. It could be more complete by explaining how the 'limit' parameter affects results or giving an example, but it is not seriously lacking.
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 input schema already provides 100% coverage for the single 'limit' parameter, including a description. The tool description adds nothing beyond the schema, so it meets the baseline but provides no extra semantic value.
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 specifies the resource ('trending topic clusters'), scope ('recent coverage'), and output format ('keyword groups with article counts'). It distinguishes itself from siblings by emphasizing a query-free, market-level overview, in contrast to search_news or get_symbol_news.
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 explicitly states when to use the tool: 'without a specific query' and for answering 'what is the market talking about right now'. This implies a contrast with query-based search tools, though it does not explicitly name alternatives, which keeps it just short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageCheck API key tier and quotaA
Report the configured API key's tier, feature entitlements, and remaining daily quota. Call this to explain a permission or rate-limit failure from another tool rather than guessing at the cause.
| Name | Required | Description | Default |
|---|---|---|---|
No 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 implies a read-only reporting action, but does not explicitly state side-effect-free behavior, auth needs, or response format. The lack of any mutating language is a minimal indicator, but richer context would be helpful.
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 sentences: first states the primary function, second gives practical usage guidance. Every word earns its place, and it's front-loaded with the main action.
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 parameterless diagnostic tool, the description provides essential information: what it reports and when to use it. It lacks response structure details, but that's not critical for such a simple tool, and there's no output schema to fill the gap.
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 schema is empty. Per the rubric, 0 params warrants a baseline of 4. The description adds no param details, but none are needed.
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 reports the API key's tier, feature entitlements, and remaining daily quota. This specific verb+resource makes it distinct from sibling tools, which are all news/sentiment related.
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 instructs to call this tool to explain permission or rate-limit failures from other tools, providing a clear when-to-use scenario. It doesn't name alternatives, but siblings are clearly unrelated, so no exclusions are necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_press_releasesList press releasesA
Company press releases straight off the wires (PR Newswire, GlobeNewswire, Business Wire and others), filterable by symbol, provider, company name, and date. Use this when the user specifically wants primary-source company announcements rather than journalism about them.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO date upper bound. | |
| from | No | ISO date lower bound. | |
| page | No | Page number. Default 1. | |
| limit | No | Results per page. | |
| symbols | No | Ticker symbols to filter by. | |
| companies | No | Company-name filters. Each must be at least 3 characters. | |
| providers | No | Wire providers, e.g. ['prnewswire','globenewswire','businesswire']. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the wire-source nature and aggregation from multiple providers, but does not mention response format, pagination behavior, sorting, or any access limitations. This is adequate but not rich.
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 sentences, front-loaded with purpose and provider context, followed by a concise usage directive. Every word earns its place; no filler or repetition.
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?
The description covers purpose, sources, filters, and use case, but with no output schema or annotations, it omits the return shape, pagination, and default ordering. For a list tool with 7 optional parameters, a bit more detail on result behavior would be valuable.
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?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter syntax or format details beyond restating that filtering is by symbol, provider, company, and date, all already captured in the 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?
Description uses a specific verb ('list') and concrete resource ('company press releases straight off the wires'), naming providers and filterable dimensions. It also distinguishes itself from journalistic news content, aligning with sibling search_news/get_symbol_news.
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 states when to use: when the user wants primary-source company announcements rather than journalism. It does not name a specific alternative tool (e.g., search_news), but the 'rather than journalism' clause gives clear directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesList available news sourcesA
List the news sources GridNews indexes, with their ids. Call this before using the sources filter on search_news so you filter on ids that actually exist.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Default 1. | |
| limit | No | Sources per page. Default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden for behavioral disclosure. It mentions output includes ids but does not explicitly state read-only status, pagination limits, or which sources are included. For a simple list tool, this is adequate but lacks depth.
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 two sentences, each earning its place: the first states the core purpose, the second adds critical usage guidance. No fluff or repetition.
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 list tool, the description covers the purpose, a key usage context (filter validation), and hints at the response (with ids). Since no output schema is provided, a bit more detail on the exact response structure would be ideal, but it is sufficiently complete for likely agent use.
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 input schema already describes both page and limit with 100% coverage, including defaults and bounds. The description adds no parameter-specific information, so the baseline score of 3 applies.
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 'List the news sources GridNews indexes, with their ids,' using a specific verb and resource. It clearly distinguishes itself from sibling tools like search_news by linking its purpose to the sources filter.
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 instructs the agent to 'Call this before using the sources filter on search_news' and explains the benefit (ensuring valid ids), providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_newsSearch market newsA
Search GridNews for market news articles and press releases. The primary tool — use it for any question about what has happened in the markets, at a company, or in a sector. Filter by free text, ticker symbols, source, date range, sentiment, and quality score. Results are newest-first and reranked against the query. Cite the source URL for any claim you repeat.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO date upper bound. | |
| from | No | ISO date lower bound, e.g. '2026-08-01'. Capped by the key's tier history window. | |
| page | No | Page number. Default 1. | |
| limit | No | Results per page. Clamped by tier (free 20, pro 50, enterprise 100). | |
| query | No | Free-text search over headlines and article bodies. | |
| sources | No | Source ids or names to restrict to, e.g. ['reuters']. Partial matches work; each needs 3+ characters. Use list_sources to discover them. Requires basic tier or above. | |
| symbols | No | Ticker symbols, e.g. ['AAPL','TSLA']. Requires basic tier or above. | |
| sentiment | No | Only return articles with this sentiment. Requires pro tier or above. | |
| maxQuality | No | Maximum quality score, 0-1. | |
| minQuality | No | Minimum quality score, 0-1. 0.6+ filters out most low-signal wire noise. | |
| includePressReleases | No | Include press releases alongside articles. Default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full transparency burden. It discloses ordering behavior ('newest-first and reranked against the query') and implies output includes source URLs ('Cite the source URL for any claim you repeat'). It does not explicitly state read-only safety, but 'search' implies no mutation, and this is sufficient for a read tool.
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?
Three sentences with no fluff: purpose, usage scope, and behavioral notes. All sentences earn their place, and the most critical info is front-loaded in the first two sentences.
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?
With 11 params, no output schema, and no annotations, the description provides needed context: result type (articles/press releases), ordering, and source URL expectation. It does not explain pagination or tier restrictions, but those are already in the schema, so the description is complete enough for effective tool use.
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?
Schema coverage is 100% with each parameter described, so baseline is 3. The description lists filter categories (free text, ticker, source, date range, sentiment, quality score) but adds no semantics beyond what the schema already provides; it is a helpful summary but not additional detail.
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?
Opening sentence states a specific verb+resource: 'Search GridNews for market news articles and press releases.' It clearly defines the deliverable and distinguishes itself from siblings by positioning as 'The primary tool' for any market/company/sector event question, unlike specialized tools like get_symbol_news or list_press_releases.
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 instructs to use it 'for any question about what has happened in the markets, at a company, or in a sector,' giving clear when-to-use guidance. Does not name alternative tools as exclusions, but the primary-tool framing implies it as the default choice, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.2.0- Added
get_event_detail - Added
get_top_events
7 tool updates
v0.1.0- First observed
get_symbol_news - First observed
get_symbol_sentiment - First observed
get_topics - First observed
get_usage - First observed
list_press_releases - First observed
list_sources - First observed
search_news
TDQS
Scored across 9 tools
Each tool targets a distinct information need: general search, trending clusters, cluster details, per-symbol news, sentiment, press releases, source listing, topics, and usage. Descriptions clarify boundaries well, e.g., get_top_events vs. get_topics vs. search_news.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_news, get_top_events, list_sources). No mixing of styles or vague verbs.
9 tools is ideal for a news/market data server. Each tool has a clear role without being overwhelming or too sparse.
Covers search, trending stories, per-symbol news, sentiment, press releases, and source management. Missing direct article content retrieval, but the focus on metadata and citing URLs is intentional and functional.
Maintenance
Related MCP Connectors
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
MCP server for Mudrex futures trading enabling AI agents to securely access data and risk tools.
The Dappier MCP server connects LLMs and AI agents to real-time, rights-cleared, proprietary data from trusted sources across various domains. It provides specialized knowledge through real-time web search, financial stock market and crypto data access, AI-powered content recommendations from premium publishers, and structured outputs with sub-300ms response times, enabling AI systems to respond to current events and trends.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that provides AI assistants access to stock market data including financial statements, stock prices, and market news through a Model Context Protocol interface.112,299MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides real-time cryptocurrency news sourced from NewsData for AI agents.15MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that exposes real-time AI news intelligence to AI agents and MCP-compatible clients, with 9 deterministic tools for search, trending, signals, and risk analysis.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for real-time global intelligence, AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking, enabling agents and scripts to access curated news feeds, country instability indices, and market data.87,319AGPL 3.0