github Python re-analysis due

malkreide/hn-tech-signal-mcp

github

MCP server for global tech & AI signal intelligence via HackerNews, arXiv, Lobste.rs and GitHub

maintainer
malkreide
license
MIT
first seen
2026-06-04
last seen
2026-08-25
releases · 30d
3
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 7 tools
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
skills & danger signals github-tarball
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

code evidence vv0.4.1 · github-tarball
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