Personal Assistant MCP Server

Personal Assistant MCP Server

A FastMCP server that exposes tools for news aggregation, financial market data, fitness tracking, Spotify music data, and email notifications, usable directly from Claude via the Model Context Protocol.

Category
访问服务器

README

Personal Assistant MCP Server

A FastMCP server that exposes tools for news aggregation, financial market data, fitness tracking, Spotify music data, and email notifications — usable directly from Claude via the Model Context Protocol.

Also includes a daily newsletter that automatically emails a formatted digest of market data and news each morning via GitHub Actions.

Features

  • News: Multi-source aggregation via NewsAPI and RSS (Times of Israel, Ynet, Hacker News, TechCrunch, The Verge, NPR, BBC)
  • Finance: Real-time ETF/stock prices and weekly performance via Yahoo Finance
  • Fitness: Strava integration for recent activities and weekly training summaries
  • Music: Spotify integration for top tracks and top podcasts based on recent listening
  • Email: Gmail SMTP notifications with HTML support
  • Daily Newsletter: Scheduled HTML digest email sent every morning at 7:00 AM UTC

Tools Exposed via MCP

Tool Description
send_email Send an email via Gmail SMTP
fetch_news Fetch top headlines from NewsAPI (optional query/category)
get_israeli_news Latest news from Israeli RSS sources
get_tech_news Latest tech news from RSS sources
get_daily_summary Combined snapshot of all news + market data
get_etf_price Current price and daily change for a ticker
get_market_snapshot Multi-ticker market overview
get_recent_activities Recent Strava activities
get_weekly_summary Weekly Strava training summary
get_top_tracks Top tracks from the last ~4 weeks via Spotify
get_top_podcasts Top podcasts ranked by recent play frequency via Spotify

Setup

Prerequisites

  • Python 3.12+
  • uv package manager
  • Gmail account with an App Password enabled
  • NewsAPI API key
  • (Optional) Strava API credentials
  • (Optional) Spotify app credentials (see Spotify Setup)

Install

uv sync

Usage

As an MCP Server (Claude integration)

The .mcp.json file registers this server with Claude Code automatically. Once configured, the tools above are available directly in your Claude conversations.

To start the server manually:

uv run python server.py

For SSE transport (HTTP server on port 9005):

MCP_TRANSPORT=sse uv run python server.py

Send a daily newsletter manually

uv run python on_demand.py

With timeout protection

uv run python safe_runner.py

Inspect with MCP Inspector

npx @modelcontextprotocol/inspector uv run python server.py

Spotify Setup

Spotify requires OAuth — a one-time setup to obtain a refresh token.

1. Create a Spotify App

  1. Go to the Spotify Developer Dashboard and create an app.
  2. Under Edit Settings, add http://127.0.0.1:8888/callback as a Redirect URI.
  3. Copy your Client ID and Client Secret into .env:
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret

2. Get a Refresh Token

Run the one-time authorization script:

uv run tools/spotify/get_refresh_token.py

This opens a browser tab for Spotify authorization. After you approve, the script prints your refresh token. Add it to .env:

SPOTIFY_REFRESH_TOKEN=your_refresh_token

The required OAuth scopes are user-top-read and user-read-recently-played.

Tools

Tool Scope required Description
get_top_tracks user-top-read Top tracks over the last ~4 weeks, ranked by Spotify
get_top_podcasts user-read-recently-played Top podcast shows ranked by episode play count in the last 50 recently-played items

Daily Newsletter (GitHub Actions)

The workflow at .github/workflows/daily-newsletter.yml runs every day at 7:00 AM UTC and sends an HTML email digest containing:

  • Market snapshot with daily and weekly performance for key ETFs
  • Israeli news highlights
  • World news highlights
  • Tech news highlights

Development

# Lint
uv run ruff check . --fix

# Run tests
uv run pytest

Tests cover internal utilities and data transformations. Mock tests for external APIs (NewsAPI, Yahoo Finance, Strava) are intentionally avoided — see .claude/CLAUDE.md for rationale.

Project Structure

├── server.py             # FastMCP server entry point
├── on_demand.py          # Daily newsletter generator
├── email_sender.py       # Gmail SMTP client
├── safe_runner.py        # Timeout-protected newsletter runner
├── logging_config.py     # Structured JSON logging
├── cost_estimate.py      # Monthly cloud cost estimator
├── tools/
│   ├── news/
│   │   ├── news.py       # RSS + NewsAPI aggregation
│   │   └── on_demand.py  # Manual newsletter trigger
│   ├── spotify/
│   │   ├── spotify.py          # Spotify API integration
│   │   ├── get_refresh_token.py # One-time OAuth token setup
│   │   └── on_demand.py        # Manual Spotify runner
│   ├── finance.py        # Yahoo Finance integration
│   ├── strava.py         # Strava API integration
│   └── daily_summary.py  # Aggregated daily snapshot
├── tests/                # Unit tests
└── .github/workflows/    # GitHub Actions

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选