Hn Tech Signal Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Hn Tech Signal 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.
🇨🇭 Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)
MCP server for global tech & AI signal intelligence — aggregates HackerNews, arXiv, Lobste.rs and GitHub into a structured briefing. No API key required.
Demo: Claude using tech_signal_digest across arXiv, HackerNews and GitHub
hn-tech-signal-mcp turns any AI assistant into a proactive tech intelligence analyst. The server aggregates four signal layers — research frontier, developer discourse, curated signal, and open-source practice — into a single, structured briefing.
No authentication required. All four data sources are public APIs. Optional: set GITHUB_TOKEN for higher GitHub rate limits (5,000 req/h vs. 60 req/h unauthenticated).
Anchor demo query: "Give me a tech signal digest on AI today — what is happening in research, developer discourse and open source?"
FRONTIER arXiv API → Latest AI/ML papers (cs.AI, cs.LG, cs.CL, cs.CV)
DISCOURSE HackerNews → Top/best stories + Algolia full-text search
Lobste.rs → Curated, lower-noise tech signal
PRACTICE GitHub Search → What engineers are actually building right nowThink of the four layers as a radar: arXiv shows what's coming over the horizon, HN and Lobste.rs show what practitioners are discussing, and GitHub shows what teams are actually shipping.
| # | Tool | Source | Description |
|---|---|---|---|
| 1 | hn_top_stories | HackerNews | Top/best/new stories, with optional AI filter |
| 2 | hn_search | HN Algolia | Full-text search across all HN history |
| 3 | arxiv_latest | arXiv | Latest papers by category (cs.AI etc.) |
| 4 | arxiv_search | arXiv | Search papers by keyword/title/author |
| 5 | lobsters_hot | Lobste.rs | Curated tech stories, filterable by tag |
| 6 | github_trending_ai | GitHub | Trending AI repos by topic and stars |
| 7 | tech_signal_digest | All sources | Aggregated Markdown briefing |
uv or pipGITHUB_TOKEN for higher GitHub rate limits# Recommended: uvx (no install step needed)
uvx hn-tech-signal-mcp
# Alternative: pip
pip install hn-tech-signal-mcp# Start the server (stdio mode for Claude Desktop)
uvx hn-tech-signal-mcp
# With optional GitHub token for higher rate limits
GITHUB_TOKEN=ghp_yourtoken uvx hn-tech-signal-mcpTry immediately in Claude Desktop:
"Give me a tech signal digest on AI today" "What are the latest cs.AI papers from the last 48 hours?" "What is HackerNews discussing about MCP this week?" "Show me trending GitHub repos for the topic 'ai-agents'"
| Variable | Default | Description |
|---|---|---|
GITHUB_TOKEN | – | Optional. GitHub personal access token. Without it: 60 req/h. With it: 5,000 req/h. The token is only sent to api.github.com, never to other upstreams. |
MCP_TRANSPORT | stdio | Transport: stdio or streamable_http |
MCP_HOST | 127.0.0.1 | Bind host for HTTP transport. Non-loopback values require MCP_BEARER_TOKEN. |
MCP_PORT | 8000 | Port for HTTP transport |
MCP_BEARER_TOKEN | – | Required when MCP_HOST is not loopback. Shared secret to gate the HTTP endpoint. |
{
"mcpServers": {
"hn-tech-signal": {
"command": "uvx",
"args": ["hn-tech-signal-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_yourtoken_optional"
}
}
}
}Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAfter restarting Claude Desktop, all 7 tools are available.
For use via claude.ai in the browser (e.g. on managed workstations):
Render.com (recommended):
GITHUB_TOKEN in the Render dashboardhttps://your-app.onrender.com/mcp# Local HTTP mode (binds 127.0.0.1 by default)
MCP_TRANSPORT=streamable_http MCP_PORT=8000 python -m hn_tech_signal_mcp.server
# Public bind (requires bearer token, intended behind a reverse proxy that terminates TLS)
MCP_TRANSPORT=streamable_http \
MCP_HOST=0.0.0.0 \
MCP_BEARER_TOKEN="$(openssl rand -hex 32)" \
python -m hn_tech_signal_mcp.serverHardening: the server refuses to bind to non-loopback hosts unlessMCP_BEARER_TOKENis set. Run cloud deployments behind a TLS-terminating reverse proxy (Render, Fly, Caddy, …) and treatMCP_BEARER_TOKENas the shared client secret your proxy enforces.
┌─────────────────┐ ┌─────────────────────────────────┐ ┌───────────────────────┐
│ Claude / AI │────▶│ HN Tech Signal MCP │────▶│ HackerNews Firebase │
│ (MCP Host) │◀────│ (MCP Server) │────▶│ HN Algolia Search │
└─────────────────┘ │ │────▶│ arXiv.org (Atom API) │
│ 7 Tools │────▶│ Lobste.rs JSON API │
│ Stdio | Streamable HTTP │────▶│ GitHub Search API │
└─────────────────────────────────┘ └───────────────────────┘hn-tech-signal-mcp/
├── src/
│ └── hn_tech_signal_mcp/
│ ├── __init__.py
│ └── server.py # All 7 tools
├── tests/
│ ├── __init__.py
│ └── test_server.py # 21 unit + 5 live tests
├── pyproject.toml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md # This file (English)
└── README.de.md # German version# Unit tests (no network required)
PYTHONPATH=src pytest tests/ -m "not live"
# Live integration tests (requires network)
PYTHONPATH=src pytest tests/ -m "live""Give me a tech signal digest on AI today"
→ tech_signal_digest(focus="AI")
"What are the top 5 arXiv papers on LLM agents this week?"
→ arxiv_search(query="LLM agents", category_filter="cs.AI", limit=5)
"What is HackerNews discussing about model context protocol?"
→ hn_search(query="model context protocol", days_back=30)"Show me the latest NLP papers from arXiv"
→ arxiv_latest(category="cs.CL", limit=10)
"Search arXiv for papers on retrieval-augmented generation"
→ arxiv_search(query="retrieval augmented generation RAG", limit=10)"What AI agent frameworks are trending on GitHub?"
→ github_trending_ai(topic="ai-agents", sort="updated", limit=10)
"Show me the most starred MCP-related repos"
→ github_trending_ai(topic="mcp", sort="stars", min_stars=50)
[→ More use cases by audience →](EXAMPLES.md)| Category | Full Name | Key Topics |
|---|---|---|
cs.AI | Artificial Intelligence | Agents, planning, knowledge representation |
cs.LG | Machine Learning | Training, optimisation, generalisation |
cs.CL | Computation & Language | NLP, LLMs, translation, summarisation |
cs.CV | Computer Vision | Image recognition, generation, multimodal |
cs.RO | Robotics | Embodied AI, navigation |
stat.ML | Statistics ML | Probabilistic methods, Bayesian ML |
| Source | Auth Required | Limit |
|---|---|---|
| HackerNews Firebase | No | Very generous (Firebase) |
| HN Algolia Search | No | ~10,000 req/hour |
| arXiv | No | ~3 req/second (be respectful) |
| Lobste.rs | No | Reasonable use |
| GitHub Search | No | 60 req/hour |
| GitHub Search | GITHUB_TOKEN | 5,000 req/hour |
GITHUB_TOKEN for production use.hn-tech-signal-mcp combines well with:
| Combination | Use Case |
|---|---|
+ news-monitor-mcp | Global research + Swiss institutional media coverage |
+ fedlex-mcp | Tech discourse + Swiss regulatory context |
+ global-education-mcp | AI research trends + education policy data |
+ swiss-statistics-mcp | Tech landscape + Swiss economic/structural data |
GITHUB_TOKEN. A request timeout is enforced per call.See CHANGELOG.md
MIT License — see LICENSE
Hayal Oezkan · malkreide
<!-- mcp-name: io.github.malkreide/hn-tech-signal-mcp -->
<!-- BEGIN GENERATED: install -->
Run via uv's uvx — no clone or manual install needed. Add to your MCP client config (mcpServers for Claude Desktop, Cursor and Windsurf; use a top-level servers key for VS Code in .vscode/mcp.json):
{
"mcpServers": {
"hn-tech-signal-mcp": {
"command": "uvx",
"args": [
"hn-tech-signal-mcp"
]
}
}
}<!-- END GENERATED: install -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.