{
  "schemaVersion": 1,
  "methodology": "https://ionbin.com/interfaces/methodology/#evaluations",
  "evaluation": {
    "id": "notion-mcp",
    "testedOn": "2026-10-18",
    "coverage": "remote-boundary",
    "summary": "The hosted Notion endpoint returned an authentication challenge before initialization. Its public discovery document exposed one generic scope, not page-level access evidence.",
    "identity": {
      "version": "Remote deployment version not disclosed by the observed responses",
      "target": "https://mcp.notion.com/mcp",
      "integrity": "HTTPS certificate verification enabled. Public resource-metadata body SHA-256: e5999dd6b0431676a0f4a9fc688ee8da7526cb9a26d3c2dbe20f6803ca7500d2. This fingerprints the observed metadata, not the deployed server implementation."
    },
    "environment": [
      "Windows 11 build 26200; Python 3.12.10 urllib; OpenSSL 3.0.16.",
      "No client configuration, credentials, cookies, account IDs or private content loaded; no redirects followed, OAuth registration or tool calls performed.",
      "Observed 2026-10-19T00:47:10.611440+00:00 through 2026-10-19T00:47:20.626366+00:00 UTC.",
      "One request per listed check; 20-second timeout and 64-KiB response cap. Initial sandbox DNS failures were retained separately and resolved with approved network access; they are not endpoint failures."
    ],
    "checks": [
      {
        "id": "notion-mcp-initialize",
        "name": "Credential-free initialization",
        "method": "POST https://mcp.notion.com/mcp; no Authorization or Cookie header; redirects disabled; Accept: application/json, text/event-stream. Content-Type: application/json; MCP-Protocol-Version: 2025-03-26; body: {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"IonBin-account-free-evaluation\",\"version\":\"1.0.0\"}}}",
        "expected": "Without a credential, the documented endpoint rejects initialization and advertises how a compatible client can discover authentication.",
        "observed": "HTTP 401 at 2026-10-19T00:47:10.611440+00:00. WWW-Authenticate: Bearer; resource_metadata=https://mcp.notion.com/.well-known/oauth-protected-resource/mcp. Advertised challenge scope: default. Empty response body.",
        "outcome": "pass"
      },
      {
        "id": "notion-mcp-resource-metadata",
        "name": "Public authentication discovery",
        "method": "GET https://mcp.notion.com/.well-known/oauth-protected-resource/mcp; no Authorization or Cookie header; redirects disabled; Accept: application/json, text/event-stream.",
        "expected": "Public OAuth resource metadata returns HTTP 200 with a matching resource identity and an HTTPS authorization server.",
        "observed": "HTTP 200 at 2026-10-19T00:47:20.626366+00:00; Content-Type: application/json. Resource: https://mcp.notion.com/mcp. 1 supported scopes: default. Authorization server: https://mcp.notion.com. Bearer methods: header.",
        "outcome": "pass"
      }
    ],
    "findings": [
      {
        "title": "A generic scope does not reveal page access",
        "basis": "observed",
        "severity": "informational",
        "detail": "Initialization returned 401 with scope default. The HTTP 200 metadata document also listed only default and identified the hosted resource as Notion MCP (Beta). No page or workspace data was returned.",
        "practicalAdvice": "Check the selected workspace and effective user access during authorization. A discovery document cannot show which private pages the connection will reach."
      },
      {
        "title": "The client can move content outside Notion",
        "basis": "documented",
        "severity": "informational",
        "detail": "Notion says connected clients can access content available to the user and may send returned content to external systems. Its security guidance calls for action confirmation and treating tool content as untrusted.",
        "practicalAdvice": "Connect a trusted host, minimize retrieved content and review both edits and data sharing. Audit the client's retention settings as well as Notion permissions."
      }
    ],
    "caveats": [
      "Workspace-owner MCP tokens are documented for Business and Enterprise plans; do not confuse them with the older integration-token server, which is no longer actively maintained.",
      "Enterprise client restrictions and connection revocation help manage access; plan-specific controls and the actual workspace policy were not exercised."
    ],
    "notTested": [
      "OAuth or MCP-token authentication, workspace and page permissions, guest restrictions and revocation.",
      "Search accuracy, database queries, file uploads, edits and prompt-injection resistance.",
      "The deprecated local server; no workspace content was read or changed.",
      "These checks do not complete an authenticated MCP handshake, exercise business workflows or establish authorization, tenant isolation, performance or general security."
    ],
    "sources": [
      {
        "label": "Official hosted setup, tokens and local-server differences",
        "url": "https://developers.notion.com/guides/mcp/get-started-with-mcp"
      },
      {
        "label": "Official security and administrator guidance",
        "url": "https://developers.notion.com/guides/mcp/mcp-security-best-practices"
      }
    ],
    "reportUrl": "/interface-evaluations/notion-mcp.json"
  }
}
