mcpcn-office-powerpoint-mcp-server 2.1.1__tar.gz → 2.1.2__tar.gz

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 (31) hide show
  1. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/.gitignore +64 -63
  2. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/Dockerfile +19 -19
  3. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/LICENSE +20 -20
  4. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/PKG-INFO +82 -30
  5. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/README.md +1036 -984
  6. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/mcp-config.json +8 -8
  7. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/ppt_mcp_server.py +474 -474
  8. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/pyproject.toml +2 -1
  9. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/requirements.txt +3 -3
  10. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/setup_mcp.py +560 -560
  11. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/slide_layout_templates.json +3689 -3689
  12. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/smithery.yaml +16 -16
  13. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/__init__.py +27 -27
  14. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/chart_tools.py +81 -81
  15. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/connector_tools.py +90 -90
  16. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/content_tools.py +966 -778
  17. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/hyperlink_tools.py +137 -137
  18. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/master_tools.py +113 -113
  19. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/presentation_tools.py +211 -211
  20. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/professional_tools.py +289 -289
  21. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/structural_tools.py +372 -372
  22. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/template_tools.py +520 -520
  23. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/tools/transition_tools.py +74 -74
  24. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/__init__.py +69 -68
  25. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/content_utils.py +633 -578
  26. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/core_utils.py +54 -54
  27. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/design_utils.py +688 -688
  28. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/presentation_utils.py +216 -216
  29. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/template_utils.py +1142 -1142
  30. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/utils/validation_utils.py +322 -322
  31. {mcpcn_office_powerpoint_mcp_server-2.1.1 → mcpcn_office_powerpoint_mcp_server-2.1.2}/__init__.py +0 -0
@@ -1,63 +1,64 @@
1
- tmp
2
- mcprouter*
3
- .env.toml
4
- .env.prod.toml
5
- Makefile
6
-
7
- # Python virtual environment
8
- .venv/
9
- venv/
10
- ENV/
11
-
12
- # IDE - PyCharm
13
- .idea/
14
- *.iml
15
- *.iws
16
- *.ipr
17
-
18
- # Python
19
- __pycache__/
20
- *.py[cod]
21
- *$py.class
22
- *.so
23
- .Python
24
- build/
25
- develop-eggs/
26
- dist/
27
- downloads/
28
- eggs/
29
- .eggs/
30
- lib/
31
- lib64/
32
- parts/
33
- sdist/
34
- var/
35
- wheels/
36
- *.egg-info/
37
- .installed.cfg
38
- *.egg
39
-
40
- # Ts & Js
41
- node_modules/
42
- node_modules_backup/
43
- dist/
44
- # Package dependency locks
45
- package-lock.json
46
- yarn.lock
47
- pnpm-lock.yaml
48
- .pnpm-store/
49
-
50
- #VSCode
51
- .history/
52
-
53
- # Logs
54
- *.log
55
- typescript/mcp-get-location/obfuscator.config.json
56
-
57
- # Ignore .gitignore files in subdirectories only
58
- */.gitignore
59
- **/*/.gitignore
60
- .DS_Store
61
- **/.DS_Store
62
- **/uv.lock
63
- **/.claude
1
+ tmp
2
+ mcprouter*
3
+ .env.toml
4
+ .env.prod.toml
5
+ Makefile
6
+
7
+ # Python virtual environment
8
+ .venv/
9
+ venv/
10
+ ENV/
11
+
12
+ # IDE - PyCharm
13
+ .idea/
14
+ *.iml
15
+ *.iws
16
+ *.ipr
17
+
18
+ # Python
19
+ __pycache__/
20
+ *.py[cod]
21
+ *$py.class
22
+ *.so
23
+ .Python
24
+ build/
25
+ develop-eggs/
26
+ dist/
27
+ downloads/
28
+ eggs/
29
+ .eggs/
30
+ lib/
31
+ lib64/
32
+ parts/
33
+ sdist/
34
+ var/
35
+ wheels/
36
+ *.egg-info/
37
+ .installed.cfg
38
+ *.egg
39
+
40
+ # Ts & Js
41
+ node_modules/
42
+ node_modules_backup/
43
+ dist/
44
+ # Package dependency locks
45
+ package-lock.json
46
+ yarn.lock
47
+ pnpm-lock.yaml
48
+ .pnpm-store/
49
+
50
+ #VSCode
51
+ .history/
52
+
53
+ # Logs
54
+ *.log
55
+ typescript/mcp-get-location/obfuscator.config.json
56
+
57
+ # Ignore .gitignore files in subdirectories only
58
+ */.gitignore
59
+ **/*/.gitignore
60
+ .DS_Store
61
+ **/.DS_Store
62
+ **/uv.lock
63
+ **/.claude
64
+ /*/*/.kiro/
@@ -1,19 +1,19 @@
1
- # Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
2
- FROM python:3.10-alpine
3
-
4
- # Install system dependencies (if any required, e.g., for pillow)
5
- RUN apk add --no-cache gcc musl-dev libffi-dev
6
-
7
- # Set work directory
8
- WORKDIR /app
9
-
10
- # Copy the application code
11
- COPY . .
12
-
13
- # Install Python dependencies
14
- RUN pip install --no-cache-dir -r requirements.txt
15
-
16
- # Expose port if needed (not needed for stdio)
17
-
18
- # Set the entrypoint to run the MCP server
19
- ENTRYPOINT ["python", "ppt_mcp_server.py"]
1
+ # Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
2
+ FROM python:3.10-alpine
3
+
4
+ # Install system dependencies (if any required, e.g., for pillow)
5
+ RUN apk add --no-cache gcc musl-dev libffi-dev
6
+
7
+ # Set work directory
8
+ WORKDIR /app
9
+
10
+ # Copy the application code
11
+ COPY . .
12
+
13
+ # Install Python dependencies
14
+ RUN pip install --no-cache-dir -r requirements.txt
15
+
16
+ # Expose port if needed (not needed for stdio)
17
+
18
+ # Set the entrypoint to run the MCP server
19
+ ENTRYPOINT ["python", "ppt_mcp_server.py"]
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 GongRzhe
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 all
13
- 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 THE
1
+ MIT License
2
+
3
+ Copyright (c) 2025 GongRzhe
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 all
13
+ 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 THE
21
21
  SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcpcn-office-powerpoint-mcp-server
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: MCP Server for PowerPoint manipulation using python-pptx - Consolidated Edition
5
5
  Project-URL: Homepage, https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git
