{ "name": "@mcp-examples/scoped-tools", "private": true, "type": "module", "scripts": { "server": "tsx server.ts", "client": "tsx client.ts" }, "dependencies": { "@mcp-examples/oauth": "workspace:*", "@mcp-examples/shared": "workspace:*", "@modelcontextprotocol/client": "workspace:*", "@modelcontextprotocol/express": "workspace:*", "@modelcontextprotocol/node": "workspace:*", "@modelcontextprotocol/server": "workspace:*", "zod": "catalog:runtimeShared" }, "devDependencies": { "tsx": "catalog:devTools" }, "example": { "transports": [ "http" ], "era": "modern", "path": "/mcp", "//": "Per-tool scope enforcement on createMcpHandler: HTTP gate does bearer-verify + 401 only; each tool handler checks ctx.http?.authInfo?.scopes and returns isError on miss. Modern-only because authInfo plumbing through ServerContext is the feature under demonstration." } }