mcp-news-sentiment-analyzer
Search Google News and analyze sentiment through a fixed tool chain, returning JSON, Markdown reports, and final summaries.
README
MCP News Sentiment Analyzer
以 Python 與 Model Context Protocol(MCP)SDK 2.x 建立的新聞搜尋與情緒分析練習專案。使用者輸入自然語言問題後,MCP Client 會依固定工具鏈呼叫新聞搜尋與情緒分析工具,並輸出 JSON、Markdown 報告與最終摘要。
專案特色
- 使用 MCP SDK 2.x 的
MCPServer與高階Client - 透過 stdio 在本機 Client 與 Server 之間通訊
- 使用 Serper API 搜尋 Google News
- 透過 Groq 的 OpenAI-compatible API 進行情緒分析
- 強制執行「搜尋 → 驗證 → 分析 → 摘要」流程,避免模型跳過工具
- 搜尋失敗時立即中止,不會把錯誤訊息當成新聞分析
- 支援繁體與簡體中文查詢關鍵字
- 自動輸出新聞 JSON、情緒分析 Markdown 與對話記錄
- API Key 透過
.env管理,不會提交到版本控制
執行流程
使用者問題
↓
MCP Client(client.py)
↓ stdio
MCP Server(server.py)
↓
search_google_news → Serper API
↓ 搜尋成功才繼續
analyze_sentiment → Groq API
↓
Markdown 報告與最終繁體中文摘要
使用技術
- Python 3.10+(開發與測試環境為 Python 3.13)
- Model Context Protocol Python SDK 2.x
- Groq API
- Serper API
- OpenAI Python SDK
- HTTPX
- python-dotenv
專案結構
mcp-project/
├── client.py # MCP Client、固定工具鏈與命令列介面
├── server.py # MCP Server 與新聞/情緒分析工具
├── pyproject.toml # Python 專案及依賴設定
├── .env.example # 不含秘密資訊的環境變數範例
├── .gitignore # 忽略秘密、虛擬環境及執行輸出
├── examples/ # 經人工檢查、可公開的成功輸出範例
│ ├── white-dolphin-news.json
│ ├── white-dolphin-sentiment-report.md
│ └── white-dolphin-final-response.txt
├── google_news/ # 執行時產生,不提交 Git
├── sentiment_reports/ # 執行時產生,不提交 Git
└── llm_outputs/ # 執行時產生,不提交 Git
安裝
1. 複製專案
git clone https://github.com/YOUR_USERNAME/mcp-news-sentiment-analyzer.git
cd mcp-news-sentiment-analyzer
2. 建立並啟用虛擬環境
python -m venv .venv
.\.venv\Scripts\Activate.ps1
若 PowerShell 阻擋腳本,可只針對目前 Terminal 暫時允許:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
3. 安裝依賴
python -m pip install --upgrade pip
python -m pip install .
4. 設定環境變數
複製範例檔:
Copy-Item .env.example .env
編輯 .env:
DASHSCOPE_API_KEY=your_groq_api_key
BASE_URL=https://api.groq.com/openai/v1
MODEL=openai/gpt-oss-20b
SERPER_API_KEY=your_serper_api_key
DASHSCOPE_API_KEY 是原教學沿用的變數名稱;本專案目前在其中放置 Groq API Key。
執行
在專案根目錄執行:
python client.py
範例問題:
查詢白海豚的新聞,並分析情緒
輸入 quit 可結束程式。
輸出
程式執行後會建立:
google_news/*.json:Serper 新聞搜尋結果sentiment_reports/*.md:Groq 產生的情緒分析報告llm_outputs/*.txt:最終模型摘要與對話記錄
自動產生的檔案不會提交 Git;經人工確認且適合公開的成果放在 examples:
安全與限制
- 請勿提交
.env或在程式碼中寫死 API Key。 - Serper 與 Groq 的免費額度及速率限制可能變動。
- 情緒分析由生成式模型完成,結果可能因模型版本及輸入內容而異。
- 本專案目前將寄信工具保留在程式碼中,但未註冊為 MCP 工具。
- 本專案用於學習與作品展示,不建議未經額外驗證直接用於生產環境。
履歷摘要範例
使用 Python 與 MCP SDK 2.x 建立新聞搜尋及情緒分析工具鏈,整合 Serper 與 Groq API,實作確定性工具串接、錯誤中止、秘密資訊管理及 JSON/Markdown 報告輸出。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。