safari-bookmarks-mcp
Manage Safari bookmarks through an MCP server or CLI.
Built on safari-bookmarks-cli by Marty (evilmarty), extended with MCP support and modern tooling. Apache 2.0.
macOS note: 10.14+ requires Full Disk Access for the terminal app you're running from.
MCP server
Add to your client config — uvx handles installation automatically:
.mcp.json (Claude Code, project scope):
{
"mcpServers": {
"safari-bookmarks": {
"command": "uvx",
"args": ["safari-bookmarks-mcp", "--file", "~/Library/Safari/Bookmarks.plist"]
}
}
}
Or use the bootstrap command to generate config for Claude Code, OpenCode, Codex, and Gemini:
uvx safari-bookmarks-mcp bootstrap --client claude --client opencode --scope local --write
Scopes: local (project-level), global (user-level), both.
Server flags:
--readonly— block all write operations--confirm-write— allow writes (default requiresdry_run=Trueper call)
Tools: list_bookmarks, search_bookmarks, snapshot, add_bookmark, add_folder, move_item, remove_item, edit_item, empty_folder. All write tools accept dry_run=True to preview changes without saving.
CLI
uvx --from safari-bookmarks-mcp safari-bookmarks --help
safari-bookmarks list
safari-bookmarks list "BookmarksMenu"
safari-bookmarks add --title "Example" --url "http://example.com" "BookmarksMenu"
safari-bookmarks add --title "New Folder" --list "BookmarksBar"
safari-bookmarks move "BookmarksMenu" "Example" --to "BookmarksBar" "New Folder"
safari-bookmarks remove "BookmarksBar" "New Folder"
safari-bookmarks empty "BookmarksBar" "New Folder"
Default file: ~/Library/Safari/Bookmarks.plist. Override with -f <path>.
Development
git clone https://github.com/chikingsley/safari-bookmarks-mcp.git
just setup # create .venv and install deps
just check # ruff + ty + pytest
Metadata
Release files for safari-bookmarks-mcp 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| safari_bookmarks_mcp-0.6.2.tar.gz | 18.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| safari_bookmarks_mcp-0.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.4 kB
Release files / safari_bookmarks_mcp-0.6.2.tar.gz
| Download URL | safari_bookmarks_mcp-0.6.2.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c15f582ebf9c849a35be0ab639a43293589509861998f01d799cd0989618c16b
|
|
BLAKE2b-256 checksum How to use checksums |
c84f96df50cc121dd10c1258a0de3a8b28cbe8a69060a500b189d01f8d1ff75f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / safari_bookmarks_mcp-0.6.2-py3-none-any.whl
| Download URL | safari_bookmarks_mcp-0.6.2-py3-none-any.whl |
|---|---|
| Size | 20.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
90d079bde713a8f65866080cc4c44903598f0f09c42b58ec36fee0b8da840cb1
|
|
BLAKE2b-256 checksum How to use checksums |
4bf5de14fa7fb8a6ff9991ce9ec2bee840a82525e6816644c080ca11c3db7801
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for safari-bookmarks-mcp 0.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.