excel-mcp-server-pcvelz 0.15.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2025 Kazuki Negoro
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,218 @@
1
+ # Excel MCP Server
2
+
3
+ <img src="https://github.com/negokaz/excel-mcp-server/blob/main/docs/img/icon-800.png?raw=true" width="128">
4
+
5
+ <a href="https://glama.ai/mcp/servers/@negokaz/excel-mcp-server">
6
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/@negokaz/excel-mcp-server/badge" alt="Excel Server MCP server" />
7
+ </a>
8
+
9
+ [![NPM Version](https://img.shields.io/npm/v/@negokaz/excel-mcp-server)](https://www.npmjs.com/package/@negokaz/excel-mcp-server)
10
+ [![smithery badge](https://smithery.ai/badge/@negokaz/excel-mcp-server)](https://smithery.ai/server/@negokaz/excel-mcp-server)
11
+
12
+ A Model Context Protocol (MCP) server that reads and writes MS Excel data.
13
+
14
+ ## Why Fork?
15
+
16
+ This fork ([pcvelz/excel-mcp-server](https://github.com/pcvelz/excel-mcp-server)) adds features needed for real-world bookkeeping workflows that are not yet available upstream:
17
+
18
+ - **Alignment support in `excel_format_range`** — set horizontal/vertical alignment (e.g., left-align numbers)
19
+ - **Alignment in `showStyle` output** — read back cell alignment when using `showStyle: true`
20
+ - **Cell type attributes** — `type` attribute (string, number, formula, date) in `showStyle` output
21
+ - **Raw value attributes** — `raw` attribute showing unformatted values alongside displayed values
22
+ - **ISO date auto-conversion** — write ISO date strings (e.g., `"2026-02-03"`) and they're automatically converted to Excel date serial numbers
23
+
24
+ See the [upstream comparison](https://github.com/negokaz/excel-mcp-server/compare/main...pcvelz:excel-mcp-server:main) for full diff.
25
+
26
+ ## Features
27
+
28
+ - Read/Write text values
29
+ - Read/Write formulas
30
+ - Create new sheets
31
+
32
+ **🪟Windows only:**
33
+ - Live editing
34
+ - Capture screen image from a sheet
35
+
36
+ For more details, see the [tools](#tools) section.
37
+
38
+ ## Requirements
39
+
40
+ - Node.js 20.x or later
41
+
42
+ ## Supported file formats
43
+
44
+ - xlsx (Excel book)
45
+ - xlsm (Excel macro-enabled book)
46
+ - xltx (Excel template)
47
+ - xltm (Excel macro-enabled template)
48
+
49
+ ## Installation
50
+
51
+ ### Installing via NPM
52
+
53
+ excel-mcp-server is automatically installed by adding the following configuration to the MCP servers configuration.
54
+
55
+ For Windows:
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "excel": {
60
+ "command": "cmd",
61
+ "args": ["/c", "npx", "--yes", "@negokaz/excel-mcp-server"],
62
+ "env": {
63
+ "EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ```
69
+
70
+ For other platforms:
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "excel": {
75
+ "command": "npx",
76
+ "args": ["--yes", "@negokaz/excel-mcp-server"],
77
+ "env": {
78
+ "EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
79
+ }
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ ### Installing via Smithery
86
+
87
+ To install Excel MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@negokaz/excel-mcp-server):
88
+
89
+ ```bash
90
+ npx -y @smithery/cli install @negokaz/excel-mcp-server --client claude
91
+ ```
92
+
93
+ <h2 id="tools">Tools</h2>
94
+
95
+ ### `excel_describe_sheets`
96
+
97
+ List all sheet information of specified Excel file.
98
+
99
+ **Arguments:**
100
+ - `fileAbsolutePath`
101
+ - Absolute path to the Excel file
102
+
103
+ ### `excel_read_sheet`
104
+
105
+ Read values from Excel sheet with pagination.
106
+
107
+ **Arguments:**
108
+ - `fileAbsolutePath`
109
+ - Absolute path to the Excel file
110
+ - `sheetName`
111
+ - Sheet name in the Excel file
112
+ - `range`
113
+ - Range of cells to read in the Excel sheet (e.g., "A1:C10"). [default: first paging range]
114
+ - `showFormula`
115
+ - Show formula instead of value [default: false]
116
+ - `showStyle`
117
+ - Show style information for cells [default: false]
118
+ - When enabled, output includes:
119
+ - `style-ref`: References to style definitions (border, font, fill, alignment, numFmt)
120
+ - `type`: Cell type (number, string, date, bool, formula, error)
121
+ - `raw`: Raw/unformatted value (shown when different from displayed value, e.g., `raw="45691"` for a date displayed as "3-Feb")
122
+
123
+ ### `excel_screen_capture`
124
+
125
+ **[Windows only]** Take a screenshot of the Excel sheet with pagination.
126
+
127
+ **Arguments:**
128
+ - `fileAbsolutePath`
129
+ - Absolute path to the Excel file
130
+ - `sheetName`
131
+ - Sheet name in the Excel file
132
+ - `range`
133
+ - Range of cells to read in the Excel sheet (e.g., "A1:C10"). [default: first paging range]
134
+
135
+ ### `excel_write_to_sheet`
136
+
137
+ Write values to the Excel sheet.
138
+
139
+ **Arguments:**
140
+ - `fileAbsolutePath`
141
+ - Absolute path to the Excel file
142
+ - `sheetName`
143
+ - Sheet name in the Excel file
144
+ - `newSheet`
145
+ - Create a new sheet if true, otherwise write to the existing sheet
146
+ - `range`
147
+ - Range of cells to read in the Excel sheet (e.g., "A1:C10").
148
+ - `values`
149
+ - Values to write to the Excel sheet. If the value is a formula, it should start with "="
150
+ - ISO date strings (e.g., `"2026-02-03"`, `"2026-02-03T10:30:00"`, `"2026-02-03T10:30:00Z"`) are automatically converted to Excel date serial numbers
151
+
152
+ ### `excel_create_table`
153
+
154
+ Create a table in the Excel sheet
155
+
156
+ **Arguments:**
157
+ - `fileAbsolutePath`
158
+ - Absolute path to the Excel file
159
+ - `sheetName`
160
+ - Sheet name where the table is created
161
+ - `range`
162
+ - Range to be a table (e.g., "A1:C10")
163
+ - `tableName`
164
+ - Table name to be created
165
+
166
+ ### `excel_copy_sheet`
167
+
168
+ Copy existing sheet to a new sheet
169
+
170
+ **Arguments:**
171
+ - `fileAbsolutePath`
172
+ - Absolute path to the Excel file
173
+ - `srcSheetName`
174
+ - Source sheet name in the Excel file
175
+ - `dstSheetName`
176
+ - Sheet name to be copied
177
+
178
+ ### `excel_format_range`
179
+
180
+ Format cells in the Excel sheet with style information
181
+
182
+ **Arguments:**
183
+ - `fileAbsolutePath`
184
+ - Absolute path to the Excel file
185
+ - `sheetName`
186
+ - Sheet name in the Excel file
187
+ - `range`
188
+ - Range of cells in the Excel sheet (e.g., "A1:C3")
189
+ - `styles`
190
+ - 2D array of style objects for each cell. If a cell does not change style, use null. The number of items of the array must match the range size.
191
+ - Style object properties:
192
+ - `border`: Array of border styles (type, color, style)
193
+ - `font`: Font styling (bold, italic, underline, size, strike, color, vertAlign)
194
+ - `fill`: Fill/background styling (type, pattern, color, shading)
195
+ - `alignment`: Cell alignment settings
196
+ - `horizontal`: Horizontal alignment (left, center, right, fill, justify, centerContinuous, distributed)
197
+ - `vertical`: Vertical alignment (top, center, bottom, justify, distributed)
198
+ - `wrapText`: Wrap text in cell (boolean)
199
+ - `shrinkToFit`: Shrink text to fit cell width (boolean)
200
+ - `textRotation`: Text rotation angle (0-180, or 255 for vertical)
201
+ - `indent`: Indent level (0-250)
202
+ - `numFmt`: Custom number format string
203
+ - `decimalPlaces`: Number of decimal places (0-30)
204
+
205
+ <h2 id="configuration">Configuration</h2>
206
+
207
+ You can change the MCP Server behaviors by the following environment variables:
208
+
209
+ ### `EXCEL_MCP_PAGING_CELLS_LIMIT`
210
+
211
+ The maximum number of cells to read in a single paging operation.
212
+ [default: 4000]
213
+
214
+ ## License
215
+
216
+ Copyright (c) 2025 Kazuki Negoro
217
+
218
+ excel-mcp-server is released under the [MIT License](LICENSE)
@@ -0,0 +1 @@
1
+ [{"name":"metadata.json","path":"dist/metadata.json","internal_type":35,"type":"Metadata"},{"name":"excel-mcp-server","path":"dist/excel-mcp-server_linux_386_sse2/excel-mcp-server","goos":"linux","goarch":"386","go386":"sse2","target":"linux_386_sse2","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":"","ID":"excel-mcp-server"}},{"name":"excel-mcp-server.exe","path":"dist/excel-mcp-server_windows_386_sse2/excel-mcp-server.exe","goos":"windows","goarch":"386","go386":"sse2","target":"windows_386_sse2","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":".exe","ID":"excel-mcp-server"}},{"name":"excel-mcp-server","path":"dist/excel-mcp-server_linux_arm64_v8.0/excel-mcp-server","goos":"linux","goarch":"arm64","goarm64":"v8.0","target":"linux_arm64_v8.0","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":"","ID":"excel-mcp-server"}},{"name":"excel-mcp-server","path":"dist/excel-mcp-server_linux_amd64_v1/excel-mcp-server","goos":"linux","goarch":"amd64","goamd64":"v1","target":"linux_amd64_v1","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":"","ID":"excel-mcp-server"}},{"name":"excel-mcp-server.exe","path":"dist/excel-mcp-server_windows_arm64_v8.0/excel-mcp-server.exe","goos":"windows","goarch":"arm64","goarm64":"v8.0","target":"windows_arm64_v8.0","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":".exe","ID":"excel-mcp-server"}},{"name":"excel-mcp-server.exe","path":"dist/excel-mcp-server_windows_amd64_v1/excel-mcp-server.exe","goos":"windows","goarch":"amd64","goamd64":"v1","target":"windows_amd64_v1","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":".exe","ID":"excel-mcp-server"}},{"name":"excel-mcp-server","path":"dist/excel-mcp-server_darwin_arm64_v8.0/excel-mcp-server","goos":"darwin","goarch":"arm64","goarm64":"v8.0","target":"darwin_arm64_v8.0","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":"","ID":"excel-mcp-server"}},{"name":"excel-mcp-server","path":"dist/excel-mcp-server_darwin_amd64_v1/excel-mcp-server","goos":"darwin","goarch":"amd64","goamd64":"v1","target":"darwin_amd64_v1","internal_type":4,"type":"Binary","extra":{"Binary":"excel-mcp-server","Builder":"go","Ext":"","ID":"excel-mcp-server"}}]
@@ -0,0 +1,158 @@
1
+ version: 2
2
+ project_name: excel-mcp-server
3
+ release:
4
+ github:
5
+ owner: negokaz
6
+ name: excel-mcp-server
7
+ name_template: '{{.Tag}}'
8
+ builds:
9
+ - id: excel-mcp-server
10
+ goos:
11
+ - linux
12
+ - windows
13
+ - darwin
14
+ goarch:
15
+ - amd64
16
+ - arm64
17
+ - "386"
18
+ goamd64:
19
+ - v1
20
+ go386:
21
+ - sse2
22
+ goarm:
23
+ - "6"
24
+ goarm64:
25
+ - v8.0
26
+ gomips:
27
+ - hardfloat
28
+ goppc64:
29
+ - power8
30
+ goriscv64:
31
+ - rva20u64
32
+ targets:
33
+ - linux_amd64_v1
34
+ - linux_arm64_v8.0
35
+ - linux_386_sse2
36
+ - windows_amd64_v1
37
+ - windows_arm64_v8.0
38
+ - windows_386_sse2
39
+ - darwin_amd64_v1
40
+ - darwin_arm64_v8.0
41
+ dir: .
42
+ main: ./cmd/excel-mcp-server/main.go
43
+ binary: excel-mcp-server
44
+ builder: go
45
+ tool: go
46
+ command: build
47
+ ldflags:
48
+ - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.builtBy=goreleaser
49
+ env:
50
+ - CGO_ENABLED=0
51
+ archives:
52
+ - id: default
53
+ builds_info:
54
+ mode: 493
55
+ name_template: '{{ .ProjectName }}_ {{- title .Os }}_ {{- if eq .Arch "amd64" }}x86_64 {{- else if eq .Arch "386" }}i386 {{- else }}{{ .Arch }}{{ end }} {{- if .Arm }}v{{ .Arm }}{{ end }}'
56
+ formats:
57
+ - tar.gz
58
+ format_overrides:
59
+ - goos: windows
60
+ formats:
61
+ - zip
62
+ files:
63
+ - src: license*
64
+ - src: LICENSE*
65
+ - src: readme*
66
+ - src: README*
67
+ - src: changelog*
68
+ - src: CHANGELOG*
69
+ snapshot:
70
+ version_template: '{{ .Version }}-SNAPSHOT-{{ .ShortCommit }}'
71
+ checksum:
72
+ name_template: '{{ .ProjectName }}_{{ .Version }}_checksums.txt'
73
+ algorithm: sha256
74
+ docker_digest:
75
+ name_template: digests.txt
76
+ changelog:
77
+ filters:
78
+ exclude:
79
+ - '^docs:'
80
+ - '^test:'
81
+ sort: asc
82
+ format: '{{ .SHA }} {{ .Message }}'
83
+ dist: dist
84
+ env_files:
85
+ github_token: ~/.config/goreleaser/github_token
86
+ gitlab_token: ~/.config/goreleaser/gitlab_token
87
+ gitea_token: ~/.config/goreleaser/gitea_token
88
+ before:
89
+ hooks:
90
+ - go mod tidy
91
+ - go generate ./...
92
+ source:
93
+ name_template: '{{ .ProjectName }}-{{ .Version }}'
94
+ format: tar.gz
95
+ gomod:
96
+ gobinary: go
97
+ announce:
98
+ twitter:
99
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
100
+ mastodon:
101
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
102
+ server: ""
103
+ reddit:
104
+ title_template: '{{ .ProjectName }} {{ .Tag }} is out!'
105
+ url_template: '{{ .ReleaseURL }}'
106
+ slack:
107
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
108
+ username: GoReleaser
109
+ discord:
110
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
111
+ author: GoReleaser
112
+ color: "3888754"
113
+ icon_url: https://goreleaser.com/static/avatar.png
114
+ teams:
115
+ title_template: '{{ .ProjectName }} {{ .Tag }} is out!'
116
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
117
+ color: '#2D313E'
118
+ icon_url: https://goreleaser.com/static/avatar.png
119
+ smtp:
120
+ subject_template: '{{ .ProjectName }} {{ .Tag }} is out!'
121
+ body_template: 'You can view details from: {{ .ReleaseURL }}'
122
+ mattermost:
123
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
124
+ title_template: '{{ .ProjectName }} {{ .Tag }} is out!'
125
+ username: GoReleaser
126
+ linkedin:
127
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
128
+ telegram:
129
+ message_template: '{{ mdv2escape .ProjectName }} {{ mdv2escape .Tag }} is out{{ mdv2escape "!" }} Check it out at {{ mdv2escape .ReleaseURL }}'
130
+ parse_mode: MarkdownV2
131
+ webhook:
132
+ message_template: '{ "message": "{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}"}'
133
+ content_type: application/json; charset=utf-8
134
+ expected_status_codes:
135
+ - 200
136
+ - 201
137
+ - 202
138
+ - 204
139
+ opencollective:
140
+ title_template: '{{ .Tag }}'
141
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out!<br/>Check it out at <a href="{{ .ReleaseURL }}">{{ .ReleaseURL }}</a>'
142
+ bluesky:
143
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
144
+ discourse:
145
+ title_template: '{{ .ProjectName }} {{ .Tag }} is out!'
146
+ message_template: '{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .ReleaseURL }}'
147
+ username: system
148
+ git:
149
+ tag_sort: -version:refname
150
+ mcp:
151
+ name: ""
152
+ title: ""
153
+ auth:
154
+ type: none
155
+ github_urls:
156
+ download: https://github.com
157
+ gitlab_urls:
158
+ download: https://gitlab.com
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const path = __importStar(require("path"));
38
+ const childProcess = __importStar(require("child_process"));
39
+ const BINARY_DISTRIBUTION_PACKAGES = {
40
+ win32_ia32: "excel-mcp-server_windows_386_sse2",
41
+ win32_x64: "excel-mcp-server_windows_amd64_v1",
42
+ win32_arm64: "excel-mcp-server_windows_arm64_v8.0",
43
+ darwin_x64: "excel-mcp-server_darwin_amd64_v1",
44
+ darwin_arm64: "excel-mcp-server_darwin_arm64_v8.0",
45
+ linux_ia32: "excel-mcp-server_linux_386_sse2",
46
+ linux_x64: "excel-mcp-server_linux_amd64_v1",
47
+ linux_arm64: "excel-mcp-server_linux_arm64_v8.0",
48
+ };
49
+ function getBinaryPath() {
50
+ const suffix = process.platform === 'win32' ? '.exe' : '';
51
+ const pkg = BINARY_DISTRIBUTION_PACKAGES[`${process.platform}_${process.arch}`];
52
+ if (pkg) {
53
+ return path.resolve(__dirname, pkg, `excel-mcp-server${suffix}`);
54
+ }
55
+ else {
56
+ throw new Error(`Unsupported platform: ${process.platform}_${process.arch}`);
57
+ }
58
+ }
59
+ childProcess.execFileSync(getBinaryPath(), process.argv, {
60
+ stdio: 'inherit',
61
+ });
@@ -0,0 +1 @@
1
+ {"project_name":"excel-mcp-server","tag":"v0.14.0","previous_tag":"v0.12.0","version":"0.14.0-SNAPSHOT-5a997a0","commit":"5a997a08f2f28713df99c467fde5715007bf963a","date":"2026-02-05T08:10:23.439288+01:00","runtime":{"goos":"darwin","goarch":"arm64"}}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "excel-mcp-server-pcvelz",
3
+ "version": "0.15.0",
4
+ "description": "An MCP server that reads and writes spreadsheet data to MS Excel file",
5
+ "author": "negokaz",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "excel-mcp-server": "dist/launcher.js"
9
+ },
10
+ "files": [
11
+ "dist/"
12
+ ],
13
+ "scripts": {
14
+ "build": "goreleaser build --snapshot --clean && tsc",
15
+ "prepublishOnly": "npm run build",
16
+ "watch": "tsc --watch",
17
+ "debug": "npx @modelcontextprotocol/inspector dist/launcher.js"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^22.13.4",
21
+ "typescript": "^5.7.3"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public"
25
+ }
26
+ }