@mcp-z/mcp-sheets 1.0.0 → 1.0.1

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.
Files changed (150) hide show
  1. package/README.md +32 -3
  2. package/bin/server.js +1 -1
  3. package/dist/cjs/constants.js.map +1 -1
  4. package/dist/cjs/index.js +13 -13
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/lib/create-store.js.map +1 -1
  7. package/dist/cjs/mcp/index.js +6 -6
  8. package/dist/cjs/mcp/index.js.map +1 -1
  9. package/dist/cjs/mcp/prompts/a1-notation.js.map +1 -1
  10. package/dist/cjs/mcp/prompts/index.js +2 -2
  11. package/dist/cjs/mcp/prompts/index.js.map +1 -1
  12. package/dist/cjs/mcp/resources/index.js +2 -2
  13. package/dist/cjs/mcp/resources/index.js.map +1 -1
  14. package/dist/cjs/mcp/resources/spreadsheet.js.map +1 -1
  15. package/dist/cjs/mcp/tools/cells-format.js +8 -8
  16. package/dist/cjs/mcp/tools/cells-format.js.map +1 -1
  17. package/dist/cjs/mcp/tools/chart-create.js +8 -8
  18. package/dist/cjs/mcp/tools/chart-create.js.map +1 -1
  19. package/dist/cjs/mcp/tools/columns-get.js +3 -3
  20. package/dist/cjs/mcp/tools/columns-get.js.map +1 -1
  21. package/dist/cjs/mcp/tools/columns-update.js +10 -10
  22. package/dist/cjs/mcp/tools/columns-update.js.map +1 -1
  23. package/dist/cjs/mcp/tools/csv-get-columns.js +2 -2
  24. package/dist/cjs/mcp/tools/csv-get-columns.js.map +1 -1
  25. package/dist/cjs/mcp/tools/dimensions-batch-update.js +16 -16
  26. package/dist/cjs/mcp/tools/dimensions-batch-update.js.map +1 -1
  27. package/dist/cjs/mcp/tools/dimensions-move.js +5 -5
  28. package/dist/cjs/mcp/tools/dimensions-move.js.map +1 -1
  29. package/dist/cjs/mcp/tools/index.js +52 -52
  30. package/dist/cjs/mcp/tools/index.js.map +1 -1
  31. package/dist/cjs/mcp/tools/lib/dimension-operations.js.map +1 -1
  32. package/dist/cjs/mcp/tools/rows-append.js +10 -10
  33. package/dist/cjs/mcp/tools/rows-append.js.map +1 -1
  34. package/dist/cjs/mcp/tools/rows-csv-append.js +13 -13
  35. package/dist/cjs/mcp/tools/rows-csv-append.js.map +1 -1
  36. package/dist/cjs/mcp/tools/rows-get.js +4 -4
  37. package/dist/cjs/mcp/tools/rows-get.js.map +1 -1
  38. package/dist/cjs/mcp/tools/sheet-copy-to.js +4 -4
  39. package/dist/cjs/mcp/tools/sheet-copy-to.js.map +1 -1
  40. package/dist/cjs/mcp/tools/sheet-copy.js +5 -5
  41. package/dist/cjs/mcp/tools/sheet-copy.js.map +1 -1
  42. package/dist/cjs/mcp/tools/sheet-create.js +4 -4
  43. package/dist/cjs/mcp/tools/sheet-create.js.map +1 -1
  44. package/dist/cjs/mcp/tools/sheet-delete.js +4 -4
  45. package/dist/cjs/mcp/tools/sheet-delete.js.map +1 -1
  46. package/dist/cjs/mcp/tools/sheet-find.js +7 -7
  47. package/dist/cjs/mcp/tools/sheet-find.js.map +1 -1
  48. package/dist/cjs/mcp/tools/sheet-rename.js +5 -5
  49. package/dist/cjs/mcp/tools/sheet-rename.js.map +1 -1
  50. package/dist/cjs/mcp/tools/spreadsheet-copy.js +2 -2
  51. package/dist/cjs/mcp/tools/spreadsheet-copy.js.map +1 -1
  52. package/dist/cjs/mcp/tools/spreadsheet-create.js +2 -2
  53. package/dist/cjs/mcp/tools/spreadsheet-create.js.map +1 -1
  54. package/dist/cjs/mcp/tools/spreadsheet-find.js +6 -6
  55. package/dist/cjs/mcp/tools/spreadsheet-find.js.map +1 -1
  56. package/dist/cjs/mcp/tools/spreadsheet-rename.js +3 -3
  57. package/dist/cjs/mcp/tools/spreadsheet-rename.js.map +1 -1
  58. package/dist/cjs/mcp/tools/validation-set.js +8 -8
  59. package/dist/cjs/mcp/tools/validation-set.js.map +1 -1
  60. package/dist/cjs/mcp/tools/values-batch-update.js +8 -8
  61. package/dist/cjs/mcp/tools/values-batch-update.js.map +1 -1
  62. package/dist/cjs/mcp/tools/values-clear.js +6 -6
  63. package/dist/cjs/mcp/tools/values-clear.js.map +1 -1
  64. package/dist/cjs/mcp/tools/values-csv-update.js +8 -8
  65. package/dist/cjs/mcp/tools/values-csv-update.js.map +1 -1
  66. package/dist/cjs/mcp/tools/values-replace.js +8 -8
  67. package/dist/cjs/mcp/tools/values-replace.js.map +1 -1
  68. package/dist/cjs/mcp/tools/values-search.js +5 -5
  69. package/dist/cjs/mcp/tools/values-search.js.map +1 -1
  70. package/dist/cjs/schemas/index.js.map +1 -1
  71. package/dist/cjs/setup/config.js +11 -1
  72. package/dist/cjs/setup/config.js.map +1 -1
  73. package/dist/cjs/setup/http.js +6 -2
  74. package/dist/cjs/setup/http.js.map +1 -1
  75. package/dist/cjs/setup/index.js +9 -9
  76. package/dist/cjs/setup/index.js.map +1 -1
  77. package/dist/cjs/setup/oauth-google.d.cts +3 -2
  78. package/dist/cjs/setup/oauth-google.d.ts +3 -2
  79. package/dist/cjs/setup/oauth-google.js +15 -12
  80. package/dist/cjs/setup/oauth-google.js.map +1 -1
  81. package/dist/cjs/setup/runtime.js +9 -9
  82. package/dist/cjs/setup/runtime.js.map +1 -1
  83. package/dist/cjs/setup/stdio.js +2 -2
  84. package/dist/cjs/setup/stdio.js.map +1 -1
  85. package/dist/cjs/spreadsheet/column-utilities.js.map +1 -1
  86. package/dist/cjs/spreadsheet/csv-streaming.js.map +1 -1
  87. package/dist/cjs/spreadsheet/data-operations.js +9 -9
  88. package/dist/cjs/spreadsheet/data-operations.js.map +1 -1
  89. package/dist/cjs/spreadsheet/deduplication-utils.js.map +1 -1
  90. package/dist/cjs/spreadsheet/range-operations.js +2 -2
  91. package/dist/cjs/spreadsheet/range-operations.js.map +1 -1
  92. package/dist/cjs/spreadsheet/sheet-operations.js +3 -3
  93. package/dist/cjs/spreadsheet/sheet-operations.js.map +1 -1
  94. package/dist/cjs/spreadsheet/spreadsheet-management.js.map +1 -1
  95. package/dist/esm/constants.js.map +1 -1
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/lib/create-store.js.map +1 -1
  98. package/dist/esm/mcp/index.js.map +1 -1
  99. package/dist/esm/mcp/prompts/a1-notation.js.map +1 -1
  100. package/dist/esm/mcp/prompts/index.js.map +1 -1
  101. package/dist/esm/mcp/resources/index.js.map +1 -1
  102. package/dist/esm/mcp/resources/spreadsheet.js.map +1 -1
  103. package/dist/esm/mcp/tools/cells-format.js.map +1 -1
  104. package/dist/esm/mcp/tools/chart-create.js.map +1 -1
  105. package/dist/esm/mcp/tools/columns-get.js.map +1 -1
  106. package/dist/esm/mcp/tools/columns-update.js.map +1 -1
  107. package/dist/esm/mcp/tools/csv-get-columns.js.map +1 -1
  108. package/dist/esm/mcp/tools/dimensions-batch-update.js.map +1 -1
  109. package/dist/esm/mcp/tools/dimensions-move.js.map +1 -1
  110. package/dist/esm/mcp/tools/index.js.map +1 -1
  111. package/dist/esm/mcp/tools/lib/dimension-operations.js.map +1 -1
  112. package/dist/esm/mcp/tools/rows-append.js.map +1 -1
  113. package/dist/esm/mcp/tools/rows-csv-append.js.map +1 -1
  114. package/dist/esm/mcp/tools/rows-get.js.map +1 -1
  115. package/dist/esm/mcp/tools/sheet-copy-to.js.map +1 -1
  116. package/dist/esm/mcp/tools/sheet-copy.js.map +1 -1
  117. package/dist/esm/mcp/tools/sheet-create.js.map +1 -1
  118. package/dist/esm/mcp/tools/sheet-delete.js.map +1 -1
  119. package/dist/esm/mcp/tools/sheet-find.js.map +1 -1
  120. package/dist/esm/mcp/tools/sheet-rename.js.map +1 -1
  121. package/dist/esm/mcp/tools/spreadsheet-copy.js.map +1 -1
  122. package/dist/esm/mcp/tools/spreadsheet-create.js.map +1 -1
  123. package/dist/esm/mcp/tools/spreadsheet-find.js.map +1 -1
  124. package/dist/esm/mcp/tools/spreadsheet-rename.js.map +1 -1
  125. package/dist/esm/mcp/tools/validation-set.js.map +1 -1
  126. package/dist/esm/mcp/tools/values-batch-update.js.map +1 -1
  127. package/dist/esm/mcp/tools/values-clear.js.map +1 -1
  128. package/dist/esm/mcp/tools/values-csv-update.js.map +1 -1
  129. package/dist/esm/mcp/tools/values-replace.js.map +1 -1
  130. package/dist/esm/mcp/tools/values-search.js.map +1 -1
  131. package/dist/esm/schemas/index.js.map +1 -1
  132. package/dist/esm/setup/config.js +12 -2
  133. package/dist/esm/setup/config.js.map +1 -1
  134. package/dist/esm/setup/http.js +4 -0
  135. package/dist/esm/setup/http.js.map +1 -1
  136. package/dist/esm/setup/index.js.map +1 -1
  137. package/dist/esm/setup/oauth-google.d.ts +3 -2
  138. package/dist/esm/setup/oauth-google.js +8 -11
  139. package/dist/esm/setup/oauth-google.js.map +1 -1
  140. package/dist/esm/setup/runtime.js.map +1 -1
  141. package/dist/esm/setup/stdio.js.map +1 -1
  142. package/dist/esm/spreadsheet/column-utilities.js.map +1 -1
  143. package/dist/esm/spreadsheet/csv-streaming.js.map +1 -1
  144. package/dist/esm/spreadsheet/data-operations.js.map +1 -1
  145. package/dist/esm/spreadsheet/deduplication-utils.js.map +1 -1
  146. package/dist/esm/spreadsheet/range-operations.js.map +1 -1
  147. package/dist/esm/spreadsheet/sheet-operations.js.map +1 -1
  148. package/dist/esm/spreadsheet/spreadsheet-management.js.map +1 -1
  149. package/dist/esm/types.js.map +1 -1
  150. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-sheets/src/spreadsheet/spreadsheet-management.ts"],"sourcesContent":["import type { drive_v3, sheets_v4 } from 'googleapis';\nimport type { GoogleApiError } from '../types.js';\n\nexport const SPREADSHEET_URL_RE = /https:\\/\\/docs.google.com\\/spreadsheets\\/d\\/([a-zA-Z0-9-_]{10,})/;\nexport const SPREADSHEET_ID_RE = /^[a-zA-Z0-9-_]{30,}$/;\n\nexport async function findById(sheets: sheets_v4.Sheets, drive: drive_v3.Drive, id: string) {\n const ssResp = await sheets.spreadsheets.get({ spreadsheetId: id }).catch((e: unknown) => {\n const error = e as GoogleApiError;\n const status = error?.response?.status || error?.status || error?.code;\n if (Number(status) === 404) return null;\n throw e;\n });\n const dmResp = await drive.files.get({ fileId: id, fields: 'modifiedTime,webViewLink,name' }).catch((e: unknown) => {\n const error = e as GoogleApiError;\n const status = error?.response?.status || error?.status || error?.code;\n if (Number(status) === 404) return null;\n throw e;\n });\n const dm = dmResp?.data;\n if (!ssResp) return null;\n const ss = ssResp.data;\n return {\n id: id,\n spreadsheetTitle: ss?.properties?.title ?? dm?.name,\n url: ss?.spreadsheetUrl ?? dm?.webViewLink,\n modifiedTime: dm?.modifiedTime,\n };\n}\n\nexport async function findByName(drive: drive_v3.Drive, name: string) {\n const escaped = String(name).replace(/['\"\\\\]/g, (m) => `\\\\${m}`);\n const q = `mimeType='application/vnd.google-apps.spreadsheet' and name contains '${escaped}' and trashed = false`;\n const resp = await drive.files.list({ q, pageSize: 50, fields: 'files(id,name,webViewLink,modifiedTime)' });\n const files = resp.data?.files || [];\n return files.map((f) => ({ id: String(f.id), spreadsheetTitle: String(f.name), url: String(f.webViewLink), modifiedTime: f.modifiedTime }));\n}\n\nexport async function findSpreadsheetsByRef(sheets: sheets_v4.Sheets, drive: drive_v3.Drive, ref: string) {\n const trimmedRef = ref?.trim();\n if (!trimmedRef) return [];\n\n // Strategy 1: Try URL extraction (most specific)\n const urlMatch = trimmedRef.match(SPREADSHEET_URL_RE);\n if (urlMatch && typeof urlMatch[1] === 'string' && urlMatch[1].length > 0) {\n const id = urlMatch[1];\n const r = await findById(sheets, drive, id);\n return r ? [r] : [];\n }\n\n // Strategy 2: Try direct ID match (if it looks like a spreadsheet ID)\n if (SPREADSHEET_ID_RE.test(trimmedRef)) {\n const r = await findById(sheets, drive, trimmedRef);\n return r ? [r] : [];\n }\n\n // Strategy 3: Search by name\n return await findByName(drive, trimmedRef);\n}\n"],"names":["SPREADSHEET_URL_RE","SPREADSHEET_ID_RE","findById","sheets","drive","id","ss","ssResp","spreadsheets","get","spreadsheetId","catch","e","error","status","response","code","Number","dmResp","files","fileId","fields","dm","data","spreadsheetTitle","properties","title","name","url","spreadsheetUrl","webViewLink","modifiedTime","findByName","resp","escaped","String","replace","m","q","list","pageSize","map","f","findSpreadsheetsByRef","ref","trimmedRef","trim","urlMatch","match","length","r","test"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/mcp-z/mcp-sheets/src/spreadsheet/spreadsheet-management.ts"],"sourcesContent":["import type { drive_v3, sheets_v4 } from 'googleapis';\nimport type { GoogleApiError } from '../types.ts';\n\nexport const SPREADSHEET_URL_RE = /https:\\/\\/docs.google.com\\/spreadsheets\\/d\\/([a-zA-Z0-9-_]{10,})/;\nexport const SPREADSHEET_ID_RE = /^[a-zA-Z0-9-_]{30,}$/;\n\nexport async function findById(sheets: sheets_v4.Sheets, drive: drive_v3.Drive, id: string) {\n const ssResp = await sheets.spreadsheets.get({ spreadsheetId: id }).catch((e: unknown) => {\n const error = e as GoogleApiError;\n const status = error?.response?.status || error?.status || error?.code;\n if (Number(status) === 404) return null;\n throw e;\n });\n const dmResp = await drive.files.get({ fileId: id, fields: 'modifiedTime,webViewLink,name' }).catch((e: unknown) => {\n const error = e as GoogleApiError;\n const status = error?.response?.status || error?.status || error?.code;\n if (Number(status) === 404) return null;\n throw e;\n });\n const dm = dmResp?.data;\n if (!ssResp) return null;\n const ss = ssResp.data;\n return {\n id: id,\n spreadsheetTitle: ss?.properties?.title ?? dm?.name,\n url: ss?.spreadsheetUrl ?? dm?.webViewLink,\n modifiedTime: dm?.modifiedTime,\n };\n}\n\nexport async function findByName(drive: drive_v3.Drive, name: string) {\n const escaped = String(name).replace(/['\"\\\\]/g, (m) => `\\\\${m}`);\n const q = `mimeType='application/vnd.google-apps.spreadsheet' and name contains '${escaped}' and trashed = false`;\n const resp = await drive.files.list({ q, pageSize: 50, fields: 'files(id,name,webViewLink,modifiedTime)' });\n const files = resp.data?.files || [];\n return files.map((f) => ({ id: String(f.id), spreadsheetTitle: String(f.name), url: String(f.webViewLink), modifiedTime: f.modifiedTime }));\n}\n\nexport async function findSpreadsheetsByRef(sheets: sheets_v4.Sheets, drive: drive_v3.Drive, ref: string) {\n const trimmedRef = ref?.trim();\n if (!trimmedRef) return [];\n\n // Strategy 1: Try URL extraction (most specific)\n const urlMatch = trimmedRef.match(SPREADSHEET_URL_RE);\n if (urlMatch && typeof urlMatch[1] === 'string' && urlMatch[1].length > 0) {\n const id = urlMatch[1];\n const r = await findById(sheets, drive, id);\n return r ? [r] : [];\n }\n\n // Strategy 2: Try direct ID match (if it looks like a spreadsheet ID)\n if (SPREADSHEET_ID_RE.test(trimmedRef)) {\n const r = await findById(sheets, drive, trimmedRef);\n return r ? [r] : [];\n }\n\n // Strategy 3: Search by name\n return await findByName(drive, trimmedRef);\n}\n"],"names":["SPREADSHEET_URL_RE","SPREADSHEET_ID_RE","findById","sheets","drive","id","ss","ssResp","spreadsheets","get","spreadsheetId","catch","e","error","status","response","code","Number","dmResp","files","fileId","fields","dm","data","spreadsheetTitle","properties","title","name","url","spreadsheetUrl","webViewLink","modifiedTime","findByName","resp","escaped","String","replace","m","q","list","pageSize","map","f","findSpreadsheetsByRef","ref","trimmedRef","trim","urlMatch","match","length","r","test"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-sheets/src/types.ts"],"sourcesContent":["import type { CachedToken, DcrConfig, OAuthConfig } from '@mcp-z/oauth-google';\nimport type { BaseServerConfig, MiddlewareLayer, PromptModule, ResourceModule, Logger as ServerLogger, ToolModule } from '@mcp-z/server';\nimport type { Keyv } from 'keyv';\nimport type { OAuthAdapters } from './setup/oauth-google.js';\n\nexport type Logger = Pick<Console, 'info' | 'error' | 'warn' | 'debug'>;\n\n/**\n * Composes transport config, OAuth config, and application-level config\n */\nexport interface ServerConfig extends BaseServerConfig, OAuthConfig {\n logLevel: string;\n baseDir: string;\n name: string;\n version: string;\n repositoryUrl: string;\n baseUrl?: string;\n\n // DCR configuration (when auth === 'dcr')\n dcrConfig?: DcrConfig;\n}\n\nexport interface GoogleApiError {\n response?: { status?: number };\n status?: number;\n statusCode?: number;\n code?: number | string;\n message?: string;\n}\n\n/** Runtime dependencies exposed to middleware/factories. */\nexport interface RuntimeDeps {\n config: ServerConfig;\n logger: ServerLogger;\n tokenStore: Keyv<CachedToken>;\n oauthAdapters: OAuthAdapters;\n baseUrl?: string;\n}\n\n/** Collections of MCP modules produced by domain factories. */\nexport type DomainModules = {\n tools: ToolModule[];\n resources: ResourceModule[];\n prompts: PromptModule[];\n};\n\n/** Factory that produces a middleware layer given runtime dependencies. */\nexport type MiddlewareFactory = (deps: RuntimeDeps) => MiddlewareLayer;\n\n/** Shared runtime configuration returned by `createDefaultRuntime`. */\nexport interface CommonRuntime {\n deps: RuntimeDeps;\n middlewareFactories: MiddlewareFactory[];\n createDomainModules: () => DomainModules;\n close: () => Promise<void>;\n}\n\nexport interface RuntimeOverrides {\n middlewareFactories?: MiddlewareFactory[];\n createDomainModules?: () => DomainModules;\n}\n"],"names":[],"mappings":"AAyDA,WAGC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/mcp-z/mcp-sheets/src/types.ts"],"sourcesContent":["import type { CachedToken, DcrConfig, OAuthConfig } from '@mcp-z/oauth-google';\nimport type { BaseServerConfig, MiddlewareLayer, PromptModule, ResourceModule, Logger as ServerLogger, ToolModule } from '@mcp-z/server';\nimport type { Keyv } from 'keyv';\nimport type { OAuthAdapters } from './setup/oauth-google.ts';\n\nexport type Logger = Pick<Console, 'info' | 'error' | 'warn' | 'debug'>;\n\n/**\n * Composes transport config, OAuth config, and application-level config\n */\nexport interface ServerConfig extends BaseServerConfig, OAuthConfig {\n logLevel: string;\n baseDir: string;\n name: string;\n version: string;\n repositoryUrl: string;\n baseUrl?: string;\n\n // DCR configuration (when auth === 'dcr')\n dcrConfig?: DcrConfig;\n}\n\nexport interface GoogleApiError {\n response?: { status?: number };\n status?: number;\n statusCode?: number;\n code?: number | string;\n message?: string;\n}\n\n/** Runtime dependencies exposed to middleware/factories. */\nexport interface RuntimeDeps {\n config: ServerConfig;\n logger: ServerLogger;\n tokenStore: Keyv<CachedToken>;\n oauthAdapters: OAuthAdapters;\n baseUrl?: string;\n}\n\n/** Collections of MCP modules produced by domain factories. */\nexport type DomainModules = {\n tools: ToolModule[];\n resources: ResourceModule[];\n prompts: PromptModule[];\n};\n\n/** Factory that produces a middleware layer given runtime dependencies. */\nexport type MiddlewareFactory = (deps: RuntimeDeps) => MiddlewareLayer;\n\n/** Shared runtime configuration returned by `createDefaultRuntime`. */\nexport interface CommonRuntime {\n deps: RuntimeDeps;\n middlewareFactories: MiddlewareFactory[];\n createDomainModules: () => DomainModules;\n close: () => Promise<void>;\n}\n\nexport interface RuntimeOverrides {\n middlewareFactories?: MiddlewareFactory[];\n createDomainModules?: () => DomainModules;\n}\n"],"names":[],"mappings":"AAyDA,WAGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-z/mcp-sheets",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "MCP server for Google Sheets integration with OAuth authentication, spreadsheet management, batch operations, and advanced formatting",
5
5
  "keywords": [
6
6
  "sheets",