# MCP server: News Search API

[ChatGPT ↗](https://chatgpt.com/?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Fmcp%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)[Claude ↗](https://claude.ai/new?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Fmcp%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)

MCP SERVER

# Give your AI agent live news

Our Model Context Protocol server lets Claude, Cursor, VS Code and other MCP clients search and read the news directly. No code to write: add one config block with your API key.

Server URL

`https://apis.newssearchapi.com/mcp`

Transport

Streamable HTTP (stateless)

Authentication

`X-Api-Key` or `Authorization` header with your API key

Usage

Each tool call counts as API requests against your plan

## Connect a client

### Cursor

Add to `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for all projects), replacing `YOUR_API_KEY`:

.cursor/mcp.json

```
{
  "mcpServers": {
    "news-search-api": {
      "url": "https://apis.newssearchapi.com/mcp",
      "headers": {
        "X-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}
```

### VS Code (GitHub Copilot agent mode)

Add to `.vscode/mcp.json`. VS Code asks for the key once and stores it securely, so it never lands in the file:

.vscode/mcp.json

```
{
  "inputs": [
    {
      "type": "promptString",
      "id": "gna-api-key",
      "description": "News Search API key",
      "password": true
    }
  ],
  "servers": {
    "news-search-api": {
      "type": "http",
      "url": "https://apis.newssearchapi.com/mcp",
      "headers": {
        "X-Api-Key": "${input:gna-api-key}"
      }
    }
  }
}
```

### Claude Code

Terminal

```
claude mcp add --transport http news-search-api https://apis.newssearchapi.com/mcp \
  --header "X-Api-Key: $NEWSSEARCHAPI_API_KEY"
```

### Other clients

Any client that supports remote Streamable HTTP servers works: point it at `https://apis.newssearchapi.com/mcp` and send your key in an `X-Api-Key` header.

For direct REST API calls, both the `X-Api-Key` header and `apiKey` query parameter are supported. The header is recommended for servers; the query parameter is handy for browser tests.

## Try it

Once connected, ask your agent things like:

-   "What are the latest technology headlines from Germany?"
-   "Find English-language coverage of the climate summit from the last three days and summarise the main positions."
-   "Find coverage from example.com about Brazil."

## Tools and resource

`search_news`

Search articles by `q`, `country`, `language`, `category`, `domains`, `exclude_domains`, `from`, `to`, `indexed_from`, `sort`, `page` and `page_size`. Article content is plain text. Every plan receives a safe excerpt of about 200 characters with `contentTruncated: true` and a link to the original article.

`get_article`

Fetch one article by the ID returned from `search_news`, with a plain-text excerpt of about 200 characters and a link to the original article.

`latest_headlines`

Newest articles, filtered by country, language and category.

`news://stats`

Read-only resource with live coverage, freshness and latency figures.

## Limits and errors

Tool calls go through the same REST API: the gateway applies one uniform rate limit, article pages allow up to 100 results, and date ranges can cover the available archive. Errors keep the API's [error codes](/docs/errors) and messages; `quotaExceeded` tells the model not to retry until the quota resets.

## Credentials

The server is stateless: your key is forwarded to the API on each request and never stored. Keep it in your client's secret storage or an environment variable, don't commit config files that contain it, and consider a dedicated key for each agent so you can revoke it on its own.
