Skip to main content
Glama
mcallaway

safari-reading-list-mcp

by mcallaway
README.md
# safari-reading-list-mcp

An Anthropic MCP server project for Apple Safari Reading List workflows on macOS.

This repository now provides a working MCP server and CLI for exporting Safari Reading List data to JSON.

## Project Status

- Feature 001 is complete: export Safari Reading List entries (all, default week, custom range).
- MCP server entrypoint is active via `main.py` and `safari_reading_list_mcp/server.py`.
- CLI entrypoint `srl` is available with export and serve commands.
- Quality checks are automated with mise tasks for lint, type checks, and tests.

## Goals

- Expose MCP tools/resources to read and export Safari Reading List items.
- Support adding new items to Safari Reading List.
- Keep implementation and decisions documented for durable project memory.

## Requirements

- macOS (Safari Reading List target platform)
- Python 3.14
- `uv`
- Optional: `mise` for tool version management

## Quick Start

1. Install dependencies:
   - `uv sync`
2. Run MCP server (stdio transport):
   - `uv run python main.py`
3. Use CLI:
   - `srl --help`
4. Run all checks:
   - `mise run test:all`

## Repository Layout

- `main.py` - runtime entrypoint that starts the MCP server
- `safari_reading_list_mcp/` - implementation modules (server, service, adapter, time/filter/export helpers, CLI)
- `pyproject.toml` - project metadata and dependencies
- `mise.toml` - local tool/runtime configuration
- `.mise/tasks/` - reusable project tasks (lint, types, unit, coverage)
- `AGENTS.md` - primary agent/human collaboration conventions
- `docs/` - project memory (plans, features, design, decisions, guides)
- `.github/prompts/` - reusable workflow prompts for agent sessions

## Development Workflow

Use the documentation cycle:

- define behavior in `docs/features/`
- create execution plans in `docs/plans/`
- capture hard-to-reverse decisions in `docs/decisions/`
- maintain architecture rationale in `docs/design/`
- keep practical usage notes in `docs/guides/`

For agent/human operating conventions, start with `AGENTS.md`.

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: exporting to file, listing by state, and marking an item. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (export_reading_list, list_reading_list_state, mark_reading_list_item) using snake_case.

Tool Count5/5

Three tools is well-scoped for a focused server that handles exporting, listing by state, and marking items in Safari Reading List.

Completeness4/5

The set covers essential operations for processing reading list items (export, list by state, mark status), but lacks a tool to add or delete entries, which might be desired for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues