Horizon
An MCP server for a personal news pipeline: fetch, score, filter and summarize news through tools an agent can call
Medium risk
We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.
Why this level
- Reaches external LLM providers and news sources over the network
- Requires API keys in .env, some of the services are paid
Install
Manual install
git clone https://github.com/Thysrael/Horizon.git
cd Horizon
uv syncClone the repository and install dependencies via uv
This is third-party code. Review the repository files before installing.
What it does
Horizon is a personal news pipeline: it fetches items from sources, scores them, filters, enriches and generates a summary. The built-in MCP server (the horizon-mcp command) does not duplicate this logic, it wraps the same modules as separate tools: hz_fetch_items, hz_score_items, hz_filter_items, hz_enrich_items, hz_generate_summary, hz_run_pipeline for the whole pipeline at once, plus hz_list_runs, hz_get_run_meta, hz_get_run_stage, hz_get_run_summary, hz_get_metrics and hz_validate_config. The server runs over stdio, and each run's output is saved under data/mcp-runs.
Who it is for. For people who want an agent to assemble a personal news digest instead of manually running and configuring the whole Horizon pipeline.
Good fit when
- You want an agent to fetch and summarize fresh news per your Horizon configuration
- You need to inspect or resume a specific pipeline stage instead of rerunning everything
- You want to validate the configuration and environment variables before a run
Not a fit when
- You need a ready hosted news reader without any setup
- You cannot obtain a key for at least one LLM provider
Example request
Fetch a fresh batch of AI news and put together a short summaryLimitations
Requires Python and uv for setup (uv sync); the MCP server itself starts with uv run horizon-mcp. The pipeline needs at least one LLM provider key from .env.example (Anthropic, OpenAI, Azure OpenAI, Google, MiniMax, DashScope, Doubao or DeepSeek). Twitter scraping separately needs an Apify token, and a GitHub token is optional and only raises the request rate limit.
How to disable. Remove the horizon MCP server entry from the agent's configuration and stop the uv run horizon-mcp process.
MCP
- Transport
- stdio
- Authentication
- not required
| Environment variables | |
|---|---|
| ANTHROPIC_API_KEY secret | Anthropic key for the pipeline's LLM stages, at least one provider key from the list is required |
| OPENAI_API_KEY secret | OpenAI key as an alternative LLM provider |
| APIFY_TOKEN secret | Apify token, required only for Twitter scraping |
| GITHUB_TOKEN secret | GitHub token to raise the request rate limit for sources |
Security check
- Reaches external LLM providers and news sources over the network
- Requires API keys in .env, some of the services are paid
README in short
The README describes Horizon as a personal news radar with its own fetch, score, filter, enrich and summarize pipeline that publishes a daily digest. The separate MCP layer documentation (src/mcp/README.md) explains that the server reuses the main codebase's business logic as a set of tools and read-only resources, runs over stdio, and saves each run's artifacts to disk. MIT licensed.
FAQ
What languages does the summary come in?
Per the project description, daily briefings are generated in English and Chinese.
Do you need a key for every news source?
No, only one LLM provider key from .env.example is mandatory. The Apify token is needed only for Twitter scraping, and the GitHub token is optional.
Related
An MCP server with n8n node and template knowledge: the agent picks nodes, validates configs and, with API access, creates workflows in your n8n
Zapier's official MCP plugin: the agent gets actions across thousands of apps through your Zapier account
Awesome Claude Skills by Composio
Awesome Claude Skills
A curated list of Claude skills and plugins, plus Composio's own automation skills for 78 SaaS apps
A plugin and CLI catalog for agents: generates command-line interfaces for GUI apps like GIMP and Blender and installs ready ones via CLI-Hub