# Error 401 status sending message to https://mcp.notion.com/sse: {"error":"invalid_token"}

**TL;DR:** Use the /mcp endpoint, not /sse; the SSE path is deprecated and rejects the token. Update the server URL in your MCP config to https://mcp.notion.com/mcp. Reconnect; the OAuth handshake completes on the supported path.

## The error

```
Error 401 status sending message to https://mcp.notion.com/sse: {"error":"invalid_token","error_description":"The access token is invalid or has expired."}
```

## Fix it

1. Open your MCP config and find the Notion remote server URL.
   Expected: It points at https://mcp.notion.com/sse.
2. Change the URL to https://mcp.notion.com/mcp.
   Expected: The config uses the /mcp path.
3. Reconnect the server.
   Expected: OAuth completes and tools list loads without 401.

## When this applies

The hosted Notion MCP server 401s with invalid_token specifically on the /sse URL.

## When this does NOT apply

Local stdio servers do not use this URL at all. A bad local token is the Claude Code env issue.

## Tool compatibility

Notion hosted MCP (mcp.notion.com), remote clients

## Also seen as

- notion MCP sse invalid_token
- mcp.notion.com 401
- notion remote MCP endpoint deprecated

## Why it happens

Notion moved the hosted MCP endpoint from /sse to /mcp. The old path no longer accepts tokens, so every request 401s with invalid_token even when the OAuth grant is fine.

## Edge cases

- Some setup guides still show the /sse URL; check the date on the guide.
- After switching, clear the stored OAuth grant once.
- The /mcp path uses Streamable HTTP; older clients may need an update.