gogcli-mcp-slides 2.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/manifest.json ADDED
@@ -0,0 +1,143 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json",
3
+ "manifest_version": "0.3",
4
+ "name": "gogcli-mcp-slides",
5
+ "display_name": "gogcli (Slides)",
6
+ "version": "2.0.0",
7
+ "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
8
+ "author": {
9
+ "name": "Chris Hall",
10
+ "email": "chris.c.hall@gmail.com",
11
+ "url": "https://github.com/chrischall"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/chrischall/gogcli-mcp"
16
+ },
17
+ "homepage": "https://github.com/chrischall/gogcli-mcp",
18
+ "support": "https://github.com/chrischall/gogcli-mcp/issues",
19
+ "license": "MIT",
20
+ "keywords": [
21
+ "google",
22
+ "slides",
23
+ "presentations",
24
+ "gogcli",
25
+ "gog",
26
+ "markdown",
27
+ "templates",
28
+ "pdf",
29
+ "pptx"
30
+ ],
31
+ "server": {
32
+ "type": "node",
33
+ "entry_point": "dist/index.js",
34
+ "mcp_config": {
35
+ "command": "node",
36
+ "args": [
37
+ "${__dirname}/dist/index.js"
38
+ ],
39
+ "env": {
40
+ "GOG_ACCOUNT": "${user_config.gog_account}",
41
+ "GOG_PATH": "${user_config.gog_path}"
42
+ }
43
+ }
44
+ },
45
+ "user_config": {
46
+ "gog_account": {
47
+ "type": "string",
48
+ "title": "Google Account",
49
+ "description": "Default Google account email (optional — uses gogcli's configured default if omitted)",
50
+ "required": false
51
+ },
52
+ "gog_path": {
53
+ "type": "string",
54
+ "title": "gog Executable Path",
55
+ "description": "Path to the gog executable (optional — defaults to 'gog' on your PATH)",
56
+ "required": false
57
+ }
58
+ },
59
+ "tools": [
60
+ {
61
+ "name": "gog_auth_add",
62
+ "description": "Authorize a Google account via browser-based OAuth"
63
+ },
64
+ {
65
+ "name": "gog_auth_list",
66
+ "description": "List all Google accounts stored in gogcli"
67
+ },
68
+ {
69
+ "name": "gog_auth_status",
70
+ "description": "Show gogcli auth configuration (keyring, credential files)"
71
+ },
72
+ {
73
+ "name": "gog_auth_services",
74
+ "description": "List Google services and OAuth scopes supported by gogcli"
75
+ },
76
+ {
77
+ "name": "gog_auth_run",
78
+ "description": "Run any gog auth subcommand (escape hatch)"
79
+ },
80
+ {
81
+ "name": "gog_slides_export",
82
+ "description": "Export a presentation to pdf or pptx"
83
+ },
84
+ {
85
+ "name": "gog_slides_info",
86
+ "description": "Get metadata for a presentation"
87
+ },
88
+ {
89
+ "name": "gog_slides_create",
90
+ "description": "Create a new presentation"
91
+ },
92
+ {
93
+ "name": "gog_slides_create_from_markdown",
94
+ "description": "Create a new presentation from markdown content"
95
+ },
96
+ {
97
+ "name": "gog_slides_create_from_template",
98
+ "description": "Create from a template with placeholder replacements"
99
+ },
100
+ {
101
+ "name": "gog_slides_copy",
102
+ "description": "Copy a presentation"
103
+ },
104
+ {
105
+ "name": "gog_slides_add_slide",
106
+ "description": "Add a slide from a local image"
107
+ },
108
+ {
109
+ "name": "gog_slides_list_slides",
110
+ "description": "List slides in a presentation"
111
+ },
112
+ {
113
+ "name": "gog_slides_delete_slide",
114
+ "description": "Delete a slide"
115
+ },
116
+ {
117
+ "name": "gog_slides_read_slide",
118
+ "description": "Read the content of a slide"
119
+ },
120
+ {
121
+ "name": "gog_slides_update_notes",
122
+ "description": "Update speaker notes on a slide"
123
+ },
124
+ {
125
+ "name": "gog_slides_replace_slide",
126
+ "description": "Replace the image on an existing slide"
127
+ },
128
+ {
129
+ "name": "gog_slides_run",
130
+ "description": "Run any gog slides subcommand (escape hatch)"
131
+ }
132
+ ],
133
+ "compatibility": {
134
+ "platforms": [
135
+ "darwin",
136
+ "linux",
137
+ "win32"
138
+ ],
139
+ "runtimes": {
140
+ "node": ">=18.0.0"
141
+ }
142
+ }
143
+ }
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "gogcli-mcp-slides",
3
+ "version": "2.0.0",
4
+ "description": "Extended Google Slides MCP server via gogcli — auth + full Slides support",
5
+ "author": "Claude Code (AI) <https://www.anthropic.com/claude>",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/chrischall/gogcli-mcp"
9
+ },
10
+ "type": "module",
11
+ "bin": {
12
+ "gogcli-mcp-slides": "dist/index.js"
13
+ },
14
+ "exports": {
15
+ ".": "./dist/index.js"
16
+ },
17
+ "scripts": {
18
+ "build": "tsc --noEmit && npm run bundle",
19
+ "bundle": "node ../../scripts/bundle.js src/index.ts dist/index.js",
20
+ "typecheck": "tsc --noEmit",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "test:coverage": "vitest run --coverage"
24
+ },
25
+ "dependencies": {
26
+ "@modelcontextprotocol/sdk": "^1.29.0",
27
+ "zod": "^4.3.6"
28
+ },
29
+ "license": "MIT",
30
+ "keywords": [
31
+ "mcp",
32
+ "model-context-protocol",
33
+ "claude",
34
+ "ai",
35
+ "google",
36
+ "gogcli",
37
+ "google-slides",
38
+ "slides",
39
+ "presentations"
40
+ ]
41
+ }
package/src/index.ts ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { createServer, registerAuthTools, registerSlidesTools } from '../../gogcli-mcp/src/lib.js';
4
+ import { registerExtraSlidesTools } from './tools/slides-extra.js';
5
+
6
+ const server = createServer({ name: 'gogcli-slides' });
7
+ registerAuthTools(server);
8
+ registerSlidesTools(server);
9
+ registerExtraSlidesTools(server);
10
+
11
+ const transport = new StdioServerTransport();
12
+ await server.connect(transport);
@@ -0,0 +1,5 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+
3
+ export function registerExtraSlidesTools(_server: McpServer): void {
4
+ /* no extras yet */
5
+ }
@@ -0,0 +1,10 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { registerExtraSlidesTools } from '../../src/tools/slides-extra.js';
4
+
5
+ describe('registerExtraSlidesTools', () => {
6
+ it('does not throw when called (no extras yet)', () => {
7
+ const server = new McpServer({ name: 'test', version: '0.0.0' });
8
+ expect(() => registerExtraSlidesTools(server)).not.toThrow();
9
+ });
10
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "../"
6
+ },
7
+ "include": ["src/**/*", "../gogcli-mcp/src/**/*"],
8
+ "exclude": ["node_modules", "dist"]
9
+ }
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ coverage: {
6
+ provider: 'v8',
7
+ include: ['src/**/*.ts'],
8
+ exclude: ['src/index.ts'],
9
+ thresholds: {
10
+ lines: 100,
11
+ functions: 100,
12
+ branches: 100,
13
+ statements: 100,
14
+ },
15
+ },
16
+ },
17
+ });