Metadata-Version: 2.4
Name: efn-mcp
Version: 0.1.0
Summary: MCP server for EFN (Ekonomikanalen) - Swedish financial news, expert analysis, and market commentary
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: defusedxml>=0.7.1
Requires-Dist: fastmcp==3.0.0b1
Requires-Dist: httpx<1.0,>=0.28.1
Requires-Dist: lxml>=5.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: tenacity>=9.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: respx>=0.21.0; extra == 'dev'
Description-Content-Type: text/markdown

# EFN MCP Server

A Model Context Protocol (MCP) server providing access to EFN's (Ekonomikanalen och Finansmagasinet) Swedish financial news, expert analysis, and market commentary.

**Designed to complement [avanza-mcp](https://github.com/AnteWall/avanza-mcp)** — while Avanza MCP provides quantitative market data (prices, charts, financials), EFN MCP provides the qualitative editorial layer (news, analysis, commentary).

## 🚀 Features

- Latest financial news from Sweden's leading business outlet
- Expert columns, commentary, and market analysis
- Analyst stock recommendations ("aktierekar")
- Quarterly report commentary
- Video episodes (Börslunch) and podcast episodes
- 80+ topic categories for filtered news

## ⚠️ Disclaimer

This is an unofficial tool. Not affiliated with EFN Ekonomikanalen AB. Content is EFN's copyrighted material accessed via their public RSS feed and website. The underlying data sources can change without warning.

## Installation for MCP Clients

<details>
<summary>Claude Desktop</summary>

Add the following to your Claude Desktop MCP configuration file:

```json
{
  "mcpServers": {
    "efn": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/andersc/efn_mcp.git", "--prerelease=allow", "efn-mcp"]
    }
  }
}
```
Restart Claude Desktop after saving the configuration.
</details>

<details>
<summary>Cursor / VS Code</summary>

```json
{
  "mcpServers": {
    "efn": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/andersc/efn_mcp.git", "--prerelease=allow", "efn-mcp"]
    }
  }
}
```
</details>

> **Note:** The `--prerelease=allow` flag is required because this package depends on fastmcp 3.0 (currently in beta). This will no longer be needed once fastmcp 3.0 stable is released.

## 🛠️ MCP Tools

### News & Articles
| Tool | Description |
|------|-------------|
| `get_latest_news` | Latest news articles (optionally filtered by category) |
| `get_article` | Full article text by URL slug |
| `get_breaking_news` | Most recent articles from news sitemap |
| `search_news_by_topic` | Articles for a specific topic/category |
| `list_categories` | All 80+ available news categories |

### Expert Analysis
| Tool | Description |
|------|-------------|
| `get_analyst_picks` | Stock recommendations ("aktierekar") |
| `get_market_commentary` | Expert columns and commentary |
| `get_report_commentary` | Quarterly earnings analysis |

### Video & Podcasts
| Tool | Description |
|------|-------------|
| `get_play_episodes` | Börslunch and other video episodes |
| `get_podcast_episodes` | Podcast episodes (Börssurr, Mammons Rike, etc.) |

## 💡 MCP Prompts

| Prompt | Description |
|--------|-------------|
| `market_news_briefing` | Generate a morning market news briefing |
| `company_news_roundup` | Collect recent news about a specific company |
| `sector_news_analysis` | Analyze news for a specific sector |

## 📚 MCP Resources

| Resource | Description |
|----------|-------------|
| `efn://docs/usage` | Comprehensive usage guide |
| `efn://docs/quick-start` | Quick reference card |

## 🤝 Using with Avanza MCP

The real power comes from using both MCPs together:

```
User: "What's happening with Volvo today?"

→ Avanza MCP: get_stock_quote → Current price, volume, change
→ EFN MCP: get_latest_news → Breaking news about Volvo
→ EFN MCP: get_article → Full article text for context
→ Combined: Complete picture with data + narrative
```

## 📄 License

MIT License - See [LICENSE](LICENSE) for details.
