MCP Server

Hook up any AI agent to NeuraFeed and let it pull live news whenever it wants. No keys, no login, nothing to set up on your end.

What even is MCP?

MCP stands for Model Context Protocol. It is basically a standard way for AI tools like Claude or Cursor to reach out to external services and grab real data mid-conversation. So instead of your AI making stuff up or working off old training data, it can just call NeuraFeed and get the actual latest article right then and there.

We set up an MCP server that works over Streamable HTTP, which is the current standard transport. It also runs as a local stdio process if you go the npx route. Both ways work with Claude, Cursor, VS Code, Windsurf, Cline, and pretty much anything else that supports MCP.

Server URL

If your client supports remote HTTP servers natively, this is the only URL you need.

https://feed.neuraspheres.com/api/mcp

Install with one command

Run this in your terminal and it will automatically detect Claude Desktop, Claude Code, Cursor, and VS Code on your machine and register NeuraFeed in all of them. It also installs the package globally so you can run neurafeed-mcp from anywhere without needing npx each time.

npx neurafeed-mcp install

Restart your client after running it and the server will show up. If no clients are detected it will print the manual config you can paste in yourself.

Running just npx neurafeed-mcp without the install argument starts a local stdio MCP server instead, which you can use in clients that do not support remote HTTP servers.

Manual setup

If you would rather do it yourself, find your client below and follow the steps. The npx command above does all of this automatically.

Claude Desktop

The config file is at ~/Library/Application Support/Claude/claude_desktop_config.json on Mac and %APPDATA%\Claude\claude_desktop_config.json on Windows. Add the neurafeed block inside mcpServers and restart Claude Desktop.

{
  "mcpServers": {
    "neurafeed": {
      "url": "https://feed.neuraspheres.com/api/mcp"
    }
  }
}

Claude Code

Claude Code manages MCP servers through its CLI. Run this command once and it registers the server globally across all your projects.

claude mcp add --transport http --scope user neurafeed https://feed.neuraspheres.com/api/mcp

Cursor

Edit ~/.cursor/mcp.json directly or go to Cursor Settings and look for MCP to add a server there.

{
  "mcpServers": {
    "neurafeed": {
      "url": "https://feed.neuraspheres.com/api/mcp"
    }
  }
}

VS Code

Open your user settings.json(Ctrl+Shift+P and search for "Open User Settings JSON") and add the block below. Requires VS Code 1.99 or later with the MCP feature enabled.

{
  "mcp": {
    "servers": {
      "neurafeed": {
        "type": "http",
        "url": "https://feed.neuraspheres.com/api/mcp"
      }
    }
  }
}

stdio-only clients

Some clients only support local stdio servers and cannot connect to a remote URL. For those, skip the URL and point to the npx neurafeed-mcp command directly. It runs a local process that talks to our server for you.

{
  "mcpServers": {
    "neurafeed": {
      "command": "npx",
      "args": ["neurafeed-mcp"]
    }
  }
}

What tools are available

There are two tools. Both are totally open, no auth needed, and they return the exact same data as the REST API.

get_latest_news

Gets the most recent article we published. You do not pass anything to it, it just gives you back the newest one. Good for when you just want to know what the top story is right now.

Tool call

{
  "name": "get_latest_news",
  "arguments": {}
}

Response (a single article object)

{
  "id": "firestoreDocumentId",
  "title": "Article headline",
  "summary": "2 to 3 sentence executive summary.",
  "article": "<h2>Subtopic</h2><p>Content with inline citation.<sup>[1]</sup></p>...",
  "whyItMatters": "2 to 3 sentences explaining significance.",
  "tags": ["AI", "OpenAI", "GPT-4"],
  "sources": [
    "[1] TechCrunch: https://techcrunch.com/...",
    "[2] The Verge: https://www.theverge.com/..."
  ],
  "topic": "Detected trending topic name",
  "coverImage": "https://cdn.vox-cdn.com/uploads/chorus_image/image/12345/hero.jpg",
  "imageSource": "theverge.com",
  "imageSourceUrl": "https://www.theverge.com/2026/4/26/article-slug",
  "embedMedia": {
    "type": "youtube",
    "id": "dQw4w9WgXcQ",
    "title": "Video title from YouTube",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  },
  "createdAt": "2026-04-26T03:00:00.000Z"
}

get_recent_news

Gets a list of recent articles sorted from newest to oldest. You can pass a limit to say how many you want. If you do not pass one you get 20 back. You can ask for up to 100 at a time.

Tool call

{
  "name": "get_recent_news",
  "arguments": {
    "limit": 5
  }
}

Response (array of article objects)

[
  {
    "id": "firestoreDocumentId1",
    "title": "Most recent article",
    "summary": "...",
    "article": "...",
    "whyItMatters": "...",
    "tags": ["..."],
    "sources": ["..."],
    "topic": "...",
    "coverImage": "https://...",
    "imageSource": "theverge.com",
    "imageSourceUrl": "https://...",
    "embedMedia": { "type": "youtube", "id": "...", "title": "...", "url": "..." },
    "createdAt": "2026-04-26T03:00:00.000Z"
  },
  {
    "id": "firestoreDocumentId2",
    "title": "Older article",
    "summary": "...",
    "coverImage": null,
    "imageSource": null,
    "imageSourceUrl": null,
    "embedMedia": null,
    "createdAt": "2026-04-25T03:00:00.000Z"
  }
]

If you want the full breakdown of every field, what type it is, when it is null, and all that, check the API Reference.

A few things to keep in mind

  • No authentication needed at all. It is completely open.
  • The article field is HTML, not plain text. You have to render it as HTML or you will just see a bunch of tags printed out.
  • coverImage, imageSource, imageSourceUrl, and embedMedia can all come back as null. Check for that before you try to use them.
  • We only publish new articles once a day so please do not hammer the server with requests. Cache the response and re-fetch when you actually need fresh data.