6
6
  Project-URL: Bug Tracker, https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git/issues
@@ -41,7 +41,7 @@ Description-Content-Type: text/markdown
41
41
  [![smithery badge](https://smithery.ai/badge/@GongRzhe/Office-PowerPoint-MCP-Server)](https://smithery.ai/server/@GongRzhe/Office-PowerPoint-MCP-Server)
42
42
  ![](https://badge.mcpx.dev?type=server 'MCP Server')
43
43
 
44
- A comprehensive MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. **Version 2.0** provides 32 powerful tools organized into 11 specialized modules, offering complete PowerPoint creation, management, and professional design capabilities. The server features a modular architecture with enhanced parameter handling, intelligent operation selection, and comprehensive error handling.
44
+ A comprehensive MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. **Version 2.0** provides 35 powerful tools organized into 11 specialized modules, offering complete PowerPoint creation, management, and professional design capabilities. The server features a modular architecture with enhanced parameter handling, intelligent operation selection, and comprehensive error handling.
45
45
 
46
46
  ----
47
47
 
@@ -232,7 +232,7 @@ If you have `uvx` installed, you can run the server directly from PyPI without l
232
232
  ## 🚀 What's New in v2.0
233
233
 
234
234
  ### **Comprehensive Tool Suite (32 Tools)**
235
- - **Complete PowerPoint manipulation** with 34 specialized tools
235
+ - **Complete PowerPoint manipulation** with 35 specialized tools
236
236
  - **11 organized modules** covering all aspects of presentation creation
237
237
  - **Enhanced parameter handling** with comprehensive validation
238
238
  - **Intelligent defaults** and operation-based interfaces
@@ -252,7 +252,7 @@ If you have `uvx` installed, you can run the server directly from PyPI without l
252
252
 
253
253
  ## Available Tools
254
254
 
255
- The server provides **34 specialized tools** organized into the following categories:
255
+ The server provides **35 specialized tools** organized into the following categories:
256
256
 
257
257
  ### **Presentation Management (7 tools)**
258
258
  1. **create_presentation** - Create new presentations
@@ -263,42 +263,43 @@ The server provides **34 specialized tools** organized into the following catego
263
263
  6. **get_template_file_info** - Analyze template files and layouts
264
264
  7. **set_core_properties** - Set document properties
265
265
 
266
- ### **Content Management (8 tools)**
266
+ ### **Content Management (9 tools)**
267
267
  8. **add_slide** - Add slides with optional background styling
268
268
  9. **get_slide_info** - Get detailed slide information
269
- 10. **extract_slide_text** - ✨ **NEW** Extract all text content from a specific slide
270
- 11. **extract_presentation_text** - **NEW** Extract text content from all slides in presentation
271
- 12. **populate_placeholder** - Populate placeholders with text
272
- 13. **add_bullet_points** - Add formatted bullet points
273
- 14. **manage_text** - **Unified text tool** (add/format/validate/format_runs)
274
- 15. **manage_image** - ✨ **Unified image tool** (add/enhance)
269
+ 10. **move_slide** - ✨ **NEW** Move slides to a new position within the presentation
270
+ 11. **extract_slide_text** - Extract all text content from a specific slide
271
+ 12. **extract_presentation_text** - Extract text content from all slides in presentation
272
+ 13. **populate_placeholder** - Populate placeholders with text
273
+ 14. **add_bullet_points** - Add formatted bullet points
274
+ 15. **manage_text** - ✨ **Unified text tool** (add/format/validate/format_runs)
275
+ 16. **manage_image** - ✨ **Unified image tool** (add/enhance)
275
276
 
276
277
  ### **Template Operations (7 tools)**
277
- 16. **list_slide_templates** - Browse available slide layout templates
278
- 17. **apply_slide_template** - Apply structured layout templates to existing slides
279
- 18. **create_slide_from_template** - Create new slides using layout templates
280
- 19. **create_presentation_from_templates** - Create complete presentations from template sequences
281
- 20. **get_template_info** - Get detailed information about specific templates
282
- 21. **auto_generate_presentation** - Automatically generate presentations based on topic
283
- 22. **optimize_slide_text** - Optimize text elements for better readability and fit
278
+ 17. **list_slide_templates** - Browse available slide layout templates
279
+ 18. **apply_slide_template** - Apply structured layout templates to existing slides
280
+ 19. **create_slide_from_template** - Create new slides using layout templates
281
+ 20. **create_presentation_from_templates** - Create complete presentations from template sequences
282
+ 21. **get_template_info** - Get detailed information about specific templates
283
+ 22. **auto_generate_presentation** - Automatically generate presentations based on topic
284
+ 23. **optimize_slide_text** - Optimize text elements for better readability and fit
284
285
 
285
286
  ### **Structural Elements (4 tools)**
286
- 23. **add_table** - Create tables with enhanced formatting
287
- 24. **format_table_cell** - Format individual table cells
288
- 25. **add_shape** - Add shapes with text and formatting options
289
- 26. **add_chart** - Create charts with comprehensive customization
287
+ 24. **add_table** - Create tables with enhanced formatting
288
+ 25. **format_table_cell** - Format individual table cells
289
+ 26. **add_shape** - Add shapes with text and formatting options
290
+ 27. **add_chart** - Create charts with comprehensive customization
290
291
 
291
292
  ### **Professional Design (3 tools)**
292
- 27. **apply_professional_design** - ✨ **Unified design tool** (themes/slides/enhancement)
293
- 28. **apply_picture_effects** - ✨ **Unified effects tool** (9+ effects combined)
294
- 29. **manage_fonts** - ✨ **Unified font tool** (analyze/optimize/recommend)
293
+ 28. **apply_professional_design** - ✨ **Unified design tool** (themes/slides/enhancement)
294
+ 29. **apply_picture_effects** - ✨ **Unified effects tool** (9+ effects combined)
295
+ 30. **manage_fonts** - ✨ **Unified font tool** (analyze/optimize/recommend)
295
296
 
296
297
  ### **Specialized Features (5 tools)**
297
- 30. **manage_hyperlinks** - Complete hyperlink management (add/remove/list/update)
298
- 31. **manage_slide_masters** - Access and manage slide master properties and layouts
299
- 32. **add_connector** - Add connector lines/arrows between points on slides
300
- 33. **update_chart_data** - Replace existing chart data with new categories and series
301
- 34. **manage_slide_transitions** - Basic slide transition management
298
+ 31. **manage_hyperlinks** - Complete hyperlink management (add/remove/list/update)
299
+ 32. **manage_slide_masters** - Access and manage slide master properties and layouts
300
+ 33. **add_connector** - Add connector lines/arrows between points on slides
301
+ 34. **update_chart_data** - Replace existing chart data with new categories and series
302
+ 35. **manage_slide_transitions** - Basic slide transition management
302
303
 
303
304
  ## 🌟 Key Unified Tools
304
305
 
@@ -441,6 +442,57 @@ result = use_mcp_tool(
441
442
  )
442
443
  ```
443
444
 
445
+ ### Moving Slides (New in v2.1)
446
+
447
+ ```python
448
+ # 将第2页移动到第5页
449
+ # 注意:页码从1开始,与日常习惯一致
450
+ result = use_mcp_tool(
451
+ server_name="ppt",
452
+ tool_name="move_slide",
453
+ arguments={
454
+ "from_page": 2, # 第2页
455
+ "to_page": 5, # 移动到第5页的位置
456
+ "file_path": "D:/文档/演示文稿.pptx"
457
+ }
458
+ )
459
+
460
+ # 将第2页移动到最后一页(使用 to_position)
461
+ result = use_mcp_tool(
462
+ server_name="ppt",
463
+ tool_name="move_slide",
464
+ arguments={
465
+ "from_page": 2, # 第2页
466
+ "to_position": "last", # 移动到最后一页
467
+ "file_path": "D:/文档/演示文稿.pptx"
468
+ }
469
+ )
470
+
471
+ # 将第5页移动到首页(使用 to_position)
472
+ result = use_mcp_tool(
473
+ server_name="ppt",
474
+ tool_name="move_slide",
475
+ arguments={
476
+ "from_page": 5, # 第5页
477
+ "to_position": "first", # 移动到首页
478
+ "file_path": "D:/文档/演示文稿.pptx"
479
+ }
480
+ )
481
+
482
+ # 也支持中文关键字
483
+ result = use_mcp_tool(
484
+ server_name="ppt",
485
+ tool_name="move_slide",
486
+ arguments={
487
+ "from_page": 3,
488
+ "to_position": "末页", # 中文关键字:首页、末页、最后
489
+ "file_path": "D:/文档/演示文稿.pptx"
490
+ }
491
+ )
492
+ ```
493
+
494
+
495
+
444
496
  ### Working with Built-in Slide Templates (New in v2.0)
445
497
 
446
498
  ```python