News Dashboard Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited News Dashboard Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for the news-dashboard app. Lets AI agents (Claude Desktop, Claude Code) read feeds, manage bookmarks, generate the daily Morning Edition and AI intelligence briefings, clip/translate articles, create Obsidian notes, and post to BlueSky.
nvm use)news-dashboard-nest backend running and reachablebackend requires a signed-in user for almost every route.
npm install
npm run buildThe backend (news-dashboard-nest) guards nearly every route with a JWT, the same way the web app does. This MCP server does not implement its own login flow — instead, you supply a pre-issued access token:
curl -X POST https://your-backend-url/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]","password":"...","rememberMe":true}'This returns { "accessToken": "..." }. With rememberMe: true the token is valid for 30 days; otherwise 2 hours.
NEWS_DASHBOARD_TOKEN to that value in the MCP server's environment (see below).When the token expires or is rejected, tools return a clear error telling you to repeat this step and update the config — there is no automatic refresh.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"news-dashboard": {
"command": "node",
"args": ["/path/to/news-dashboard-mcp/dist/index.js"],
"env": {
"NEWS_DASHBOARD_API_URL": "https://your-deployed-backend.com",
"NEWS_DASHBOARD_TOKEN": "eyJhbGciOi..."
}
}
}
}For local development set NEWS_DASHBOARD_API_URL=http://localhost:3001.
| Tool | Description |
|---|---|
list_feeds | List all configured feeds (RSS/Atom + BlueSky profile) |
get_articles | Get articles from one feed or all feeds |
get_top_stories | Get the current locked newspaper front-page layout |
find_articles_by_topic | Client-side keyword search across feeds (no server-side index) |
add_feed | Add a new RSS or BlueSky profile feed |
rename_feed | Rename a feed / change its icon or URL |
remove_feed | Remove a custom feed |
| Tool | Description |
|---|---|
list_bookmarks | List saved bookmarks/archive |
add_bookmark | Save an article |
update_bookmark | Update a bookmark's note/fields |
remove_bookmark | Remove a bookmark |
| Tool | Description |
|---|---|
clip_article | Fetch full article as Markdown with frontmatter |
summarize_article | AI summary of an article URL |
get_article_ogimage | Extract og:image from any URL |
get_readability | Server-cached distraction-free reader view of an article |
translate_article | Translate article text to English |
| Tool | Description |
|---|---|
generate_digest | Quick one-shot AI digest of supplied articles |
get_morning_edition / generate_morning_edition | Read / build today's AI-curated magazine |
get_morning_edition_history | Last 30 days of Morning Edition issues |
send_morning_edition_email | Email today's edition |
get_weekly_digest / generate_weekly_digest | Read / build this week's Saturday digest |
get_weekly_digest_history | Last ~8 weekly digest issues |
get_intelligence_briefing / refresh_intelligence_briefing | Read / regenerate a per-category AI briefing |
ask_news | Multi-turn Q&A with citations over a supplied article set |
thread_summary | Summarise how a keyword-tracked thread evolved over time |
generate_newsletter / generate_newsletter_image | Draft a newsletter (+ AI cover image) from articles |
generate_linkedin_post | Draft a LinkedIn post from articles |
| Tool | Description |
|---|---|
save_to_obsidian | Build a rich Obsidian note with summary, tags, wikilinks |
create_digest_note | Create a daily digest Obsidian note from top stories |
| Tool | Description |
|---|---|
post_to_bluesky | Share an article to BlueSky |
get_settings / update_settings | Read/update app settings |
Not covered by this server (client-side-only in the web app, no backend endpoint to wrap): search/story-clustering/trends/alerts over already-loaded articles. Also out of scope: admin endpoints, the audio brief (binary MP3 streaming), and the paywall-capture bookmarklet flow.
| URI | Description |
|---|---|
newsdash://feeds | All configured feeds |
newsdash://feed/{feedId} | Articles from a specific feed |
newsdash://top-stories | Current newspaper layout |
newsdash://settings | Current user settings |
| Name | Description |
|---|---|
daily-briefing | Generate a structured daily news briefing |
obsidian-research-note | Research a topic and save to Obsidian |
bluesky-post-draft | Draft a BlueSky post for an article |
Save an article to Obsidian with a summary:
"Clip https://... and save it to my Obsidian Research/Biotech folder with a summary and relevant tags"
Today's top 5 stories:
"Fetch today's articles and generate a digest of the 5 most important stories"
Morning Edition:
"Pull today's articles and generate my Morning Edition"
Topic research:
"Find all articles about GLP-1 drugs across my feeds and create an Obsidian research note"
Find and share:
"Find the most recent FDA approval news and post it to BlueSky"
HTTP mode binds to 127.0.0.1 and validates the Host and browser Origin headers. Non-browser MCP clients can omit Origin. Browser clients must use a loopback origin on the same port. This bridge uses NEWS_DASHBOARD_TOKEN for its tools; remote access requires a separate authenticated gateway, not a public bind.
Express 5 and TypeScript 7 are covered by npm test, including the localhost Host/Origin boundary checks. Use npm 12.2.1 with Node 24.22.1. See the security and migration review.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.