@pokutuna/mcp-chrome-tabs 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,126 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.7.2] - 2026-03-18
11
+
12
+ ### Changed
13
+
14
+ - Update dependencies (defuddle 0.12.0, @modelcontextprotocol/sdk 1.27.1, zod 4.3.6)
15
+
16
+ ## [0.7.1] - 2025-12-24
17
+
18
+ ### Added
19
+
20
+ - Claude Code plugin support (#94)
21
+
22
+ ### Changed
23
+
24
+ - Update dependencies
25
+
26
+ ### Documentation
27
+
28
+ - Add AppleScript permission explanation and troubleshooting section (#83)
29
+
30
+ ## [0.7.0] - 2025-10-17
31
+
32
+ ### Added
33
+
34
+ - Worker thread for Defuddle content extraction to prevent blocking (#56)
35
+ - `--extraction-timeout` CLI option to configure content extraction timeout
36
+
37
+ ### Changed
38
+
39
+ - Resource subscription is now disabled by default (`--check-interval=0`) (#62)
40
+
41
+ ### Fixed
42
+
43
+ - Handle empty string content correctly in worker thread
44
+
45
+ ## [0.6.0] - 2025-09-08
46
+
47
+ ### Added
48
+
49
+ - Return tab ID from `open_in_new_tab` tool (#34)
50
+ - Demo animation in README
51
+
52
+ ### Changed
53
+
54
+ - Migrate to NPM Trusted Publishing with OIDC (#37)
55
+
56
+ ## [0.5.0] - 2025-08-12
57
+
58
+ ### Added
59
+
60
+ - Arc browser support via `--experimental-browser=arc` (#20)
61
+
62
+ ## [0.4.0] - 2025-08-04
63
+
64
+ ### Added
65
+
66
+ - Content pagination with `--max-content-chars` option (#17)
67
+ - `includeUrl` option to `list_tabs` tool (#11)
68
+ - URL in front matter of `formatTabContent` (#12)
69
+
70
+ ## [0.3.0] - 2025-08-01
71
+
72
+ ### Added
73
+
74
+ - E2E tests with Playwright (#6)
75
+ - MIT License
76
+
77
+ ### Changed
78
+
79
+ - Replace @mozilla/readability with defuddle for content extraction (#7)
80
+
81
+ ## [0.2.0] - 2025-07-29
82
+
83
+ ### Added
84
+
85
+ - Safari browser support (experimental) via `--experimental-browser=safari` (#4)
86
+ - Prettier configuration for code formatting (#5)
87
+ - CLAUDE.md documentation
88
+
89
+ ### Fixed
90
+
91
+ - Replace deprecated actions/create-release with gh release create
92
+
93
+ ## [0.1.4] - 2025-07-28
94
+
95
+ ### Fixed
96
+
97
+ - npm publish provenance configuration
98
+
99
+ ## [0.1.3] - 2025-07-28
100
+
101
+ ### Fixed
102
+
103
+ - Add `--access public` to npm publish
104
+
105
+ ## [0.1.2] - 2025-07-28
106
+
107
+ ### Added
108
+
109
+ - Initial release
110
+ - `list_tabs` tool to list browser tabs
111
+ - `read_tab_content` tool to extract readable content from tabs
112
+ - `open_in_new_tab` tool to open URLs in browser
113
+ - Chrome browser support via AppleScript automation
114
+
115
+ [Unreleased]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.7.2...HEAD
116
+ [0.7.2]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.7.1...v0.7.2
117
+ [0.7.1]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.7.0...v0.7.1
118
+ [0.7.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.6.0...v0.7.0
119
+ [0.6.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.5.0...v0.6.0
120
+ [0.5.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.4.0...v0.5.0
121
+ [0.4.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.3.0...v0.4.0
122
+ [0.3.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.2.0...v0.3.0
123
+ [0.2.0]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.1.4...v0.2.0
124
+ [0.1.4]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.1.3...v0.1.4
125
+ [0.1.3]: https://github.com/pokutuna/mcp-chrome-tabs/compare/v0.1.2...v0.1.3
126
+ [0.1.2]: https://github.com/pokutuna/mcp-chrome-tabs/releases/tag/v0.1.2
package/README.md CHANGED
@@ -27,7 +27,9 @@ Model Context Protocol (MCP) server that provides direct access to your browser'
27
27
  First, enable "Allow JavaScript from Apple Events" in Chrome:
28
28
 
29
29
  - (en) **View** > **Developer** > **Allow JavaScript from Apple Events**
30
- - (ja) **表示** > **開発 / 管理** > **Apple Events からのJavaScript を許可**
30
+ - (ja) **表示** > **開発 / 管理** > **Apple Events からの JavaScript を許可**
31
+
32
+ When you first use the MCP server, macOS will prompt you to grant AppleScript automation permission to your MCP client (e.g., Claude Desktop, Claude Code). Click **OK** to allow access to Chrome. If you accidentally dismissed the dialog, you can enable it in **System Settings** > **Privacy & Security** > **Automation**.
31
33
 
32
34
  Standard config works in most MCP clients (e.g., `.claude.json`, `.mcp.json`):
33
35
 
@@ -48,6 +50,18 @@ Or for Claude Code:
48
50
  claude mcp add -s user chrome-tabs -- npx -y @pokutuna/mcp-chrome-tabs@latest
49
51
  ```
50
52
 
53
+ ### Claude Code Plugin
54
+
55
+ You can also install this as a Claude Code plugin:
56
+
57
+ ```bash
58
+ # Add the marketplace
59
+ /plugin marketplace add pokutuna/mcp-chrome-tabs
60
+
61
+ # Install the plugin
62
+ /plugin install mcp-chrome-tabs@mcp-chrome-tabs
63
+ ```
64
+
51
65
  ### Command Line Options
52
66
 
53
67
  The server accepts optional command line arguments for configuration:
@@ -167,3 +181,11 @@ Resource template for accessing specific tabs.
167
181
  - When enabled, the server monitors tab changes and sends MCP listChanged notifications
168
182
 
169
183
  </details>
184
+
185
+ ## Troubleshooting
186
+
187
+ ### `Current Tabs (0 tabs exists)` is displayed
188
+
189
+ Ensure "Allow JavaScript from Apple Events" is enabled in Chrome (see [Getting Started](#getting-started)).
190
+
191
+ If it was working before, try restarting your browser.
package/dist/mcp.js CHANGED
@@ -55,6 +55,7 @@ function hashTabList(tabs) {
55
55
  export async function createMcpServer(options) {
56
56
  const server = new McpServer({
57
57
  name: "chrome-tabs",
58
+ title: "Chrome Tabs",
58
59
  version: await packageVersion(),
59
60
  }, {
60
61
  instructions: "Use this server to access the user's open browser tabs.",
@@ -66,6 +67,7 @@ export async function createMcpServer(options) {
66
67
  debouncedNotificationMethods: ["notifications/resources/list_changed"],
67
68
  });
68
69
  server.registerTool("list_tabs", {
70
+ title: "List Tabs",
69
71
  description: "List all open tabs in the user's browser with their titles and tab references.",
70
72
  inputSchema: {
71
73
  includeUrl: z
@@ -87,6 +89,7 @@ export async function createMcpServer(options) {
87
89
  };
88
90
  });
89
91
  server.registerTool("read_tab_content", {
92
+ title: "Read Tab Content",
90
93
  description: "Get readable content from a tab in the user's browser. Provide ID (from list_tabs output) to read a specific tab, or omit for the active tab.",
91
94
  inputSchema: {
92
95
  id: z
@@ -114,6 +117,7 @@ export async function createMcpServer(options) {
114
117
  };
115
118
  });
116
119
  server.registerTool("open_in_new_tab", {
120
+ title: "Open in New Tab",
117
121
  description: "Open a URL in a new tab to present content or enable user interaction with webpages",
118
122
  inputSchema: {
119
123
  url: z.string().url().describe("URL to open in the browser"),
@@ -144,10 +148,8 @@ export async function createMcpServer(options) {
144
148
  contents: [
145
149
  {
146
150
  uri: uri.href,
147
- name: view.formatTabName(tab),
148
151
  text,
149
152
  mimeType: "text/markdown",
150
- size: new Blob([text]).size,
151
153
  },
152
154
  ],
153
155
  };
@@ -182,10 +184,8 @@ export async function createMcpServer(options) {
182
184
  contents: [
183
185
  {
184
186
  uri: uri.href,
185
- name: view.formatTabName(tab),
186
187
  mimeType: "text/markdown",
187
188
  text,
188
- size: new Blob([text]).size,
189
189
  },
190
190
  ],
191
191
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pokutuna/mcp-chrome-tabs",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/pokutuna/mcp-chrome-tabs"
@@ -19,6 +19,7 @@
19
19
  },
20
20
  "files": [
21
21
  "dist/**/*",
22
+ "CHANGELOG.md",
22
23
  "README.md",
23
24
  "package.json"
24
25
  ],
@@ -35,18 +36,18 @@
35
36
  "test:e2e": "playwright test"
36
37
  },
37
38
  "dependencies": {
38
- "@modelcontextprotocol/sdk": "^1.19.1",
39
- "defuddle": "^0.6.6",
39
+ "@modelcontextprotocol/sdk": "^1.27.1",
40
+ "defuddle": "^0.12.0",
40
41
  "jsdom": "^24.0.0",
41
- "zod": "^3.25.76"
42
+ "zod": "^4.3.6"
42
43
  },
43
44
  "devDependencies": {
44
- "@playwright/test": "^1.56.0",
45
- "@types/node": "^20.11.17",
45
+ "@playwright/test": "^1.58.2",
46
+ "@types/node": "^24.10.1",
46
47
  "playwright": "^1.54.1",
47
- "prettier": "^3.6.2",
48
- "tsx": "^4.20.6",
48
+ "prettier": "^3.8.1",
49
+ "tsx": "^4.21.0",
49
50
  "typescript": "~5.9.3",
50
- "vitest": "^3.2.4"
51
+ "vitest": "^4.0.18"
51
52
  }
52
53
  }