Entra News

io.github.darrenjrobinsonPublished by GitHub account darrenjrobinsonv0.1.5Updated Oct 24, 2026

Search the Entra.news newsletter archive — a weekly digest of Microsoft Entra news

Overview

AI-generated overview

Lets an assistant search the Entra.news newsletter archive for Microsoft Entra news, issues, and community tools.

What you can do
Exposes the Entra.news archive as a searchable knowledge base. Tools include search_entra_news for hybrid semantic and keyword search with sourced excerpts, get_issue to retrieve a full issue by number or date, list_issues to browse by year or month, and find_tool_mentions to discover community tools and GitHub projects mentioned in past issues. Answers include issue number, date, and canonical URL.
When to use it
Useful when you want an assistant to answer questions about Microsoft Entra features, announcements, and community tooling from a curated weekly newsletter, or to look up specific past issues and mentioned projects.
Requirements
Runs locally via npx (Node.js 22+ for ingestion; the server itself is an npm package). On first launch it downloads a roughly 15-20 MB SQLite database from GitHub Releases and caches it under ~/.entra-news-mcp/ (or %USERPROFILE%\.entra-news-mcp\ on Windows), checking weekly for updates. Keyword search needs no key; semantic search requires an OPENAI_API_KEY environment variable. Network access is needed for the download.
Before you install
Optional semantic search sends queries to OpenAI and requires the OPENAI_API_KEY environment variable, which is a billable credential. The server downloads a database from GitHub Releases and checks for updates weekly, so it makes outbound network requests. Content is copyrighted and the README asks users to contact the publisher before any public deployment.

Installation

In SourceWeft

  1. Open Entra News in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

entra-news-mcp

A searchable knowledge MCP over Entra.news — Merill Fernando's curated weekly digest of Microsoft Entra news, features, and community tools.

[npm] [npm downloads] [License: MIT]


What is this?

Entra.news is a high-signal, curated newsletter covering Microsoft Entra (Azure AD) features, announcements, and community tools — published weekly since mid-2023.

This MCP server exposes the full historical archive as a natural language search interface. Ask questions and get sourced answers directly from past issues — including issue number, date, and canonical URL.

Zero per-user infrastructure. Users install an NPX package. That's it.


Quick Start

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "entra-news-mcp": {      "command": "npx",      "args": ["entra-news-mcp"]    }  }}

Restart Claude Desktop. The database (~15–20 MB) will be downloaded on first launch and cached in ~/.entra-news-mcp/.

Cursor / Copilot Studio / Any MCP Host

json
{  "mcpServers": {    "entra-news-mcp": {      "command": "npx",      "args": ["-y", "entra-news-mcp"]    }  }}

VS Code

Add to your MCP config (workspace .vscode/mcp.json, or run MCP: Add Server from the Command Palette):

json
{  "servers": {    "entra-news-mcp": {      "command": "npx",      "args": ["-y", "entra-news-mcp"]    }  }}

Semantic Search (Optional)

By default the server uses keyword and phrase matching over the SQLite index — no API key needed. For significantly better result quality, set your OpenAI API key to enable semantic + hybrid search:

json
{  "mcpServers": {    "entra-news-mcp": {      "command": "npx",      "args": ["entra-news-mcp"],      "env": {        "OPENAI_API_KEY": "sk-..."      }    }  }}

Local Database Cache

On first launch the server downloads the database (~15–20 MB) from GitHub Releases and caches it locally:

PlatformCache location
Windows%USERPROFILE%\.entra-news-mcp\
macOS / Linux~/.entra-news-mcp/

The server checks for a newer database release once per week. If you want to force an immediate re-download (e.g. after a new issue has been ingested), delete the cache folder and restart your MCP host:

Windows (PowerShell):

powershell
Remove-Item "$env:USERPROFILE\.entra-news-mcp" -Recurse -Force

macOS / Linux:

bash
rm -rf ~/.entra-news-mcp

Available MCP Tools

