You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[MCP] Option for absolute paths in tool result links #42497
Tool results name generated files with paths relative to the server's working directory, for example - [Snapshot](./page-2026-08-25T09-14-22-104Z.yml).
A client that is not a process with a working directory cannot resolve these. This is the normal case when the consumer is a model rather than a shell.
Request: a config option such as pointerPaths: "absolute" | "relative", default relative, that makes the path returned by Response._computeRelativeTo absolute.
It would cover the screenshot, PDF and storage-state links, the snapshot link, the console log link, the download line, binary response body lines, and the trace links. They all resolve through the same two call sites.
Jori Huisman (@SixFive7) Could you please share your exact repro? How do you start the mcp server? Which client do you connect through? Are you using stdio or http? How come the cwd is not known to the client?
I'm running into this as well, and it makes agents very confused!
I would support adding an absolute path option, or perhaps just changing the default...
In my implementation, the MCP client is the GitHub Copilot SDK but we have an MCP proxy, separate from the client, that connects to a bunch of MCP servers (HTTP and stdio) and bundles them into one HTTP server.
Tim Rogers (@timrogers) Unfortunately, your description doesn't tell us much. Why is your client not sending workspace roots? How come you don't control the cwd of the MCP server you start?
How it starts: my own Windows MCP server spawns @playwright/mcp as a child over stdio, never HTTP. It runs a bundled node.exe against the package's cli.js with a generated --config, and sets both the child's working directory and outputDir to one per-session output folder. Any snapshot or screenshot call through that shows it.
Which client: Claude Code starts my server over stdio. My server forwards tools/list and tools/call down to the child and returns the child's result bytes unchanged, so nothing of mine rewrites a path.
Why the cwd isn't known: Claude Code's cwd is the user's project directory, which isn't what those links are relative to. The child's cwd is a session directory my server picks, a layer below the client, and it changes per session. What reads the result is a model with no cwd at all, so ./page-2026-08-25T09-14-22-104Z.yml points nowhere for it and isn't clickable for me either.
Pavel, thank you for just building it. --file-paths=absolute is exactly right. I'm not waiting for the next @playwright/mcp roll, I'm pulling the alpha that carries it into my build now. Thanks to the whole team.
Activity
Two asks with nowhere recorded to point at, a tracker that asks to be…
[-]Option for absolute paths in tool result links[/-][+][MCP] Option for absolute paths in tool result links[/+]dgozman commentedon Sep 2, 2026
Jori Huisman (@SixFive7) Could you please share your exact repro? How do you start the mcp server? Which client do you connect through? Are you using stdio or http? How come the cwd is not known to the client?
timrogers commentedon Sep 3, 2026
I'm running into this as well, and it makes agents very confused!
I would support adding an absolute path option, or perhaps just changing the default...
In my implementation, the MCP client is the GitHub Copilot SDK but we have an MCP proxy, separate from the client, that connects to a bunch of MCP servers (HTTP and stdio) and bundles them into one HTTP server.
dgozman commentedon Sep 3, 2026
Tim Rogers (@timrogers) Unfortunately, your description doesn't tell us much. Why is your client not sending workspace roots? How come you don't control the cwd of the MCP server you start?
feat(mcp): add --file-paths=absolute for absolute paths in tool results
SixFive7 commentedon Sep 17, 2026
Sorry for the slow reply. I was away.
How it starts: my own Windows MCP server spawns
@playwright/mcpas a child over stdio, never HTTP. It runs a bundlednode.exeagainst the package'scli.jswith a generated--config, and sets both the child's working directory andoutputDirto one per-session output folder. Any snapshot or screenshot call through that shows it.Which client: Claude Code starts my server over stdio. My server forwards
tools/listandtools/calldown to the child and returns the child's result bytes unchanged, so nothing of mine rewrites a path.Why the cwd isn't known: Claude Code's cwd is the user's project directory, which isn't what those links are relative to. The child's cwd is a session directory my server picks, a layer below the client, and it changes per session. What reads the result is a model with no cwd at all, so
./page-2026-08-25T09-14-22-104Z.ymlpoints nowhere for it and isn't clickable for me either.Pavel, thank you for just building it.
--file-paths=absoluteis exactly right. I'm not waiting for the next@playwright/mcproll, I'm pulling the alpha that carries it into my build now. Thanks to the whole team.The upstream record catches up: one ask granted, one fix declined, on…
chore: mark v0.1.21 (#469)
chore: mark v0.0.82 (#1764)
chore(deps): update all non-major dependencies (#169)
chore(deps): update dependency @playwright/mcp to v0.0.82 (#1011)
chore(deps): update dependency @playwright/mcp to v0.0.82 (#3175)
chore: mark v0.0.82 (microsoft#1764)
Update agent CLIs