io.github.darrenjrobinson/entra-news
内容与创意by darrenjrobinson
搜索 Entra.news newsletter 历史归档,获取每周汇总的 Microsoft Entra 新闻内容。
什么是 io.github.darrenjrobinson/entra-news?
搜索 Entra.news newsletter 历史归档,获取每周汇总的 Microsoft Entra 新闻内容。
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.
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):
{
"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
{
"mcpServers": {
"entra-news-mcp": {
"command": "npx",
"args": ["-y", "entra-news-mcp"]
}
}
}
Semantic Search (Optional)
By default the server uses keyword search (BM25 via FTS5). For significantly better result quality, set your OpenAI API key:
{
"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:
| Platform | Cache 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):
Remove-Item "$env:USERPROFILE\.entra-news-mcp" -Recurse -Force
macOS / Linux:
rm -rf ~/.entra-news-mcp
Available MCP Tools
| Tool | Description |
|---|---|
search_entra_news | Semantic + keyword hybrid search over all issues. Returns sourced excerpts. |
get_issue | Retrieve the full content of a specific issue by number or date. |
list_issues | Browse the archive with optional year/month filtering. |
find_tool_mentions | Discover 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 + sqlite-vec (~15–20 MB)
│
▼
GitHub Release asset ──→ NPX MCP Server
└─ Downloads DB on first run
└─ Checks for updates weekly
└─ Local vector + FTS 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-smallaccess)
Full ingest (first time)
# Set your API key
$env:OPENAI_API_KEY = "sk-..."
# Run the ingestion pipeline
./scripts/ingest.ps1
Or directly with Node.js:
export OPENAI_API_KEY=sk-...
npm install && npm run build
node dist/scripts/ingest.js
Incremental update (new issues only)
./scripts/ingest.ps1 -Incremental
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 Sunday at 14:00 UTC:
- Downloads the current database from GitHub Releases
- Runs the incremental ingestion pipeline
- Publishes the updated database as a new GitHub Release
Required secret: Add OPENAI_API_KEY to your repository secrets (Settings → Secrets).
Development
npm install
npm run build # Compile TypeScript
npm start # Run the MCP server
Project structure
src/
index.ts # Entry point
server.ts # MCP server + tool registration
db/
client.ts # SQLite + sqlite-vec client, DB download/cache
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 helper
scripts/
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 hey@entra.news before any public deployment.
Author
Built by Darren Robinson.
Entra.news by Merill Fernando.
常见问题
io.github.darrenjrobinson/entra-news 是什么?
搜索 Entra.news newsletter 历史归档,获取每周汇总的 Microsoft Entra 新闻内容。
相关 Skills
文档共著
by anthropics
围绕文档、提案、技术规格、决策记录等写作任务,按上下文收集、结构迭代、读者测试三步协作共创,减少信息遗漏,写出更清晰、经得起他人阅读的内容。
✎ 写文档、方案或技术规格时容易思路散、信息漏,它用结构化共著流程帮你高效传递上下文、反复打磨内容,还能从读者视角做验证。
内部沟通
by anthropics
按公司常用模板和语气快速起草内部沟通内容,覆盖 3P 更新、状态报告、领导汇报、项目进展、事故复盘、FAQ 与 newsletter,适合需要统一格式的团队沟通场景。
✎ 按公司偏好的模板快速产出状态汇报、领导更新和 FAQ,既省去反复改稿,也让内部沟通更统一、更专业。
平面设计
by anthropics
先生成视觉哲学,再落地成原创海报、艺术画面或其他静态设计,输出 .png/.pdf,强调构图、色彩与空间表达,适合需要高完成度视觉成品的场景。
✎ 做海报、插画或静态视觉稿时,用它能快速产出兼顾美感与版式的PNG/PDF成品,原创设计更省心,也更适合规避版权风险。
相关 MCP Server
by nirholas
免费的加密新闻聚合 MCP,汇集 Bitcoin、Ethereum、DeFi、Solana 与 altcoins 资讯源。
by alisaitteke
用于Adobe Photoshop自动化的MCP server,让AI assistants直接控制Photoshop。
by ProfessionalWiki
让 Large Language Model 客户端无缝连接任意 MediaWiki 站点,可创建、更新、搜索页面,并通过 OAuth 2.0 安全管理内容。