ToolDescription
search_entra_newsSemantic + keyword hybrid search over all issues. Returns sourced excerpts.
get_issueRetrieve the full content of a specific issue by number or date.
list_issuesBrowse the archive with optional year/month filtering.
find_tool_mentionsDiscover community tools and GitHub projects mentioned in the archive.

Example queries

  • "What did Entra.news cover about Conditional Access in 2024?"
  • "Show me the issue from March 2025"
  • "What PowerShell tools for Entra have been mentioned?"
  • "Has there been coverage of Verified ID?"
  • "List all issues from 2024"

Architecture

Substack API (entra.news/api/v1/posts)    │    ▼Node.js ingestion script  ←  OpenAI text-embedding-3-small    │    ▼SQLite (chunks + embeddings, ~15–20 MB)    │    ▼GitHub Release asset  ──→  NPX MCP Server                               └─ Downloads DB on first run                               └─ Checks for updates weekly                               └─ In-memory vector similarity + keyword search

Cost: ~$0.01/week (embeddings on new issues only). Zero hosting.


Running the Ingestion Pipeline

Note: You only need to do this if you're maintaining your own fork or building the initial index. End users just run npx entra-news-mcp — the database is downloaded automatically.

Prerequisites

  • Node.js 22+
  • An OpenAI API key (text-embedding-3-small access)

Full ingest (first time)

powershell
# Set your API key$env:OPENAI_API_KEY = "sk-..."
# Run the ingestion pipeline./scripts/ingest.ps1

Or directly with Node.js:

bash
export OPENAI_API_KEY=sk-...npm install && npm run buildnode dist/scripts/ingest.js

Incremental update (new issues only)

powershell
./scripts/ingest.ps1 -Incremental
bash
node dist/scripts/ingest.js --incremental

The output database (entra-news.db) should then be uploaded as a GitHub Release asset — the GitHub Actions workflow handles this automatically on a weekly schedule.


Automated Weekly Updates

A GitHub Actions workflow (.github/workflows/weekly-update.yml) runs every Monday at 9am Sydney time (Sunday 23:00 UTC), shortly after each new Entra.news issue is published:

  1. Downloads the current database from GitHub Releases
  2. Runs the incremental ingestion pipeline
  3. Publishes the updated database as a new GitHub Release

Required secret: Add OPENAI_API_KEY to your repository secrets (Settings → Secrets).


Releasing (npm + MCP Registry)

Publishing is automated by .github/workflows/publish-mcp.yml, triggered by pushing a v* tag. Authentication is tokenless (OIDC) for both npm (Trusted Publishing) and the MCP Registry.

  1. Bump the version in package.json and server.json (both version fields) — the workflow fails if they don't match the tag
  2. Commit, then tag and push — deriving the tag from package.json so it always matches the workflow's version gate:
bash
VERSION=$(node -p "require('./package.json').version")git tag "v$VERSION"git push origin main "v$VERSION"

The workflow builds, publishes to npm (with provenance), and publishes the new version to the MCP Registry.


Development

bash
npm installnpm run build          # Compile TypeScriptnpm start              # Run the MCP server

Project structure

src/  index.ts             # Entry point  server.ts            # MCP server + tool registration  db/    client.ts          # SQLite client — DB download/cache + search  tools/    search.ts          # search_entra_news tool    get-issue.ts       # get_issue tool    list-issues.ts     # list_issues tool    find-tool-mentions.ts  # find_tool_mentions tool  utils/    embeddings.ts      # OpenAI embedding helperscripts/  ingest.ts            # Full ingestion pipeline (TypeScript)  ingest.ps1           # PowerShell wrapper for ingestion.github/workflows/  weekly-update.yml    # Automated weekly update

Permissions & Content

The Entra.news content is © Merill Fernando & Joshua Fernando. This tool accesses the publicly available Substack API (not scraping) and is intended for personal/community use. Please reach out to [email protected] before any public deployment.


Author

Built by Darren Robinson.

Entra.news by Merill Fernando.

Source: README.md at commit 9485d02

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.5LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts