copilot-swe-agent[bot]
708aa6d6a5
Change tab selection to use 0-based indexing instead of 1-based
...
Co-authored-by: Skn0tt <14912729+Skn0tt@users.noreply.github.com>
2025-06-19 09:38:10 +00:00
Simon Knott
9728527900
chore: typo ( #513 )
2025-06-03 11:10:47 -07:00
Pavel Feldman
eec177d3ac
chore: reuse browser in server mode ( #495 )
2025-05-30 15:15:37 -07:00
Pavel Feldman
54ed7c3200
chore: refactor server, prepare for browser reuse ( #490 )
2025-05-28 16:55:47 -07:00
Pavel Feldman
9e5ffd2ccf
fix(cursor): allow enforcing images for cursor --image-responses=allow ( #478 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/449
2025-05-27 10:25:09 +02:00
Pavel Feldman
aa6ac51f92
feat(trace): allow saving trajectory as trace ( #426 )
2025-05-14 18:08:44 -07:00
Pavel Feldman
fea50e6840
chore: introduce resolved config ( #425 )
2025-05-14 16:01:08 -07:00
Pavel Feldman
ce72367208
feat(storage): allow passing storage state for isolated contexts ( #409 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/403
Ref https://github.com/microsoft/playwright-mcp/issues/367
2025-05-13 13:14:04 -07:00
Pavel Feldman
949f956378
feat(ephemeral): allow for non-persistent context operation ( #405 )
...
Ref: https://github.com/microsoft/playwright-mcp/issues/367
Ref: https://github.com/microsoft/playwright-mcp/issues/393
2025-05-12 18:18:53 -07:00
Pavel Feldman
dd5b41f1d8
chore: account for undefined arguments ( #400 )
2025-05-12 09:35:33 -07:00
Max Schmitt
95ca08fdb7
fix: use of wrong launchOptions type in public API ( #385 )
2025-05-09 14:16:04 +02:00
Max Schmitt
91ae93c167
chore: change import assert to readFile ( #368 )
2025-05-07 11:30:01 +02:00
Ross Wollman
42faa3ccf8
feat: add --(allowed|blocked)-origins ( #319 )
...
Useful to limit the agent when using the playwright-mcp server with an
agent in auto-invocation mode.
Not intended to be a security feature.
2025-05-05 11:28:14 -07:00
Pavel Feldman
4694d60fc5
fix(config): allow specifying user data dir in config ( #342 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/340
2025-05-05 08:23:24 -07:00
Max Schmitt
062cdd0704
fix: sticky launch errors ( #324 )
...
This fixes an issue that there were sticky launch errors. When the
[following code
path](a15f0f301b/src/context.ts (L307-L339)
)
was throwing, the Error was stored in the Promise and not cleared
afterwards, this meant:
- If a browser was not there and the user tried to install it via
`browser_install` it was never working since the error was sticky.
- If other errors like CDP is not available yet etc. error appear a
re-connect would not work - the MCP server would require a restart.
Test plan: Since we don't have any `browser_install` tests I added a CDP
test for now to cover this bug.
2025-05-02 15:32:37 +02:00
Simon Knott
a15f0f301b
chore: save downloads to outputDir ( #310 )
2025-05-02 10:57:31 +02:00
Max Schmitt
685dea9e19
chore: migrate to ESM ( #303 )
...
- [Why do I need `.js`
extension?](https://stackoverflow.com/a/77150985/6512681 )
- [Why setting `rootDir` in the
`tsconfig.json`?](https://stackoverflow.com/a/58941798/6512681 )
- [How to ensure that we add the `.js` extension via
ESLint](https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/extensions.md#importextensions )
Fixes https://github.com/microsoft/playwright-mcp/issues/302
2025-04-30 23:06:56 +02:00
Pavel Feldman
3f72fe53ec
chore: add support for device ( #300 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/294
2025-04-29 19:51:00 -07:00
Simon Knott
6efdc90078
fix: show custom error for modal state ( #240 )
...
Calling a tool that resolves modal state, when there's no such modal
state visible, currently shows this misleading message:
```md
Tool "browser_file_upload" does not handle the modal state.
### Modal state
```
Instead, we should show the error message from the tool implementation.
2025-04-29 18:48:52 +02:00
Pavel Feldman
80c9b93b72
chore: allow configuring raw Playwright options ( #287 )
...
Fixes: https://github.com/microsoft/playwright-mcp/issues/272
2025-04-28 20:17:16 -07:00
Pavel Feldman
6e76d5e550
chore: split context.ts into files ( #284 )
2025-04-28 16:14:16 -07:00
Pavel Feldman
b02370df2f
chore: roll playwright to latest ( #269 )
2025-04-28 13:44:24 -07:00
Pavel Feldman
586492a3f0
chore: mark v0.0.15 ( #250 )
2025-04-22 16:17:36 -07:00
Pavel Feldman
f7e9bae571
chore: roll playwright to 1745357020000 ( #249 )
2025-04-22 16:04:50 -07:00
Pavel Feldman
1bc3c761de
feat(network): implement listing network requests ( #247 )
...
Fixes: https://github.com/microsoft/playwright-mcp/issues/242
2025-04-22 16:04:25 -07:00
Simon Knott
c80f7cf222
chore: infer tool params ( #241 )
...
Moves the `schema.parse` call to the calling side of the handler, so we
don't have to duplicate it everywhere.
2025-04-22 13:24:38 +02:00
Pavel Feldman
6a070a0dd8
chore: restore page-side timeout ( #213 )
2025-04-17 14:25:27 -07:00
Pavel Feldman
6481100bdf
feat(dialog): handle dialogs ( #212 )
2025-04-17 14:03:13 -07:00
Pavel Feldman
4b261286bf
chore: test list tabs ( #208 )
2025-04-17 09:58:02 +02:00
Pavel Feldman
7e4a964b0a
chore: flatten tool calling, prep for timeout handling ( #205 )
2025-04-16 19:36:48 -07:00
Pavel Feldman
cea347d067
chore: introduce modal states ( #204 )
2025-04-16 15:21:45 -07:00
Andrei-Daniel Barzu
6d4adfe5c6
feat: add element screenshot action for snapshots ( #182 )
2025-04-16 10:28:44 -07:00
Simon Knott
e7c7709b33
chore: include "playwright" keyword, add examples ( #196 )
2025-04-16 08:18:40 -07:00
Pavel Feldman
5c2e11017d
chore: convert console resource to tool ( #193 )
2025-04-15 18:01:59 -07:00
Pavel Feldman
795a9d578a
chore: generalize status & action as code ( #188 )
2025-04-15 12:54:45 -07:00
Simon Knott
4a19e18999
feat: respond with action and generated locator ( #181 )
...
Closes https://github.com/microsoft/playwright-mcp/issues/163
2025-04-15 10:55:20 -07:00
Pavel Feldman
606b898a71
chore: allow reusing tab over cdp ( #170 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/164
2025-04-14 16:39:58 -07:00
Pavel Feldman
abd56f514b
chore: introduce capabilities argument ( #135 )
2025-04-04 17:14:30 -07:00
Pavel Feldman
707ebbf4d4
chore: group tools, prepare for capabilities ( #134 )
2025-04-04 15:22:00 -07:00
Pavel Feldman
fc0cccf4a5
chore: reuse the first tab when navigating ( #131 )
2025-04-03 22:39:55 -07:00
Pavel Feldman
e36d4ea695
chore: allow multiple tabs ( #129 )
2025-04-03 19:24:17 -07:00
Pavel Feldman
b358e47d71
chore: prep for multiple pages in context ( #124 )
2025-04-03 10:30:05 -07:00
Pavel Feldman
89627fd23a
chore: extract page snapshot, prep for multipage ( #120 )
2025-04-02 11:42:39 -07:00
Pavel Feldman
0de7c0d38c
chore: follow up with iframe stitch ( #110 )
2025-04-01 15:10:23 -07:00
Simon Knott
0a5518b252
chore: stitch together iframes into one tree ( #71 )
2025-04-01 14:47:53 -07:00
Pavel Feldman
4f16786432
chore: merge browser and channel settings ( #100 )
2025-04-01 10:26:48 -07:00
Pavel Feldman
9042c03faa
chore: support channel and executable path params ( #90 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/89
2025-03-31 15:30:08 -07:00
Pavel Feldman
a7392fc266
chore: allow passing cdp endpoint ( #86 )
...
Fixes https://github.com/microsoft/playwright-mcp/issues/84
2025-03-30 09:05:58 -07:00
Simon Knott
5e200405e5
feat: browser_choose_file ( #52 )
...
Resolves https://github.com/microsoft/playwright-mcp/issues/31 .
Prompt used for testing:
```
upload test.txt to dropbox
```
This won't work for asynchronously opened filechoosers, but let's start
with the synchronous variant. I also tested with including the file
chooser open state in the snapshot, but that didn't give better results.
I also tested with OneDrive and WeTransfer, but somehow our ARIA
snapshots for those pages are missing some elements that are crucial to
locate the upload buttons.
2025-03-27 20:49:57 +01:00
Simon Knott
f033213618
chore: only include visible iframes, keep frame locators in own array ( #60 )
...
As discussed:
- hides invisible frames from snapshot
- keep our own frame locator array, so we don't rely on `page.frames()`
ordering to be stable
2025-03-27 20:22:44 +01:00