MCP server for global tech & AI signal intelligence via HackerNews, arXiv, Lobste.rs and GitHub
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http
verified
reported
listed in the official MCP registry counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
arxiv_latest
-
arxiv_search
-
github_trending_ai
-
hn_discussion
-
hn_top_stories
-
lobsters_hot
-
tech_signal_digest
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 07d6277 · analyzer v33 · 1w ago
skills & prompt files 1
- agent-rules malkreide-hn-tech-signal-mcp-07d6277/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 10
filesystem 6
- fs (weak) malkreide-hn-tech-signal-mcp-07d6277/scripts/check_ruff_pin.py :35
import shutil - fs (weak) malkreide-hn-tech-signal-mcp-07d6277/scripts/check_version_sync.py :49
from pathlib import Path - fs (weak) malkreide-hn-tech-signal-mcp-07d6277/scripts/record_fixtures.py :48
from pathlib import Path - fs (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/fixture_data.py :3
Ein Loader statt `open()` an jeder Stelle: so gibt es genau einen Ort, der weiss, - fs (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/test_recorded_fixtures.py :529
from pathlib import Path - fs (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/test_server.py :88
from pathlib import Path
shell / exec 1
- shell (weak) malkreide-hn-tech-signal-mcp-07d6277/scripts/check_ruff_pin.py :36
import subprocess
network 5
- net (weak) malkreide-hn-tech-signal-mcp-07d6277/scripts/record_fixtures.py :51
import httpx - net malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :35
from urllib.parse import urlsplit - net (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/test_recorded_fixtures.py :31
import httpx - net (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/test_retry_policy.py :18
import httpx - net (weak) malkreide-hn-tech-signal-mcp-07d6277/tests/test_server.py :13
import httpx
secrets 1
- secrets malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :262
token = os.environ.get("GITHUB_TOKEN")
tool registrations 7
- hn_top_stories malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :818
- hn_discussion malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :954
- arxiv_latest malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :1048
- arxiv_search malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :1105
- lobsters_hot malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :1162
- github_trending_ai malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :1234
- tech_signal_digest malkreide-hn-tech-signal-mcp-07d6277/src/hn_tech_signal_mcp/server.py :1354
declared dependencies 9
- mcp@>=2.0.0,<3
- httpx@>=0.27.0
- pydantic@>=2.0.0
- defusedxml@>=0.7.1
- pytest@>=8.0.0
- pytest-asyncio@>=0.23.0
- pytest-cov@>=5.0.0
- respx@>=0.21.0
- ruff@==0.16.1