{"servers":[{"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.10.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.10.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-02T21:11:17.784943Z","publishedAt":"2026-09-02T21:11:17.784943Z","updatedAt":"2026-09-02T21:11:17.784943Z","isLatest":false}}},{"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.11.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.11.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T12:58:02.635078Z","publishedAt":"2026-09-03T12:58:02.635078Z","updatedAt":"2026-09-03T12:58:02.635078Z","isLatest":false}}},{"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.12.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.12.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-03T17:18:05.632168Z","publishedAt":"2026-09-03T17:18:05.632168Z","updatedAt":"2026-09-03T17:18:05.632168Z","isLatest":false}}},{"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.13.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.13.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-04T12:19:52.698077Z","publishedAt":"2026-09-04T12:19:52.698077Z","updatedAt":"2026-09-04T12:19:52.698077Z","isLatest":false}}},{"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.14.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.14.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-04T21:42:42.503667Z","publishedAt":"2026-09-04T21:42:42.503667Z","updatedAt":"2026-09-04T21:42:42.503667Z","isLatest":false}}},{"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.15.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.15.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-05T22:52:26.87525Z","publishedAt":"2026-09-05T22:52:26.87525Z","updatedAt":"2026-09-05T22:52:26.87525Z","isLatest":false}}},{"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.16.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.16.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-06T10:42:01.894847Z","publishedAt":"2026-09-06T10:42:01.894847Z","updatedAt":"2026-09-06T10:42:01.894847Z","isLatest":false}}},{"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.17.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.17.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-07T15:06:43.547537Z","publishedAt":"2026-09-07T15:06:43.547537Z","updatedAt":"2026-09-07T15:06:43.547537Z","isLatest":false}}},{"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.18.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.18.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-07T20:11:35.328423Z","publishedAt":"2026-09-07T20:11:35.328423Z","updatedAt":"2026-09-07T20:11:35.328423Z","isLatest":false}}},{"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.19.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.19.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-08T11:51:16.829297Z","publishedAt":"2026-09-08T11:51:16.829297Z","updatedAt":"2026-09-08T11:51:16.829297Z","isLatest":false}}},{"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.19.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.19.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-08T15:03:33.231184Z","publishedAt":"2026-09-08T15:03:33.231184Z","updatedAt":"2026-09-08T15:03:33.231184Z","isLatest":false}}},{"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.20.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.20.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-08T21:05:46.350739Z","publishedAt":"2026-09-08T21:05:46.350739Z","updatedAt":"2026-09-08T21:05:46.350739Z","isLatest":false}}},{"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.20.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.20.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-09T11:40:53.560729Z","publishedAt":"2026-09-09T11:40:53.560729Z","updatedAt":"2026-09-09T11:40:53.560729Z","isLatest":false}}},{"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.21.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.21.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T15:11:05.610306Z","publishedAt":"2026-09-10T15:11:05.610306Z","updatedAt":"2026-09-10T15:11:05.610306Z","isLatest":false}}},{"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.21.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.21.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-11T21:27:28.443006Z","publishedAt":"2026-09-11T21:27:28.443006Z","updatedAt":"2026-09-11T21:27:28.443006Z","isLatest":false}}},{"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.22.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.22.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-16T13:34:55.560181Z","publishedAt":"2026-09-16T13:34:55.560181Z","updatedAt":"2026-09-16T13:34:55.560181Z","isLatest":false}}},{"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.23.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.23.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-19T09:28:57.219346Z","publishedAt":"2026-09-19T09:28:57.219346Z","updatedAt":"2026-09-19T09:28:57.219346Z","isLatest":false}}},{"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.24.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.24.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-26T20:00:09.693594Z","publishedAt":"2026-09-26T20:00:09.693594Z","updatedAt":"2026-09-26T20:00:09.693594Z","isLatest":false}}},{"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.24.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.24.1","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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-29T15:09:57.91473Z","publishedAt":"2026-09-29T15:09:57.91473Z","updatedAt":"2026-09-29T15:09:57.91473Z","isLatest":false}}},{"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.25.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.25.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-03T18:35:40.714861Z","publishedAt":"2026-10-03T18:35:40.714861Z","updatedAt":"2026-10-03T18:35:40.714861Z","isLatest":false}}},{"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.26.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.26.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-06T11:37:17.467433Z","publishedAt":"2026-10-06T11:37:17.467433Z","updatedAt":"2026-10-06T11:37:17.467433Z","isLatest":false}}},{"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.27.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.27.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-13T09:28:57.592769Z","publishedAt":"2026-10-13T09:28:57.592769Z","updatedAt":"2026-10-13T09:28:57.592769Z","isLatest":false}}},{"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.28.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.28.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"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-13T16:40:36.308639Z","publishedAt":"2026-10-13T16:40:36.308639Z","updatedAt":"2026-10-13T16:40:36.308639Z","isLatest":false}}},{"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.29.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.29.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-21T19:31:45.655589Z","publishedAt":"2026-10-21T19:31:45.655589Z","updatedAt":"2026-10-21T19:31:45.655589Z","isLatest":false}}},{"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.29.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.29.1","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-21T22:07:32.124979Z","publishedAt":"2026-10-21T22:07:32.124979Z","updatedAt":"2026-10-21T22:07:32.124979Z","isLatest":false}}},{"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.30.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.30.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-22T11:05:18.998649Z","publishedAt":"2026-10-22T11:05:18.998649Z","updatedAt":"2026-10-22T11:05:18.998649Z","isLatest":false}}},{"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}}},{"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.34.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.34.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-29T14:32:22.026998Z","publishedAt":"2026-10-29T14:32:22.026998Z","updatedAt":"2026-10-29T14:32:22.026998Z","isLatest":false}}},{"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.35.0","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.35.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":"Register apple_safari_cookies, which lists the cookies Safari would send to an open page, HttpOnly ones included, through the extension's cookies permission. Its own gate rather than allowWrites, because it is a read; off means the tool does not exist. Not enough on its own: only sites in APPLE_SAFARI_COOKIE_HOSTS are readable. Values never come back inline; saveAs writes named ones to a 0600 file and needs APPLE_SAFARI_ALLOW_WRITES.","name":"APPLE_SAFARI_ALLOW_COOKIES"},{"description":"Comma-separated registrable domains whose cookies apple_safari_cookies may read, like \"yahoo.com\"; each covers the domain and its subdomains. Empty, the default, means no site is readable. An entry with no dot is ignored.","name":"APPLE_SAFARI_COOKIE_HOSTS"},{"description":"Where saveAs writes a file, for apple_safari_network_get and apple_safari_cookies. 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-30T14:15:23.104842Z","publishedAt":"2026-10-30T14:15:23.104842Z","updatedAt":"2026-10-30T14:15:23.104842Z","isLatest":false}}},{"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.36.1","websiteUrl":"https://cupertino.mgcrea.io","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mgcrea/mcp-apple-safari","version":"1.36.1","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":"Register apple_safari_cookies, which lists the cookies Safari would send to an open page, HttpOnly ones included, through the extension's cookies permission. Its own gate rather than allowWrites, because it is a read; off means the tool does not exist. Not enough on its own: only sites in APPLE_SAFARI_COOKIE_HOSTS are readable. Values never come back inline; saveAs writes named ones to a 0600 file and needs APPLE_SAFARI_ALLOW_WRITES.","name":"APPLE_SAFARI_ALLOW_COOKIES"},{"description":"Comma-separated registrable domains whose cookies apple_safari_cookies may read, like \"yahoo.com\"; each covers the domain and its subdomains. Empty, the default, means no site is readable. An entry with no dot is ignored.","name":"APPLE_SAFARI_COOKIE_HOSTS"},{"description":"Where saveAs writes a file, for apple_safari_network_get and apple_safari_cookies. 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-11-03T12:41:32.565946Z","publishedAt":"2026-11-03T12:41:32.565946Z","updatedAt":"2026-11-03T12:41:32.565946Z","isLatest":false}}}],"metadata":{"nextCursor":"io.github.mgcrea/mcp-apple-safari:1.36.1","count":30}}
