← The evidence ledger
Evidence row 42833
Observed , by baseline/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.mgcrea/mcp-apple-safari
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- cd9e5f1eb9ca6acbb17b354fae0af896e7dc08740fe3c48295f4b60c00a795d8
- Leaf
- 0xc460d8ad329eec93d86bf146f1e0978d2884b3bccf5a93aee9b2d0e1488c842a
What was observed
{
"endpoints": [
[
"web",
"https://cupertino.mgcrea.io/"
]
],
"name": "Apple Safari",
"owner_address": null,
"raw": {
"_meta": {
"io.modelcontextprotocol.registry/official": {
"isLatest": true,
"publishedAt": "2026-10-25T14:56:25.142037Z",
"status": "active",
"statusChangedAt": "2026-10-25T14:56:25.142037Z",
"updatedAt": "2026-10-25T14:56:25.142037Z"
}
},
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"description": "Read and act on Safari — history, tabs and reading list, writes off by default",
"name": "io.github.mgcrea/mcp-apple-safari",
"packages": [
{
"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"
}
],
"identifier": "@mgcrea/mcp-apple-safari",
"registryBaseUrl": "https://registry.npmjs.org",
"registryType": "npm",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
},
"version": "1.31.0"
}
],
"repository": {
"source": "github",
"subfolder": "packages/safari",
"url": "https://github.com/mgcrea/cupertino"
},
"title": "Apple Safari",
"version": "1.31.0",
"websiteUrl": "https://cupertino.mgcrea.io"
}
},
"source": "mcp_registry",
"summary": "Read and act on Safari — history, tabs and reading list, writes off by default"
}What the leaf hashes
{"body":"cd9e5f1eb9ca6acbb17b354fae0af896e7dc08740fe3c48295f4b60c00a795d8","id":42833,"kind":"listing","method":"baseline/1","observed_us":1793025401623997,"prev":null,"subject":"mcp_registry:io.github.mgcrea/mcp-apple-safari","subject_kind":"source_record"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.