About
Read-only MCP server for NetNewsWire
README
CI Swift 6.2 macOS 26+ License: MIT Built with Claude Code
A read-only Model Context Protocol (MCP) server for NetNewsWire, the open-source RSS reader for Mac.
Gives AI assistants like Claude access to your NetNewsWire feeds, articles, and search index.
Tools
| Tool | Description |
|---|---|
list_accounts |
List available NNW accounts (OnMyMac, iCloud, etc.) |
list_feeds |
List subscribed feeds (parsed from OPML) |
list_starred_articles |
Starred articles with optional feed filter and limit |
list_recent_articles |
Recent articles by arrival date |
get_article |
Full article content by ID; optional format (html/text) and max_content_length to bound the body |
search_articles |
Full-text search using NNW's FTS4 index |
get_article_count |
Total, starred, and unread counts |
All tools are read-only. Nothing is modified. Each tool returns machine-readable
structuredContent (with a declared outputSchema) alongside the human-readable
markdown.
Requirements
- macOS 26+
- Swift 6.2+ (builds on the Swift 6.3 toolchain in Xcode 26)
- NetNewsWire (Mac App Store or direct download); tested against 7.1.1
Build
swift build -c release
The binary will be at .build/release/netnewswire-mcp.
Configure
Add to your Claude Code MCP config (~/.claude/claude_desktop_config.json or similar):
{
"mcpServers": {
"netnewswire": {
"command": "/path/to/netnewswire-mcp"
}
}
}
Or, with the Claude Code CLI:
claude mcp add netnewswire /path/to/.build/release/netnewswire-mcp
Full Disk Access
NetNewsWire keeps its databases inside a macOS app container, which the system
protects with privacy controls (TCC). The server can only read it if the process
that launches it has Full Disk Access — otherwise it exits at startup with
Operation not permitted.
Grant FDA to whichever app hosts your MCP client, then restart that app:
- Running Claude Code from a terminal → System Settings → Privacy & Security → Full Disk Access → enable Terminal (or iTerm).
- Another host (VS Code, the Claude desktop app) → grant FDA to that app instead.
How it works
The server reads NetNewsWire's SQLite databases directly (read-only mode) from:
~/Library/Containers/com.ranchero.NetNewsWire-Evergreen/Data/Library/Application Support/NetNewsWire/Accounts/
It auto-discovers all accounts and their databases on startup. Feed lists are parsed from each account's Subscriptions.opml file. Full-text search uses NNW's built-in FTS4 search index.
Dependencies
- swift-sdk 0.12.1+ - MCP protocol implementation for Swift
- GRDB.swift 7.x - SQLite toolkit for Swift
Notes
- Only tested with Claude Code. It should work with any MCP client, but your mileage may vary.
- This depends on NetNewsWire's internal database schema, which is not a public API and could change between versions. NetNewsWire 7.1 moved authors into an inline JSON column on
articles(the oldauthors/authorsLookuptables are gone); this server reads the current layout. - Feed IDs are the XML URLs of the feeds, not UUIDs.
- Dates are Unix timestamps (seconds since 1970).
License
MIT
Installing Swift Netnewswire
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/jonathanspiva/swift-netnewswire-mcpFAQ
Is Swift Netnewswire MCP free?
Yes, Swift Netnewswire MCP is free — one-click install via Unyly at no cost.
Does Swift Netnewswire need an API key?
No, Swift Netnewswire runs without API keys or environment variables.
Is Swift Netnewswire hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Swift Netnewswire in Claude Desktop, Claude Code or Cursor?
Open Swift Netnewswire on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Swift Netnewswire with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
