{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.mgcrea/mcp-apple-safari","description":"Read and act on Safari — history, tabs and reading list, writes off by default","title":"Apple Safari","repository":{"url":"https://github.com/mgcrea/cupertino","source":"github","subfolder":"packages/safari"},"version":"1.31.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.31.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Register the mutating tools. Off by default, and the gate decides whether the write tools exist at all rather than merely refusing — an agent with writes off cannot see them.","name":"APPLE_SAFARI_ALLOW_WRITES"},{"description":"Return one-time codes: a one-time-code field in apple_safari_page_elements, and apple_safari_find_codes for a code a page shows as text. Its own gate rather than allowWrites, because it is a read. Credential fields stay redacted whatever this says.","name":"APPLE_SAFARI_ALLOW_CODES"},{"description":"Register apple_safari_network_record, _list and _get, which record what a page you allowed the extension on fetches and read the responses. Its own gate rather than allowWrites, because it is a read; off means the tools do not exist. Headers named like credentials are masked, bodies are not. Reloading a tab to record and saving a body to a file still need APPLE_SAFARI_ALLOW_WRITES.","name":"APPLE_SAFARI_ALLOW_NETWORK"},{"description":"Where apple_safari_network_get's saveAs writes a file. Defaults to ~/Downloads. A name is kept to its basename and an existing file is never replaced unless asked.","name":"APPLE_SAFARI_DOWNLOAD_DIR"},{"description":"Characters of a body the server asks the page for per command when it reads a large body. Defaults to 262144, which was measured to work; how far above that Safari's native-message channel goes is unmeasured.","name":"APPLE_SAFARI_NETWORK_CHUNK_CHARS"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-25T14:56:25.142037Z","publishedAt":"2026-10-25T14:56:25.142037Z","updatedAt":"2026-10-25T14:56:25.142037Z","isLatest":false}}}
