Skip to content

Commit 11deb4d

Browse files
authored
Merge branch 'main' into feat/list-network-requests-parameters
2 parents 5922f00 + 2687822 commit 11deb4d

File tree

12 files changed

+82
-16
lines changed

12 files changed

+82
-16
lines changed

.github/workflows/publish-to-npm-on-tag.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ jobs:
6565
- name: Build
6666
run: npm run build
6767

68+
- name: Bump
69+
run: npm run sync-server-json-version
70+
6871
- name: Install MCP Publisher
6972
run: |
7073
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.2.3"
2+
".": "0.2.6"
33
}

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
## [0.2.6](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.2.5...chrome-devtools-mcp-v0.2.6) (2025-09-24)
4+
5+
6+
### Bug Fixes
7+
8+
* manually bump server.json versions based on package.json ([#105](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/105)) ([cae1cf1](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/cae1cf13d5a97add3b96f20c425f720a1ceabf94))
9+
10+
## [0.2.5](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.2.4...chrome-devtools-mcp-v0.2.5) (2025-09-24)
11+
12+
13+
### Bug Fixes
14+
15+
* add mcpName to package.json ([#103](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/103)) ([bd0351f](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/bd0351fd36ae35e41e613f0d15df40aeca17ba94))
16+
17+
## [0.2.4](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.2.3...chrome-devtools-mcp-v0.2.4) (2025-09-24)
18+
19+
20+
### Bug Fixes
21+
22+
* forbid closing the last page ([#90](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/90)) ([0ca2434](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/0ca2434a29eb4bc6e570a4ebe21a135d85f4c0f3))
23+
324
## [0.2.3](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.2.2...chrome-devtools-mcp-v0.2.3) (2025-09-24)
425

526

docs/tool-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116

117117
### `close_page`
118118

119-
**Description:** Closes the page by its index.
119+
**Description:** Closes the page by its index. The last open page cannot be closed.
120120

121121
**Parameters:**
122122

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "chrome-devtools-mcp",
3-
"version": "0.2.3",
3+
"version": "0.2.6",
44
"description": "MCP server for Chrome DevTools",
55
"type": "module",
66
"bin": "./build/src/index.js",
@@ -18,7 +18,8 @@
1818
"test:only": "npm run build && node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-reporter spec --test-force-exit --test --test-only \"build/tests/**/*.test.js\"",
1919
"test:only:no-build": "node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-reporter spec --test-force-exit --test --test-only \"build/tests/**/*.test.js\"",
2020
"test:update-snapshots": "npm run build && node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-force-exit --test --test-update-snapshots \"build/tests/**/*.test.js\"",
21-
"prepare": "node --experimental-strip-types scripts/prepare.ts"
21+
"prepare": "node --experimental-strip-types scripts/prepare.ts",
22+
"sync-server-json-version": "node --experimental-strip-types scripts/sync-server-json-version.ts && npm run format"
2223
},
2324
"files": [
2425
"build/src",
@@ -33,6 +34,7 @@
3334
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp/issues"
3435
},
3536
"homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp#readme",
37+
"mcpName": "io.github.ChromeDevTools/chrome-devtools-mcp",
3638
"dependencies": {
3739
"@modelcontextprotocol/sdk": "1.18.1",
3840
"debug": "4.4.3",
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @license
3+
* Copyright 2025 Google LLC
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
import fs from 'node:fs';
7+
8+
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
9+
const serverJson = JSON.parse(fs.readFileSync('./server.json', 'utf-8'));
10+
11+
serverJson.version = packageJson.version;
12+
for (const pkg of serverJson.packages) {
13+
pkg.version = packageJson.version;
14+
}
15+
16+
fs.writeFileSync('./server.json', JSON.stringify(serverJson, null, 2));

server.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
2-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
2+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-16/server.schema.json",
33
"name": "io.github.ChromeDevTools/chrome-devtools-mcp",
44
"description": "MCP server for Chrome DevTools",
55
"status": "active",
66
"repository": {
77
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
88
"source": "github"
99
},
10-
"version": "0.2.1",
10+
"version": "0.2.5",
1111
"packages": [
1212
{
13-
"registry_type": "npm",
14-
"registry_base_url": "https://registry.npmjs.org",
13+
"registryType": "npm",
14+
"registryBaseUrl": "https://registry.npmjs.org",
1515
"identifier": "chrome-devtools-mcp",
16-
"version": "0.2.1",
16+
"version": "0.2.5",
1717
"transport": {
1818
"type": "stdio"
1919
},
20-
"environment_variables": []
20+
"environmentVariables": []
2121
}
2222
]
2323
}

src/McpContext.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,16 @@ export class McpContext implements Context {
131131
this.#consoleCollector.addPage(page);
132132
return page;
133133
}
134+
async closePage(pageIdx: number): Promise<void> {
135+
if (this.#pages.length === 1) {
136+
throw new Error(
137+
'Unable to close the last page in the browser. It is fine to keep the last page open.',
138+
);
139+
}
140+
const page = this.getPageByIdx(pageIdx);
141+
this.setSelectedPageIdx(0);
142+
await page.close({runBeforeUnload: false});
143+
}
134144

135145
getNetworkRequestByUrl(url: string): HTTPRequest {
136146
const requests = this.getNetworkRequests();

src/tools/ToolDefinition.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export type Context = Readonly<{
7272
clearDialog(): void;
7373
getPageByIdx(idx: number): Page;
7474
newPage(): Promise<Page>;
75+
closePage(pageIdx: number): Promise<void>;
7576
setSelectedPageIdx(idx: number): void;
7677
getElementByUid(uid: string): Promise<ElementHandle<Element>>;
7778
setNetworkConditions(conditions: string | null): void;

0 commit comments

Comments
 (0)