diff --git a/package-lock.json b/package-lock.json index aacc3f3a5..6e1f829cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@tableau/mcp-server", - "version": "2.6.3", + "version": "2.6.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tableau/mcp-server", - "version": "2.6.3", + "version": "2.6.4", "license": "Apache-2.0", "dependencies": { "@modelcontextprotocol/ext-apps": "^1.7.2", diff --git a/package.json b/package.json index 9c0f6422e..0fd410a7c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@tableau/mcp-server", "description": "Helping agents see and understand data.", - "version": "2.6.3", + "version": "2.6.4", "repository": { "type": "git", "url": "git+https://github.com/tableau/tableau-mcp.git" diff --git a/src/server/oauth/authMiddleware.ts b/src/server/oauth/authMiddleware.ts index d4cbacbbc..8577558e3 100644 --- a/src/server/oauth/authMiddleware.ts +++ b/src/server/oauth/authMiddleware.ts @@ -130,7 +130,8 @@ export function authMiddleware(accessTokenValidator: AccessTokenValidator): Requ ...(shouldCheckApiScopes ? requiredApiScopes : []), ]; const scopeParam = `scope="${formatScopes(requiredScopesForChallenge)}"`; - const wwwAuthenticate = `Bearer realm="MCP", error="insufficient_scope", error_description="Missing required scopes", resource_metadata="${resourceMetadataUrl}", ${scopeParam}`; + const errorDescription = `Missing required scopes: ${formatScopes(missingScopes)}`; + const wwwAuthenticate = `Bearer realm="MCP", error="insufficient_scope", error_description="${errorDescription}", resource_metadata="${resourceMetadataUrl}", ${scopeParam}`; if (req.method === 'GET' && req.headers.accept?.includes('text/event-stream')) { res.writeHead(403, { @@ -141,7 +142,7 @@ export function authMiddleware(accessTokenValidator: AccessTokenValidator): Requ }); res.write('event: error\n'); res.write( - 'data: {"error": "insufficient_scope", "error_description": "Missing required scopes"}\n\n', + `data: ${JSON.stringify({ error: 'insufficient_scope', error_description: errorDescription })}\n\n`, ); res.end(); return; @@ -149,7 +150,7 @@ export function authMiddleware(accessTokenValidator: AccessTokenValidator): Requ res.status(403).header('WWW-Authenticate', wwwAuthenticate).json({ error: 'insufficient_scope', - error_description: 'Missing required scopes', + error_description: errorDescription, }); return; }