@mcp-z/mcp-gmail 1.0.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 +21 -0
- package/README.md +167 -0
- package/bin/server.js +5 -0
- package/dist/cjs/constants.d.cts +11 -0
- package/dist/cjs/constants.d.ts +11 -0
- package/dist/cjs/constants.js +39 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/email/composition/rfc822-builder.d.cts +11 -0
- package/dist/cjs/email/composition/rfc822-builder.d.ts +11 -0
- package/dist/cjs/email/composition/rfc822-builder.js +24 -0
- package/dist/cjs/email/composition/rfc822-builder.js.map +1 -0
- package/dist/cjs/email/messages/fetch-message.d.cts +24 -0
- package/dist/cjs/email/messages/fetch-message.d.ts +24 -0
- package/dist/cjs/email/messages/fetch-message.js +367 -0
- package/dist/cjs/email/messages/fetch-message.js.map +1 -0
- package/dist/cjs/email/messages/messages.d.cts +7 -0
- package/dist/cjs/email/messages/messages.d.ts +7 -0
- package/dist/cjs/email/messages/messages.js +146 -0
- package/dist/cjs/email/messages/messages.js.map +1 -0
- package/dist/cjs/email/parsing/header-parsing.d.cts +1 -0
- package/dist/cjs/email/parsing/header-parsing.d.ts +1 -0
- package/dist/cjs/email/parsing/header-parsing.js +20 -0
- package/dist/cjs/email/parsing/header-parsing.js.map +1 -0
- package/dist/cjs/email/parsing/headers-utils.d.cts +5 -0
- package/dist/cjs/email/parsing/headers-utils.d.ts +5 -0
- package/dist/cjs/email/parsing/headers-utils.js +46 -0
- package/dist/cjs/email/parsing/headers-utils.js.map +1 -0
- package/dist/cjs/email/parsing/html-processing.d.cts +8 -0
- package/dist/cjs/email/parsing/html-processing.d.ts +8 -0
- package/dist/cjs/email/parsing/html-processing.js +72 -0
- package/dist/cjs/email/parsing/html-processing.js.map +1 -0
- package/dist/cjs/email/parsing/message-extraction.d.cts +2 -0
- package/dist/cjs/email/parsing/message-extraction.d.ts +2 -0
- package/dist/cjs/email/parsing/message-extraction.js +25 -0
- package/dist/cjs/email/parsing/message-extraction.js.map +1 -0
- package/dist/cjs/email/querying/execute-query.d.cts +17 -0
- package/dist/cjs/email/querying/execute-query.d.ts +17 -0
- package/dist/cjs/email/querying/execute-query.js +265 -0
- package/dist/cjs/email/querying/execute-query.js.map +1 -0
- package/dist/cjs/email/querying/pagination.d.cts +27 -0
- package/dist/cjs/email/querying/pagination.d.ts +27 -0
- package/dist/cjs/email/querying/pagination.js +533 -0
- package/dist/cjs/email/querying/pagination.js.map +1 -0
- package/dist/cjs/email/querying/query-builder.d.cts +47 -0
- package/dist/cjs/email/querying/query-builder.d.ts +47 -0
- package/dist/cjs/email/querying/query-builder.js +387 -0
- package/dist/cjs/email/querying/query-builder.js.map +1 -0
- package/dist/cjs/email/querying/search-execution.d.cts +29 -0
- package/dist/cjs/email/querying/search-execution.d.ts +29 -0
- package/dist/cjs/email/querying/search-execution.js +190 -0
- package/dist/cjs/email/querying/search-execution.js.map +1 -0
- package/dist/cjs/index.d.cts +8 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.js +314 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/labels/gmail-labels.d.cts +2 -0
- package/dist/cjs/labels/gmail-labels.d.ts +2 -0
- package/dist/cjs/labels/gmail-labels.js +206 -0
- package/dist/cjs/labels/gmail-labels.js.map +1 -0
- package/dist/cjs/lib/base64-encoding.d.cts +2 -0
- package/dist/cjs/lib/base64-encoding.d.ts +2 -0
- package/dist/cjs/lib/base64-encoding.js +32 -0
- package/dist/cjs/lib/base64-encoding.js.map +1 -0
- package/dist/cjs/lib/create-store.d.cts +2 -0
- package/dist/cjs/lib/create-store.d.ts +2 -0
- package/dist/cjs/lib/create-store.js +166 -0
- package/dist/cjs/lib/create-store.js.map +1 -0
- package/dist/cjs/lib/date-conversion.d.cts +1 -0
- package/dist/cjs/lib/date-conversion.d.ts +1 -0
- package/dist/cjs/lib/date-conversion.js +16 -0
- package/dist/cjs/lib/date-conversion.js.map +1 -0
- package/dist/cjs/lib/messages-to-row.d.cts +61 -0
- package/dist/cjs/lib/messages-to-row.d.ts +61 -0
- package/dist/cjs/lib/messages-to-row.js +243 -0
- package/dist/cjs/lib/messages-to-row.js.map +1 -0
- package/dist/cjs/mcp/index.d.cts +3 -0
- package/dist/cjs/mcp/index.d.ts +3 -0
- package/dist/cjs/mcp/index.js +66 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/draft-email.d.cts +30 -0
- package/dist/cjs/mcp/prompts/draft-email.d.ts +30 -0
- package/dist/cjs/mcp/prompts/draft-email.js +184 -0
- package/dist/cjs/mcp/prompts/draft-email.js.map +1 -0
- package/dist/cjs/mcp/prompts/index.d.cts +2 -0
- package/dist/cjs/mcp/prompts/index.d.ts +2 -0
- package/dist/cjs/mcp/prompts/index.js +26 -0
- package/dist/cjs/mcp/prompts/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
- package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/cjs/mcp/resources/email.d.cts +11 -0
- package/dist/cjs/mcp/resources/email.d.ts +11 -0
- package/dist/cjs/mcp/resources/email.js +256 -0
- package/dist/cjs/mcp/resources/email.js.map +1 -0
- package/dist/cjs/mcp/resources/index.d.cts +1 -0
- package/dist/cjs/mcp/resources/index.d.ts +1 -0
- package/dist/cjs/mcp/resources/index.js +17 -0
- package/dist/cjs/mcp/resources/index.js.map +1 -0
- package/dist/cjs/mcp/tools/categories-list.d.cts +58 -0
- package/dist/cjs/mcp/tools/categories-list.d.ts +58 -0
- package/dist/cjs/mcp/tools/categories-list.js +298 -0
- package/dist/cjs/mcp/tools/categories-list.js.map +1 -0
- package/dist/cjs/mcp/tools/index.d.cts +11 -0
- package/dist/cjs/mcp/tools/index.d.ts +11 -0
- package/dist/cjs/mcp/tools/index.js +62 -0
- package/dist/cjs/mcp/tools/index.js.map +1 -0
- package/dist/cjs/mcp/tools/label-add.d.cts +61 -0
- package/dist/cjs/mcp/tools/label-add.d.ts +61 -0
- package/dist/cjs/mcp/tools/label-add.js +280 -0
- package/dist/cjs/mcp/tools/label-add.js.map +1 -0
- package/dist/cjs/mcp/tools/label-delete.d.cts +71 -0
- package/dist/cjs/mcp/tools/label-delete.d.ts +71 -0
- package/dist/cjs/mcp/tools/label-delete.js +476 -0
- package/dist/cjs/mcp/tools/label-delete.js.map +1 -0
- package/dist/cjs/mcp/tools/labels-list.d.cts +75 -0
- package/dist/cjs/mcp/tools/labels-list.d.ts +75 -0
- package/dist/cjs/mcp/tools/labels-list.js +298 -0
- package/dist/cjs/mcp/tools/labels-list.js.map +1 -0
- package/dist/cjs/mcp/tools/message-get.d.cts +146 -0
- package/dist/cjs/mcp/tools/message-get.d.ts +146 -0
- package/dist/cjs/mcp/tools/message-get.js +317 -0
- package/dist/cjs/mcp/tools/message-get.js.map +1 -0
- package/dist/cjs/mcp/tools/message-mark-read.d.cts +50 -0
- package/dist/cjs/mcp/tools/message-mark-read.d.ts +50 -0
- package/dist/cjs/mcp/tools/message-mark-read.js +254 -0
- package/dist/cjs/mcp/tools/message-mark-read.js.map +1 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.d.cts +71 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.d.ts +71 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.js +450 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.js.map +1 -0
- package/dist/cjs/mcp/tools/message-respond.d.cts +60 -0
- package/dist/cjs/mcp/tools/message-respond.d.ts +60 -0
- package/dist/cjs/mcp/tools/message-respond.js +367 -0
- package/dist/cjs/mcp/tools/message-respond.js.map +1 -0
- package/dist/cjs/mcp/tools/message-search.d.cts +182 -0
- package/dist/cjs/mcp/tools/message-search.d.ts +182 -0
- package/dist/cjs/mcp/tools/message-search.js +405 -0
- package/dist/cjs/mcp/tools/message-search.js.map +1 -0
- package/dist/cjs/mcp/tools/message-send.d.cts +87 -0
- package/dist/cjs/mcp/tools/message-send.d.ts +87 -0
- package/dist/cjs/mcp/tools/message-send.js +288 -0
- package/dist/cjs/mcp/tools/message-send.js.map +1 -0
- package/dist/cjs/mcp/tools/messages-export-csv.d.cts +84 -0
- package/dist/cjs/mcp/tools/messages-export-csv.d.ts +84 -0
- package/dist/cjs/mcp/tools/messages-export-csv.js +530 -0
- package/dist/cjs/mcp/tools/messages-export-csv.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schemas/gmail-query-schema.d.cts +36 -0
- package/dist/cjs/schemas/gmail-query-schema.d.ts +36 -0
- package/dist/cjs/schemas/gmail-query-schema.js +117 -0
- package/dist/cjs/schemas/gmail-query-schema.js.map +1 -0
- package/dist/cjs/schemas/index.d.cts +1 -0
- package/dist/cjs/schemas/index.d.ts +1 -0
- package/dist/cjs/schemas/index.js +19 -0
- package/dist/cjs/schemas/index.js.map +1 -0
- package/dist/cjs/setup/config.d.cts +48 -0
- package/dist/cjs/setup/config.d.ts +48 -0
- package/dist/cjs/setup/config.js +217 -0
- package/dist/cjs/setup/config.js.map +1 -0
- package/dist/cjs/setup/http.d.cts +8 -0
- package/dist/cjs/setup/http.d.ts +8 -0
- package/dist/cjs/setup/http.js +267 -0
- package/dist/cjs/setup/http.js.map +1 -0
- package/dist/cjs/setup/index.d.cts +5 -0
- package/dist/cjs/setup/index.d.ts +5 -0
- package/dist/cjs/setup/index.js +46 -0
- package/dist/cjs/setup/index.js.map +1 -0
- package/dist/cjs/setup/oauth-google.d.cts +54 -0
- package/dist/cjs/setup/oauth-google.d.ts +54 -0
- package/dist/cjs/setup/oauth-google.js +332 -0
- package/dist/cjs/setup/oauth-google.js.map +1 -0
- package/dist/cjs/setup/runtime.d.cts +12 -0
- package/dist/cjs/setup/runtime.d.ts +12 -0
- package/dist/cjs/setup/runtime.js +489 -0
- package/dist/cjs/setup/runtime.js.map +1 -0
- package/dist/cjs/setup/stdio.d.cts +7 -0
- package/dist/cjs/setup/stdio.d.ts +7 -0
- package/dist/cjs/setup/stdio.js +239 -0
- package/dist/cjs/setup/stdio.js.map +1 -0
- package/dist/cjs/types.d.cts +54 -0
- package/dist/cjs/types.d.ts +54 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/constants.d.ts +11 -0
- package/dist/esm/constants.js +14 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/email/composition/rfc822-builder.d.ts +11 -0
- package/dist/esm/email/composition/rfc822-builder.js +13 -0
- package/dist/esm/email/composition/rfc822-builder.js.map +1 -0
- package/dist/esm/email/messages/fetch-message.d.ts +24 -0
- package/dist/esm/email/messages/fetch-message.js +123 -0
- package/dist/esm/email/messages/fetch-message.js.map +1 -0
- package/dist/esm/email/messages/messages.d.ts +7 -0
- package/dist/esm/email/messages/messages.js +91 -0
- package/dist/esm/email/messages/messages.js.map +1 -0
- package/dist/esm/email/parsing/header-parsing.d.ts +1 -0
- package/dist/esm/email/parsing/header-parsing.js +1 -0
- package/dist/esm/email/parsing/header-parsing.js.map +1 -0
- package/dist/esm/email/parsing/headers-utils.d.ts +5 -0
- package/dist/esm/email/parsing/headers-utils.js +25 -0
- package/dist/esm/email/parsing/headers-utils.js.map +1 -0
- package/dist/esm/email/parsing/html-processing.d.ts +8 -0
- package/dist/esm/email/parsing/html-processing.js +39 -0
- package/dist/esm/email/parsing/html-processing.js.map +1 -0
- package/dist/esm/email/parsing/message-extraction.d.ts +2 -0
- package/dist/esm/email/parsing/message-extraction.js +3 -0
- package/dist/esm/email/parsing/message-extraction.js.map +1 -0
- package/dist/esm/email/querying/execute-query.d.ts +17 -0
- package/dist/esm/email/querying/execute-query.js +45 -0
- package/dist/esm/email/querying/execute-query.js.map +1 -0
- package/dist/esm/email/querying/pagination.d.ts +27 -0
- package/dist/esm/email/querying/pagination.js +152 -0
- package/dist/esm/email/querying/pagination.js.map +1 -0
- package/dist/esm/email/querying/query-builder.d.ts +47 -0
- package/dist/esm/email/querying/query-builder.js +306 -0
- package/dist/esm/email/querying/query-builder.js.map +1 -0
- package/dist/esm/email/querying/search-execution.d.ts +29 -0
- package/dist/esm/email/querying/search-execution.js +35 -0
- package/dist/esm/email/querying/search-execution.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/labels/gmail-labels.d.ts +2 -0
- package/dist/esm/labels/gmail-labels.js +43 -0
- package/dist/esm/labels/gmail-labels.js.map +1 -0
- package/dist/esm/lib/base64-encoding.d.ts +2 -0
- package/dist/esm/lib/base64-encoding.js +13 -0
- package/dist/esm/lib/base64-encoding.js.map +1 -0
- package/dist/esm/lib/create-store.d.ts +2 -0
- package/dist/esm/lib/create-store.js +6 -0
- package/dist/esm/lib/create-store.js.map +1 -0
- package/dist/esm/lib/date-conversion.d.ts +1 -0
- package/dist/esm/lib/date-conversion.js +5 -0
- package/dist/esm/lib/date-conversion.js.map +1 -0
- package/dist/esm/lib/messages-to-row.d.ts +61 -0
- package/dist/esm/lib/messages-to-row.js +188 -0
- package/dist/esm/lib/messages-to-row.js.map +1 -0
- package/dist/esm/mcp/index.d.ts +3 -0
- package/dist/esm/mcp/index.js +6 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts/draft-email.d.ts +30 -0
- package/dist/esm/mcp/prompts/draft-email.js +37 -0
- package/dist/esm/mcp/prompts/draft-email.js.map +1 -0
- package/dist/esm/mcp/prompts/index.d.ts +2 -0
- package/dist/esm/mcp/prompts/index.js +2 -0
- package/dist/esm/mcp/prompts/index.js.map +1 -0
- package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/esm/mcp/prompts/query-syntax.js +74 -0
- package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/esm/mcp/resources/email.d.ts +11 -0
- package/dist/esm/mcp/resources/email.js +92 -0
- package/dist/esm/mcp/resources/email.js.map +1 -0
- package/dist/esm/mcp/resources/index.d.ts +1 -0
- package/dist/esm/mcp/resources/index.js +1 -0
- package/dist/esm/mcp/resources/index.js.map +1 -0
- package/dist/esm/mcp/tools/categories-list.d.ts +58 -0
- package/dist/esm/mcp/tools/categories-list.js +124 -0
- package/dist/esm/mcp/tools/categories-list.js.map +1 -0
- package/dist/esm/mcp/tools/index.d.ts +11 -0
- package/dist/esm/mcp/tools/index.js +11 -0
- package/dist/esm/mcp/tools/index.js.map +1 -0
- package/dist/esm/mcp/tools/label-add.d.ts +61 -0
- package/dist/esm/mcp/tools/label-add.js +101 -0
- package/dist/esm/mcp/tools/label-add.js.map +1 -0
- package/dist/esm/mcp/tools/label-delete.d.ts +71 -0
- package/dist/esm/mcp/tools/label-delete.js +186 -0
- package/dist/esm/mcp/tools/label-delete.js.map +1 -0
- package/dist/esm/mcp/tools/labels-list.d.ts +75 -0
- package/dist/esm/mcp/tools/labels-list.js +122 -0
- package/dist/esm/mcp/tools/labels-list.js.map +1 -0
- package/dist/esm/mcp/tools/message-get.d.ts +146 -0
- package/dist/esm/mcp/tools/message-get.js +145 -0
- package/dist/esm/mcp/tools/message-get.js.map +1 -0
- package/dist/esm/mcp/tools/message-mark-read.d.ts +50 -0
- package/dist/esm/mcp/tools/message-mark-read.js +80 -0
- package/dist/esm/mcp/tools/message-mark-read.js.map +1 -0
- package/dist/esm/mcp/tools/message-move-to-trash.d.ts +71 -0
- package/dist/esm/mcp/tools/message-move-to-trash.js +167 -0
- package/dist/esm/mcp/tools/message-move-to-trash.js.map +1 -0
- package/dist/esm/mcp/tools/message-respond.d.ts +60 -0
- package/dist/esm/mcp/tools/message-respond.js +152 -0
- package/dist/esm/mcp/tools/message-respond.js.map +1 -0
- package/dist/esm/mcp/tools/message-search.d.ts +182 -0
- package/dist/esm/mcp/tools/message-search.js +180 -0
- package/dist/esm/mcp/tools/message-search.js.map +1 -0
- package/dist/esm/mcp/tools/message-send.d.ts +87 -0
- package/dist/esm/mcp/tools/message-send.js +115 -0
- package/dist/esm/mcp/tools/message-send.js.map +1 -0
- package/dist/esm/mcp/tools/messages-export-csv.d.ts +84 -0
- package/dist/esm/mcp/tools/messages-export-csv.js +261 -0
- package/dist/esm/mcp/tools/messages-export-csv.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/schemas/gmail-query-schema.d.ts +36 -0
- package/dist/esm/schemas/gmail-query-schema.js +72 -0
- package/dist/esm/schemas/gmail-query-schema.js.map +1 -0
- package/dist/esm/schemas/index.d.ts +1 -0
- package/dist/esm/schemas/index.js +1 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/esm/setup/config.d.ts +48 -0
- package/dist/esm/setup/config.js +175 -0
- package/dist/esm/setup/config.js.map +1 -0
- package/dist/esm/setup/http.d.ts +8 -0
- package/dist/esm/setup/http.js +61 -0
- package/dist/esm/setup/http.js.map +1 -0
- package/dist/esm/setup/index.d.ts +5 -0
- package/dist/esm/setup/index.js +5 -0
- package/dist/esm/setup/index.js.map +1 -0
- package/dist/esm/setup/oauth-google.d.ts +54 -0
- package/dist/esm/setup/oauth-google.js +142 -0
- package/dist/esm/setup/oauth-google.js.map +1 -0
- package/dist/esm/setup/runtime.d.ts +12 -0
- package/dist/esm/setup/runtime.js +115 -0
- package/dist/esm/setup/runtime.js.map +1 -0
- package/dist/esm/setup/stdio.d.ts +7 -0
- package/dist/esm/setup/stdio.js +38 -0
- package/dist/esm/setup/stdio.js.map +1 -0
- package/dist/esm/types.d.ts +54 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-gmail/src/setup/runtime.ts"],"sourcesContent":["import { sanitizeForLoggingFormatter } from '@mcp-z/oauth';\nimport type { CachedToken } from '@mcp-z/oauth-google';\nimport type { Logger, MiddlewareLayer } from '@mcp-z/server';\nimport { createLoggingMiddleware } from '@mcp-z/server';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport pino from 'pino';\nimport createStore from '../lib/create-store.js';\nimport * as mcp from '../mcp/index.js';\nimport type { CommonRuntime, RuntimeDeps, RuntimeOverrides, ServerConfig, StorageContext } from '../types.js';\nimport { createOAuthAdapters, type OAuthAdapters } from './oauth-google.js';\n\nexport function createLogger(config: ServerConfig): Logger {\n const hasStdio = config.transport.type === 'stdio';\n const logsPath = path.join(config.baseDir, 'logs', `${config.name}.log`);\n if (hasStdio) fs.mkdirSync(path.dirname(logsPath), { recursive: true });\n return pino({ level: config.logLevel ?? 'info', formatters: sanitizeForLoggingFormatter() }, hasStdio ? pino.destination({ dest: logsPath, sync: false }) : pino.destination(1));\n}\n\nexport async function createTokenStore(baseDir: string) {\n const storeUri = process.env.STORE_URI || `file://${path.join(baseDir, 'tokens.json')}`;\n return createStore<CachedToken>(storeUri);\n}\n\nexport async function createDcrStore(baseDir: string, required: boolean) {\n if (!required) return undefined;\n const dcrStoreUri = process.env.DCR_STORE_URI || `file://${path.join(baseDir, 'dcr.json')}`;\n return createStore<unknown>(dcrStoreUri);\n}\n\nexport function createAuthLayer(authMiddleware: OAuthAdapters['middleware']): MiddlewareLayer {\n return {\n withTool: authMiddleware.withToolAuth,\n withResource: authMiddleware.withResourceAuth,\n withPrompt: authMiddleware.withPromptAuth,\n };\n}\n\nexport function createLoggingLayer(logger: Logger): MiddlewareLayer {\n const logging = createLoggingMiddleware({ logger });\n return {\n withTool: logging.withToolLogging,\n withResource: logging.withResourceLogging,\n withPrompt: logging.withPromptLogging,\n };\n}\n\nexport function createStorageLayer(storageContext: StorageContext): MiddlewareLayer {\n const wrapAtPosition = <T extends { name: string; handler: unknown; [key: string]: unknown }>(module: T, extraPosition: number): T => {\n const originalHandler = module.handler as (...args: unknown[]) => Promise<unknown>;\n\n const wrappedHandler = async (...allArgs: unknown[]) => {\n const extra = allArgs[extraPosition];\n (extra as { storageContext?: StorageContext }).storageContext = storageContext;\n return await originalHandler(...allArgs);\n };\n\n return {\n ...module,\n handler: wrappedHandler,\n } as T;\n };\n\n return {\n withTool: <T extends { name: string; config: unknown; handler: unknown }>(module: T): T => wrapAtPosition(module, 1) as T,\n };\n}\n\nexport function assertStorageConfig(config: ServerConfig) {\n if (!config.storageDir) {\n throw new Error('gmail-messages-export-csv: Server configuration missing storageDir.');\n }\n if (config.transport.type === 'http' && !config.baseUrl && !config.transport.port) {\n throw new Error('gmail-messages-export-csv: HTTP transport requires either baseUrl in server config or port in transport config. This is a server configuration error - please provide --base-url or --port.');\n }\n}\n\nexport async function createDefaultRuntime(config: ServerConfig, overrides?: RuntimeOverrides): Promise<CommonRuntime> {\n if (config.auth === 'dcr' && config.transport.type !== 'http') throw new Error('DCR mode requires an HTTP transport');\n\n assertStorageConfig(config);\n const logger = createLogger(config);\n const tokenStore = await createTokenStore(config.baseDir);\n const baseUrl = config.baseUrl ?? (config.transport.type === 'http' && config.transport.port ? `http://localhost:${config.transport.port}` : undefined);\n const dcrStore = await createDcrStore(config.baseDir, config.auth === 'dcr');\n const oauthAdapters = await createOAuthAdapters(config, { logger, tokenStore, dcrStore }, baseUrl);\n const deps: RuntimeDeps = { config, logger, tokenStore, oauthAdapters, baseUrl };\n const createDomainModules =\n overrides?.createDomainModules ??\n (() => ({\n tools: Object.values(mcp.toolFactories).map((factory) => factory()),\n resources: Object.values(mcp.resourceFactories).map((factory) => factory()),\n prompts: Object.values(mcp.promptFactories).map((factory) => factory()),\n }));\n const middlewareFactories = overrides?.middlewareFactories ?? [() => createAuthLayer(oauthAdapters.middleware), () => createLoggingLayer(logger), () => createStorageLayer({ storageDir: config.storageDir, baseUrl: config.baseUrl, transport: config.transport })];\n\n return {\n deps,\n middlewareFactories,\n createDomainModules,\n close: async () => {},\n };\n}\n"],"names":["sanitizeForLoggingFormatter","createLoggingMiddleware","fs","path","pino","createStore","mcp","createOAuthAdapters","createLogger","config","hasStdio","transport","type","logsPath","join","baseDir","name","mkdirSync","dirname","recursive","level","logLevel","formatters","destination","dest","sync","createTokenStore","storeUri","process","env","STORE_URI","createDcrStore","required","undefined","dcrStoreUri","DCR_STORE_URI","createAuthLayer","authMiddleware","withTool","withToolAuth","withResource","withResourceAuth","withPrompt","withPromptAuth","createLoggingLayer","logger","logging","withToolLogging","withResourceLogging","withPromptLogging","createStorageLayer","storageContext","wrapAtPosition","module","extraPosition","originalHandler","handler","wrappedHandler","allArgs","extra","assertStorageConfig","storageDir","Error","baseUrl","port","createDefaultRuntime","overrides","auth","tokenStore","dcrStore","oauthAdapters","deps","createDomainModules","tools","Object","values","toolFactories","map","factory","resources","resourceFactories","prompts","promptFactories","middlewareFactories","middleware","close"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,eAAe;AAG3D,SAASC,uBAAuB,QAAQ,gBAAgB;AACxD,YAAYC,QAAQ,KAAK;AACzB,YAAYC,UAAU,OAAO;AAC7B,OAAOC,UAAU,OAAO;AACxB,OAAOC,iBAAiB,yBAAyB;AACjD,YAAYC,SAAS,kBAAkB;AAEvC,SAASC,mBAAmB,QAA4B,oBAAoB;AAE5E,OAAO,SAASC,aAAaC,MAAoB;QAI1BA;IAHrB,MAAMC,WAAWD,OAAOE,SAAS,CAACC,IAAI,KAAK;IAC3C,MAAMC,WAAWV,KAAKW,IAAI,CAACL,OAAOM,OAAO,EAAE,QAAQ,GAAGN,OAAOO,IAAI,CAAC,IAAI,CAAC;IACvE,IAAIN,UAAUR,GAAGe,SAAS,CAACd,KAAKe,OAAO,CAACL,WAAW;QAAEM,WAAW;IAAK;IACrE,OAAOf,KAAK;QAAEgB,KAAK,GAAEX,mBAAAA,OAAOY,QAAQ,cAAfZ,8BAAAA,mBAAmB;QAAQa,YAAYtB;IAA8B,GAAGU,WAAWN,KAAKmB,WAAW,CAAC;QAAEC,MAAMX;QAAUY,MAAM;IAAM,KAAKrB,KAAKmB,WAAW,CAAC;AAC/K;AAEA,OAAO,eAAeG,iBAAiBX,OAAe;IACpD,MAAMY,WAAWC,QAAQC,GAAG,CAACC,SAAS,IAAI,CAAC,OAAO,EAAE3B,KAAKW,IAAI,CAACC,SAAS,gBAAgB;IACvF,OAAOV,YAAyBsB;AAClC;AAEA,OAAO,eAAeI,eAAehB,OAAe,EAAEiB,QAAiB;IACrE,IAAI,CAACA,UAAU,OAAOC;IACtB,MAAMC,cAAcN,QAAQC,GAAG,CAACM,aAAa,IAAI,CAAC,OAAO,EAAEhC,KAAKW,IAAI,CAACC,SAAS,aAAa;IAC3F,OAAOV,YAAqB6B;AAC9B;AAEA,OAAO,SAASE,gBAAgBC,cAA2C;IACzE,OAAO;QACLC,UAAUD,eAAeE,YAAY;QACrCC,cAAcH,eAAeI,gBAAgB;QAC7CC,YAAYL,eAAeM,cAAc;IAC3C;AACF;AAEA,OAAO,SAASC,mBAAmBC,MAAc;IAC/C,MAAMC,UAAU7C,wBAAwB;QAAE4C;IAAO;IACjD,OAAO;QACLP,UAAUQ,QAAQC,eAAe;QACjCP,cAAcM,QAAQE,mBAAmB;QACzCN,YAAYI,QAAQG,iBAAiB;IACvC;AACF;AAEA,OAAO,SAASC,mBAAmBC,cAA8B;IAC/D,MAAMC,iBAAiB,CAAuEC,QAAWC;QACvG,MAAMC,kBAAkBF,OAAOG,OAAO;QAEtC,MAAMC,iBAAiB,OAAO,GAAGC;YAC/B,MAAMC,QAAQD,OAAO,CAACJ,cAAc;YACnCK,MAA8CR,cAAc,GAAGA;YAChE,OAAO,MAAMI,mBAAmBG;QAClC;QAEA,OAAO;YACL,GAAGL,MAAM;YACTG,SAASC;QACX;IACF;IAEA,OAAO;QACLnB,UAAU,CAAgEe,SAAiBD,eAAeC,QAAQ;IACpH;AACF;AAEA,OAAO,SAASO,oBAAoBnD,MAAoB;IACtD,IAAI,CAACA,OAAOoD,UAAU,EAAE;QACtB,MAAM,IAAIC,MAAM;IAClB;IACA,IAAIrD,OAAOE,SAAS,CAACC,IAAI,KAAK,UAAU,CAACH,OAAOsD,OAAO,IAAI,CAACtD,OAAOE,SAAS,CAACqD,IAAI,EAAE;QACjF,MAAM,IAAIF,MAAM;IAClB;AACF;AAEA,OAAO,eAAeG,qBAAqBxD,MAAoB,EAAEyD,SAA4B;QAM3EzD;IALhB,IAAIA,OAAO0D,IAAI,KAAK,SAAS1D,OAAOE,SAAS,CAACC,IAAI,KAAK,QAAQ,MAAM,IAAIkD,MAAM;IAE/EF,oBAAoBnD;IACpB,MAAMoC,SAASrC,aAAaC;IAC5B,MAAM2D,aAAa,MAAM1C,iBAAiBjB,OAAOM,OAAO;IACxD,MAAMgD,WAAUtD,kBAAAA,OAAOsD,OAAO,cAAdtD,6BAAAA,kBAAmBA,OAAOE,SAAS,CAACC,IAAI,KAAK,UAAUH,OAAOE,SAAS,CAACqD,IAAI,GAAG,CAAC,iBAAiB,EAAEvD,OAAOE,SAAS,CAACqD,IAAI,EAAE,GAAG/B;IAC7I,MAAMoC,WAAW,MAAMtC,eAAetB,OAAOM,OAAO,EAAEN,OAAO0D,IAAI,KAAK;IACtE,MAAMG,gBAAgB,MAAM/D,oBAAoBE,QAAQ;QAAEoC;QAAQuB;QAAYC;IAAS,GAAGN;IAC1F,MAAMQ,OAAoB;QAAE9D;QAAQoC;QAAQuB;QAAYE;QAAeP;IAAQ;IAC/E,MAAMS,8BACJN,sBAAAA,gCAAAA,UAAWM,mBAAmB,uCAC7B,IAAO,CAAA;YACNC,OAAOC,OAAOC,MAAM,CAACrE,IAAIsE,aAAa,EAAEC,GAAG,CAAC,CAACC,UAAYA;YACzDC,WAAWL,OAAOC,MAAM,CAACrE,IAAI0E,iBAAiB,EAAEH,GAAG,CAAC,CAACC,UAAYA;YACjEG,SAASP,OAAOC,MAAM,CAACrE,IAAI4E,eAAe,EAAEL,GAAG,CAAC,CAACC,UAAYA;QAC/D,CAAA;IACF,MAAMK,+BAAsBjB,sBAAAA,gCAAAA,UAAWiB,mBAAmB,yCAAI;QAAC,IAAM/C,gBAAgBkC,cAAcc,UAAU;QAAG,IAAMxC,mBAAmBC;QAAS,IAAMK,mBAAmB;gBAAEW,YAAYpD,OAAOoD,UAAU;gBAAEE,SAAStD,OAAOsD,OAAO;gBAAEpD,WAAWF,OAAOE,SAAS;YAAC;KAAG;IAEpQ,OAAO;QACL4D;QACAY;QACAX;QACAa,OAAO,WAAa;IACtB;AACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { RuntimeOverrides, ServerConfig } from '../types.js';
|
|
3
|
+
export declare function createStdioServer(config: ServerConfig, overrides?: RuntimeOverrides): Promise<{
|
|
4
|
+
mcpServer: McpServer;
|
|
5
|
+
logger: import("@mcp-z/server").Logger;
|
|
6
|
+
close: () => Promise<void>;
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { composeMiddleware, connectStdio, registerPrompts, registerResources, registerTools } from '@mcp-z/server';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { createDefaultRuntime } from './runtime.js';
|
|
4
|
+
export async function createStdioServer(config, overrides) {
|
|
5
|
+
const runtime = await createDefaultRuntime(config, overrides);
|
|
6
|
+
const modules = runtime.createDomainModules();
|
|
7
|
+
const layers = runtime.middlewareFactories.map((factory)=>factory(runtime.deps));
|
|
8
|
+
const composed = composeMiddleware(modules, layers);
|
|
9
|
+
const logger = runtime.deps.logger;
|
|
10
|
+
const tools = [
|
|
11
|
+
...composed.tools,
|
|
12
|
+
...runtime.deps.oauthAdapters.accountTools
|
|
13
|
+
];
|
|
14
|
+
const prompts = [
|
|
15
|
+
...composed.prompts,
|
|
16
|
+
...runtime.deps.oauthAdapters.accountPrompts
|
|
17
|
+
];
|
|
18
|
+
const mcpServer = new McpServer({
|
|
19
|
+
name: config.name,
|
|
20
|
+
version: config.version
|
|
21
|
+
});
|
|
22
|
+
registerTools(mcpServer, tools);
|
|
23
|
+
registerResources(mcpServer, composed.resources);
|
|
24
|
+
registerPrompts(mcpServer, prompts);
|
|
25
|
+
logger.info(`Starting ${config.name} MCP server (stdio)`);
|
|
26
|
+
const { close } = await connectStdio(mcpServer, {
|
|
27
|
+
logger
|
|
28
|
+
});
|
|
29
|
+
logger.info('stdio transport ready');
|
|
30
|
+
return {
|
|
31
|
+
mcpServer,
|
|
32
|
+
logger,
|
|
33
|
+
close: async ()=>{
|
|
34
|
+
await close();
|
|
35
|
+
await runtime.close();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-gmail/src/setup/stdio.ts"],"sourcesContent":["import { composeMiddleware, connectStdio, registerPrompts, registerResources, registerTools } from '@mcp-z/server';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { RuntimeOverrides, ServerConfig } from '../types.js';\nimport { createDefaultRuntime } from './runtime.js';\n\nexport async function createStdioServer(config: ServerConfig, overrides?: RuntimeOverrides) {\n const runtime = await createDefaultRuntime(config, overrides);\n const modules = runtime.createDomainModules();\n const layers = runtime.middlewareFactories.map((factory) => factory(runtime.deps));\n const composed = composeMiddleware(modules, layers);\n const logger = runtime.deps.logger;\n\n const tools = [...composed.tools, ...runtime.deps.oauthAdapters.accountTools];\n const prompts = [...composed.prompts, ...runtime.deps.oauthAdapters.accountPrompts];\n\n const mcpServer = new McpServer({ name: config.name, version: config.version });\n registerTools(mcpServer, tools);\n registerResources(mcpServer, composed.resources);\n registerPrompts(mcpServer, prompts);\n\n logger.info(`Starting ${config.name} MCP server (stdio)`);\n const { close } = await connectStdio(mcpServer, { logger });\n logger.info('stdio transport ready');\n\n return {\n mcpServer,\n logger,\n close: async () => {\n await close();\n await runtime.close();\n },\n };\n}\n"],"names":["composeMiddleware","connectStdio","registerPrompts","registerResources","registerTools","McpServer","createDefaultRuntime","createStdioServer","config","overrides","runtime","modules","createDomainModules","layers","middlewareFactories","map","factory","deps","composed","logger","tools","oauthAdapters","accountTools","prompts","accountPrompts","mcpServer","name","version","resources","info","close"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,YAAY,EAAEC,eAAe,EAAEC,iBAAiB,EAAEC,aAAa,QAAQ,gBAAgB;AACnH,SAASC,SAAS,QAAQ,0CAA0C;AAEpE,SAASC,oBAAoB,QAAQ,eAAe;AAEpD,OAAO,eAAeC,kBAAkBC,MAAoB,EAAEC,SAA4B;IACxF,MAAMC,UAAU,MAAMJ,qBAAqBE,QAAQC;IACnD,MAAME,UAAUD,QAAQE,mBAAmB;IAC3C,MAAMC,SAASH,QAAQI,mBAAmB,CAACC,GAAG,CAAC,CAACC,UAAYA,QAAQN,QAAQO,IAAI;IAChF,MAAMC,WAAWlB,kBAAkBW,SAASE;IAC5C,MAAMM,SAAST,QAAQO,IAAI,CAACE,MAAM;IAElC,MAAMC,QAAQ;WAAIF,SAASE,KAAK;WAAKV,QAAQO,IAAI,CAACI,aAAa,CAACC,YAAY;KAAC;IAC7E,MAAMC,UAAU;WAAIL,SAASK,OAAO;WAAKb,QAAQO,IAAI,CAACI,aAAa,CAACG,cAAc;KAAC;IAEnF,MAAMC,YAAY,IAAIpB,UAAU;QAAEqB,MAAMlB,OAAOkB,IAAI;QAAEC,SAASnB,OAAOmB,OAAO;IAAC;IAC7EvB,cAAcqB,WAAWL;IACzBjB,kBAAkBsB,WAAWP,SAASU,SAAS;IAC/C1B,gBAAgBuB,WAAWF;IAE3BJ,OAAOU,IAAI,CAAC,CAAC,SAAS,EAAErB,OAAOkB,IAAI,CAAC,mBAAmB,CAAC;IACxD,MAAM,EAAEI,KAAK,EAAE,GAAG,MAAM7B,aAAawB,WAAW;QAAEN;IAAO;IACzDA,OAAOU,IAAI,CAAC;IAEZ,OAAO;QACLJ;QACAN;QACAW,OAAO;YACL,MAAMA;YACN,MAAMpB,QAAQoB,KAAK;QACrB;IACF;AACF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { CachedToken, DcrConfig, OAuthConfig } from '@mcp-z/oauth-google';
|
|
2
|
+
import type { BaseServerConfig, MiddlewareLayer, PromptModule, ResourceModule, Logger as ServerLogger, ToolModule } from '@mcp-z/server';
|
|
3
|
+
import type { Keyv } from 'keyv';
|
|
4
|
+
import type { OAuthAdapters } from './setup/oauth-google.js';
|
|
5
|
+
export type Logger = Pick<Console, 'info' | 'error' | 'warn' | 'debug'>;
|
|
6
|
+
/**
|
|
7
|
+
* Composes transport config, OAuth config, and application-level config
|
|
8
|
+
*/
|
|
9
|
+
export interface ServerConfig extends BaseServerConfig, OAuthConfig {
|
|
10
|
+
logLevel: string;
|
|
11
|
+
baseDir: string;
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
repositoryUrl: string;
|
|
15
|
+
storageDir: string;
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
dcrConfig?: DcrConfig;
|
|
18
|
+
}
|
|
19
|
+
export interface StorageContext {
|
|
20
|
+
storageDir: string;
|
|
21
|
+
baseUrl?: string;
|
|
22
|
+
transport: BaseServerConfig['transport'];
|
|
23
|
+
}
|
|
24
|
+
export interface StorageExtra {
|
|
25
|
+
storageContext: StorageContext;
|
|
26
|
+
}
|
|
27
|
+
/** Runtime dependencies exposed to middleware/factories. */
|
|
28
|
+
export interface RuntimeDeps {
|
|
29
|
+
config: ServerConfig;
|
|
30
|
+
logger: ServerLogger;
|
|
31
|
+
tokenStore: Keyv<CachedToken>;
|
|
32
|
+
oauthAdapters: OAuthAdapters;
|
|
33
|
+
baseUrl?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Collections of MCP modules produced by domain factories. */
|
|
36
|
+
export type DomainModules = {
|
|
37
|
+
tools: ToolModule[];
|
|
38
|
+
resources: ResourceModule[];
|
|
39
|
+
prompts: PromptModule[];
|
|
40
|
+
};
|
|
41
|
+
/** Factory that produces a middleware layer given runtime dependencies. */
|
|
42
|
+
export type MiddlewareFactory = (deps: RuntimeDeps) => MiddlewareLayer;
|
|
43
|
+
/** Shared runtime configuration returned by `createDefaultRuntime`. */
|
|
44
|
+
export interface CommonRuntime {
|
|
45
|
+
deps: RuntimeDeps;
|
|
46
|
+
middlewareFactories: MiddlewareFactory[];
|
|
47
|
+
createDomainModules: () => DomainModules;
|
|
48
|
+
close: () => Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
export interface RuntimeOverrides {
|
|
51
|
+
middlewareFactories?: MiddlewareFactory[];
|
|
52
|
+
createDomainModules?: () => DomainModules;
|
|
53
|
+
}
|
|
54
|
+
export type { GmailQuery } from './schemas/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-gmail/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\n // File serving configuration for CSV exports\n storageDir: string;\n baseUrl?: string;\n\n // DCR configuration (when auth === 'dcr')\n dcrConfig?: DcrConfig;\n}\n\nexport interface StorageContext {\n storageDir: string;\n baseUrl?: string;\n transport: BaseServerConfig['transport'];\n}\n\nexport interface StorageExtra {\n storageContext: StorageContext;\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\nexport type { GmailQuery } from './schemas/index.js';\n"],"names":[],"mappings":"AAmEA,WAAqD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mcp-z/mcp-gmail",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for Gmail integration with OAuth authentication, message search, batch operations, and Google Sheets export",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"gmail",
|
|
7
|
+
"email",
|
|
8
|
+
"google",
|
|
9
|
+
"mcp",
|
|
10
|
+
"ai",
|
|
11
|
+
"mcp-server",
|
|
12
|
+
"model context protocol",
|
|
13
|
+
"oauth",
|
|
14
|
+
"google api",
|
|
15
|
+
"email client",
|
|
16
|
+
"gmail api",
|
|
17
|
+
"message search",
|
|
18
|
+
"email automation",
|
|
19
|
+
"ai agent",
|
|
20
|
+
"claude",
|
|
21
|
+
"llm",
|
|
22
|
+
"batch operations",
|
|
23
|
+
"google sheets",
|
|
24
|
+
"email export",
|
|
25
|
+
"label management",
|
|
26
|
+
"email management",
|
|
27
|
+
"productivity",
|
|
28
|
+
"automation",
|
|
29
|
+
"typescript",
|
|
30
|
+
"nodejs",
|
|
31
|
+
"integration",
|
|
32
|
+
"api client"
|
|
33
|
+
],
|
|
34
|
+
"homepage": "https://github.com/mcp-z/mcp-gmail#readme",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/mcp-z/mcp-gmail/issues"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/mcp-z/mcp-gmail.git"
|
|
41
|
+
},
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"author": "Kevin Malakoff <kmalakoff.info@gmail.com>",
|
|
44
|
+
"type": "module",
|
|
45
|
+
"exports": {
|
|
46
|
+
".": {
|
|
47
|
+
"types": "./dist/esm/index.d.ts",
|
|
48
|
+
"import": "./dist/esm/index.js",
|
|
49
|
+
"require": "./dist/cjs/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./package.json": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
"main": "./dist/cjs/index.js",
|
|
54
|
+
"module": "./dist/esm/index.js",
|
|
55
|
+
"types": "./dist/esm/index.d.ts",
|
|
56
|
+
"bin": "bin/server.js",
|
|
57
|
+
"files": [
|
|
58
|
+
"dist",
|
|
59
|
+
"bin"
|
|
60
|
+
],
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsc -p . --noEmit && tsds build",
|
|
63
|
+
"format": "tsds format",
|
|
64
|
+
"prepublish:check": "ncp",
|
|
65
|
+
"prepublishOnly": "tsds validate",
|
|
66
|
+
"test": "npm run test:unit && npm run test:integration",
|
|
67
|
+
"test:engines": "nvu engines tsds test:node --no-timeouts 'test/**/*.test.ts'",
|
|
68
|
+
"test:integration": "tsds test:node --no-timeouts 'test/integration/**/*.test.ts'",
|
|
69
|
+
"test:setup": "node scripts/setup-test.ts",
|
|
70
|
+
"test:unit": "tsds test:node --no-timeouts 'test/unit/**/*.test.ts'",
|
|
71
|
+
"version": "tsds version"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"@mcp-z/email": "^1.0.0",
|
|
75
|
+
"@mcp-z/oauth": "^1.0.0",
|
|
76
|
+
"@mcp-z/oauth-google": "^1.0.0",
|
|
77
|
+
"@mcp-z/server": "^1.0.0",
|
|
78
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
79
|
+
"cors": "^2.0.0",
|
|
80
|
+
"csv-stringify": "^6.6.0",
|
|
81
|
+
"express": "^5.0.0",
|
|
82
|
+
"googleapis": "^169.0.0",
|
|
83
|
+
"keyv-registry": "^0.3.0",
|
|
84
|
+
"module-root-sync": "^2.0.0",
|
|
85
|
+
"node-html-parser": "^7.0.1",
|
|
86
|
+
"pino": "^10.0.0",
|
|
87
|
+
"zod": "^4.0.0"
|
|
88
|
+
},
|
|
89
|
+
"devDependencies": {
|
|
90
|
+
"@mcp-z/client": "^1.0.0",
|
|
91
|
+
"@types/cors": "^2.8.19",
|
|
92
|
+
"@types/express": "^5.0.6",
|
|
93
|
+
"@types/mocha": "^10.0.10",
|
|
94
|
+
"@types/node": "^25.0.2",
|
|
95
|
+
"dotenv": "^17.2.3",
|
|
96
|
+
"get-port": "^7.1.0",
|
|
97
|
+
"keyv": "^5.5.5",
|
|
98
|
+
"node-version-use": "^2.1.6",
|
|
99
|
+
"ts-dev-stack": "^1.21.3",
|
|
100
|
+
"tsds-config": "^1.0.0",
|
|
101
|
+
"typescript": "^5.9.3"
|
|
102
|
+
},
|
|
103
|
+
"engines": {
|
|
104
|
+
"node": ">=20"
|
|
105
|
+
},
|
|
106
|
+
"mcpName": "io.github.mcp-z/mcp-gmail",
|
|
107
|
+
"tsds": {
|
|
108
|
+
"source": "src/index.ts"
|
|
109
|
+
}
|
|
110
|
+
}
|