windows-management-mcp-server 0.3.0__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.
- windows_management_mcp_server-0.3.0/.gitattributes +10 -0
- windows_management_mcp_server-0.3.0/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
- windows_management_mcp_server-0.3.0/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
- windows_management_mcp_server-0.3.0/.github/workflows/ci.yml +61 -0
- windows_management_mcp_server-0.3.0/.gitignore +31 -0
- windows_management_mcp_server-0.3.0/CHANGELOG.md +9 -0
- windows_management_mcp_server-0.3.0/CODE_OF_CONDUCT.md +7 -0
- windows_management_mcp_server-0.3.0/CONTRIBUTING.md +44 -0
- windows_management_mcp_server-0.3.0/ExempleDocsForMCP.md +449 -0
- windows_management_mcp_server-0.3.0/ExempleDocsForMCP.pdf +0 -0
- windows_management_mcp_server-0.3.0/LICENSE +21 -0
- windows_management_mcp_server-0.3.0/PKG-INFO +183 -0
- windows_management_mcp_server-0.3.0/README.md +157 -0
- windows_management_mcp_server-0.3.0/SECURITY.md +19 -0
- windows_management_mcp_server-0.3.0/SUPPORT.md +12 -0
- windows_management_mcp_server-0.3.0/docs/DEVELOPMENT.md +53 -0
- windows_management_mcp_server-0.3.0/docs/PUBLISHING.md +116 -0
- windows_management_mcp_server-0.3.0/docs/REFERENCE_REVIEW.md +42 -0
- windows_management_mcp_server-0.3.0/docs/SECURITY_MODEL.md +59 -0
- windows_management_mcp_server-0.3.0/docs/TOOLS.md +147 -0
- windows_management_mcp_server-0.3.0/pyproject.toml +42 -0
- windows_management_mcp_server-0.3.0/server.json +23 -0
- windows_management_mcp_server-0.3.0/vscode-extension/package-lock.json +3293 -0
- windows_management_mcp_server-0.3.0/vscode-extension/package.json +42 -0
- windows_management_mcp_server-0.3.0/vscode-extension/src/extension.ts +82 -0
- windows_management_mcp_server-0.3.0/vscode-extension/tsconfig.json +15 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/__init__.py +1 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/registry.py +46 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/server.py +15 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/__init__.py +1 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/advanced_process.py +163 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/developer_environment.py +143 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/disk_health.py +68 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/driver_maintenance.py +67 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/event_diagnostics.py +68 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/execute_powershell.py +26 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/hardware_drivers.py +207 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/manage_network.py +56 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/manage_registry.py +74 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/media_management.py +131 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/network_diagnostics.py +192 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/optimization.py +79 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/peripherals.py +84 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/power_hardware.py +84 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/process_management.py +66 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/restore_update_controls.py +150 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/safe_file_operations.py +518 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/security_updates.py +99 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/services.py +46 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/shell_helpers.py +87 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/software_audit.py +65 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/software_maintenance.py +118 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/startup_tasks.py +143 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/storage_analysis.py +122 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/system_info.py +39 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/task_manager.py +96 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/virtualization.py +71 -0
- windows_management_mcp_server-0.3.0/windows_mcp_server/tools/window_management.py +109 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report a problem with a Windows MCP tool
|
|
4
|
+
title: "[Bug]: "
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
## Tool
|
|
12
|
+
|
|
13
|
+
## Environment
|
|
14
|
+
|
|
15
|
+
- Windows version:
|
|
16
|
+
- Python version:
|
|
17
|
+
- MCP client:
|
|
18
|
+
- Administrator terminal: yes/no
|
|
19
|
+
|
|
20
|
+
## Steps to Reproduce
|
|
21
|
+
|
|
22
|
+
## Expected Behavior
|
|
23
|
+
|
|
24
|
+
## Actual Behavior
|
|
25
|
+
|
|
26
|
+
## Logs or Output
|
|
27
|
+
|
|
28
|
+
Remove secrets, tokens, and private paths before posting.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest a new Windows management tool or improvement
|
|
4
|
+
title: "[Feature]: "
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
## Proposed Tool or Behavior
|
|
12
|
+
|
|
13
|
+
## Safety Considerations
|
|
14
|
+
|
|
15
|
+
Should this be read-only, dry-run by default, reversible, or destructive?
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
python:
|
|
14
|
+
name: Python package
|
|
15
|
+
runs-on: windows-latest
|
|
16
|
+
defaults:
|
|
17
|
+
run:
|
|
18
|
+
shell: pwsh
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.11"
|
|
27
|
+
|
|
28
|
+
- name: Install package
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip
|
|
31
|
+
pip install -e .
|
|
32
|
+
|
|
33
|
+
- name: Compile Python
|
|
34
|
+
run: python -m compileall windows_mcp_server
|
|
35
|
+
|
|
36
|
+
- name: Count registered tools
|
|
37
|
+
run: |
|
|
38
|
+
python -c "from windows_mcp_server.registry import register_all_tools, registered_tools; Dummy = type('Dummy', (), {'tool': lambda self: (lambda f: f)}); register_all_tools(Dummy()); count = len(registered_tools); print(f'Registered tools: {count}'); assert count == 96, count"
|
|
39
|
+
|
|
40
|
+
vscode-extension:
|
|
41
|
+
name: VS Code extension
|
|
42
|
+
runs-on: windows-latest
|
|
43
|
+
defaults:
|
|
44
|
+
run:
|
|
45
|
+
shell: pwsh
|
|
46
|
+
steps:
|
|
47
|
+
- name: Checkout
|
|
48
|
+
uses: actions/checkout@v4
|
|
49
|
+
|
|
50
|
+
- name: Set up Node
|
|
51
|
+
uses: actions/setup-node@v4
|
|
52
|
+
with:
|
|
53
|
+
node-version: "20"
|
|
54
|
+
|
|
55
|
+
- name: Install dependencies
|
|
56
|
+
working-directory: vscode-extension
|
|
57
|
+
run: npm ci
|
|
58
|
+
|
|
59
|
+
- name: Compile extension
|
|
60
|
+
working-directory: vscode-extension
|
|
61
|
+
run: npm run compile
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.pyo
|
|
5
|
+
*.pyd
|
|
6
|
+
.Python
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
build/
|
|
10
|
+
dist/
|
|
11
|
+
*.egg-info/
|
|
12
|
+
|
|
13
|
+
# Node / VS Code extension
|
|
14
|
+
vscode-extension/node_modules/
|
|
15
|
+
vscode-extension/out/
|
|
16
|
+
vscode-extension/*.vsix
|
|
17
|
+
.vscode-test/
|
|
18
|
+
|
|
19
|
+
# Local tooling
|
|
20
|
+
.env
|
|
21
|
+
.env.*
|
|
22
|
+
!.env.example
|
|
23
|
+
.pytest_cache/
|
|
24
|
+
.mypy_cache/
|
|
25
|
+
.ruff_cache/
|
|
26
|
+
|
|
27
|
+
# OS/editor
|
|
28
|
+
.DS_Store
|
|
29
|
+
Thumbs.db
|
|
30
|
+
.vscode/
|
|
31
|
+
!.vscode/extensions.json
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
- Expanded the server to 96 Windows management tools.
|
|
6
|
+
- Added storage cleanup reports and safer Recycle Bin deletion workflows.
|
|
7
|
+
- Added GPU, driver, disk health, Windows Update, restore point, WSL, Hyper-V, printer, audio, Bluetooth, firewall, and uninstall maintenance tools.
|
|
8
|
+
- Added VS Code extension wrapper.
|
|
9
|
+
- Added MCP Registry metadata and publishing documentation.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
This project expects respectful, constructive collaboration.
|
|
4
|
+
|
|
5
|
+
Be kind, assume good intent, and focus critique on the work rather than the person. Harassment, threats, hate speech, and sustained disruptive behavior are not acceptable.
|
|
6
|
+
|
|
7
|
+
Maintainers may remove comments, issues, or contributions that violate this standard.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for helping improve Windows Management MCP Server.
|
|
4
|
+
|
|
5
|
+
## Development Workflow
|
|
6
|
+
|
|
7
|
+
1. Create a virtual environment.
|
|
8
|
+
2. Install the package in editable mode.
|
|
9
|
+
3. Make focused changes.
|
|
10
|
+
4. Run the Python compile check.
|
|
11
|
+
5. Compile the VS Code extension if extension files changed.
|
|
12
|
+
6. Update docs when tools or behavior change.
|
|
13
|
+
|
|
14
|
+
```powershell
|
|
15
|
+
python -m venv venv
|
|
16
|
+
.\venv\Scripts\Activate.ps1
|
|
17
|
+
pip install -e .
|
|
18
|
+
.\venv\Scripts\python.exe -m compileall windows_mcp_server
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For the VS Code extension:
|
|
22
|
+
|
|
23
|
+
```powershell
|
|
24
|
+
cd vscode-extension
|
|
25
|
+
npm install
|
|
26
|
+
npm run compile
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Tool Safety Guidelines
|
|
30
|
+
|
|
31
|
+
- Prefer read-only report tools first.
|
|
32
|
+
- Add `dry_run` defaults for destructive or broad mutation tools.
|
|
33
|
+
- Clearly document privilege requirements.
|
|
34
|
+
- Avoid permanent deletion when Recycle Bin behavior is possible.
|
|
35
|
+
- Keep PowerShell commands scoped and parameterized.
|
|
36
|
+
|
|
37
|
+
## Pull Requests
|
|
38
|
+
|
|
39
|
+
Please include:
|
|
40
|
+
|
|
41
|
+
- What changed.
|
|
42
|
+
- Which tools are affected.
|
|
43
|
+
- Verification commands run.
|
|
44
|
+
- Any Administrator privilege requirements.
|
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
08/06/2026 03:22
|
|
2
|
+
|
|
3
|
+
MCP Registry | Markitdown - GitHub
|
|
4
|
+
|
|
5
|
+
~~MCP Registry~~ / Markitdown
|
|
6
|
+
|
|
7
|
+
| | | an
|
|
8
|
+
|
|
9
|
+
## Markitdown
|
|
10
|
+
|
|
11
|
+
By ~~microsoft~~ - ¥¥ 147387
|
|
12
|
+
|
|
13
|
+
Convert various file formats (PDF, Word, Excel, images, audio) to Markdown.
|
|
14
|
+
|
|
15
|
+
## MarkltDown
|
|
16
|
+
|
|
17
|
+
## (J Important
|
|
18
|
+
|
|
19
|
+
MarkltDown performs I/O with the privileges of the current process. Like open() or requests.get(), it will access resources that the process itself can access. Sanitize your inputs in untrusted environments, and call the narrowest convert ~~_*~~ function needed for your use case (e.g., convert ~~_s~~ tream() , Of convert ~~_l~~ ocal() ). See the ~~Security~~ Considerations section of the documentation for more information.
|
|
20
|
+
|
|
21
|
+
MarkltDown is a lightweight Python utility for converting various files to Markdown for use with LLMs and related text analysis pipelines. To this end, it is most comparable to ~~textract,~~ but with a focus on preserving important document structure and content as Markdown (including: headings, lists, tables, links, etc.) While the output is often reasonably presentable and human- ~~fr~~ iendly, it is meant to be consumed by text analysis tools -- and may not be the best option for high ~~-f~~ idelity document conversions for human consumption.
|
|
22
|
+
|
|
23
|
+
MarkltDown currently supports the conversion from:
|
|
24
|
+
|
|
25
|
+
- ° PDF
|
|
26
|
+
|
|
27
|
+
- e PowerPoint
|
|
28
|
+
|
|
29
|
+
- e Word
|
|
30
|
+
|
|
31
|
+
- e Excel
|
|
32
|
+
|
|
33
|
+
- e Images (EXIF metadata and OCR)
|
|
34
|
+
|
|
35
|
+
- e Audio (EXIF metadata and speech transcription)
|
|
36
|
+
|
|
37
|
+
https://github.com/mcp/microsoft/markitdown
|
|
38
|
+
|
|
39
|
+
1/10
|
|
40
|
+
|
|
41
|
+
08/06/2026 03:22
|
|
42
|
+
|
|
43
|
+
MCP Registry | Markitdown - GitHub
|
|
44
|
+
|
|
45
|
+
e HTML
|
|
46
|
+
|
|
47
|
+
- e Tex ~~t-~~ based formats (CSV, JSON, XML)
|
|
48
|
+
|
|
49
|
+
- e ZIP files (iterates over contents)
|
|
50
|
+
|
|
51
|
+
- e Youtube URLs
|
|
52
|
+
|
|
53
|
+
- e EPubs
|
|
54
|
+
|
|
55
|
+
e ...and more!
|
|
56
|
+
|
|
57
|
+
## Why Markdown?
|
|
58
|
+
|
|
59
|
+
Markdown is extremely close to plain text, with minimal markup or formatting, but still provides a way to represent important document structure. Mainstream LLMs, such as OpenAl's GPT ~~-4~~ 0, natively "speak" Markdown, and often incorporate Markdown into their responses unprompted. This suggests that they have been trained on vast amounts of Markdown- ~~f~~ ormatted text, and understand it well. As a side benefit, Markdown conventions are also highly token- ~~e~~ fficient.
|
|
60
|
+
|
|
61
|
+
## Prerequisites
|
|
62
|
+
|
|
63
|
+
MarkltDown requires Python 3.10 or higher. It is recommended to use a virtual environment to avoid dependency conflicts.
|
|
64
|
+
|
|
65
|
+
With the standard Python installation, you can create and activate a virtual environment using the following commands:
|
|
66
|
+
|
|
67
|
+
python ~~-~~ m venv .venv (0) source .venv/bin/activate If using uv , you can create a virtual environment with: uv venv --python=3.12 .venv (0 source .venv/bin/activate # NOTE: Be sure to use ‘uv pip install’ rather than just "pip install’ to instal ee > If you are using Anaconda, you can create a virtual environment with: conda create ~~-~~ n markitdown python=3.12 O conda activate markitdown
|
|
68
|
+
|
|
69
|
+
If using uv , you can create a virtual environment with:
|
|
70
|
+
|
|
71
|
+
https://github.com/mcp/microsoft/markitdown
|
|
72
|
+
|
|
73
|
+
2/10
|
|
74
|
+
|
|
75
|
+
08/06/2026 03:22
|
|
76
|
+
|
|
77
|
+
MCP Registry | Markitdown - GitHub
|
|
78
|
+
|
|
79
|
+
## Installation
|
|
80
|
+
|
|
81
|
+
To install MarkltDown, use pip: pip install 'markitdown[all]' . Alternatively, you can install it from the source:
|
|
82
|
+
|
|
83
|
+
git clone git@github.com:microsoft/markitdown.git cd markitdown pip install ~~-~~ e ‘packages/markitdown[al1]'
|
|
84
|
+
|
|
85
|
+
0
|
|
86
|
+
|
|
87
|
+
## Usage
|
|
88
|
+
|
|
89
|
+
## Command- ~~L~~ ine
|
|
90
|
+
|
|
91
|
+
markitdown path ~~-~~ to ~~-~~ file.pdf > document.md
|
|
92
|
+
|
|
93
|
+
(0)
|
|
94
|
+
|
|
95
|
+
Or use ~~-~~ o to specify the output file:
|
|
96
|
+
|
|
97
|
+
markitdown path ~~-~~ to ~~-~~ file.pdf ~~-~~ o document.md
|
|
98
|
+
|
|
99
|
+
You can also pipe content:
|
|
100
|
+
|
|
101
|
+
cat path ~~-~~ to ~~-~~ file.pdf | markitdown
|
|
102
|
+
|
|
103
|
+
(0 0)
|
|
104
|
+
|
|
105
|
+
## Optional Dependencies
|
|
106
|
+
|
|
107
|
+
MarkltDown has optional dependencies for activating various file formats. Earlier in this document, we installed all optional dependencies with the [all] option. However, you can also install them individually for more control. For example:
|
|
108
|
+
|
|
109
|
+
pip install ‘markitdown[pdf, docx, pptx]'
|
|
110
|
+
|
|
111
|
+
(0)
|
|
112
|
+
|
|
113
|
+
## will install only the dependencies for PDF, DOCX, and PPTX files.
|
|
114
|
+
|
|
115
|
+
At the moment, the following optional dependencies are available:
|
|
116
|
+
|
|
117
|
+
- e [all] Installs all optional dependencies
|
|
118
|
+
|
|
119
|
+
- © [pptx] Installs dependencies for PowerPoint files
|
|
120
|
+
|
|
121
|
+
- © [docx] Installs dependencies for Word files
|
|
122
|
+
|
|
123
|
+
- e® [xlsx] Installs dependencies for Excel files e [xls] Installs dependencies for older Excel files
|
|
124
|
+
|
|
125
|
+
https://github.com/mcp/microsoft/markitdown
|
|
126
|
+
|
|
127
|
+
3/10
|
|
128
|
+
|
|
129
|
+
08/06/2026 03:22
|
|
130
|
+
|
|
131
|
+
MCP Registry | Markitdown - GitHub
|
|
132
|
+
|
|
133
|
+
- e [pdf] Installs dependencies for PDF files
|
|
134
|
+
|
|
135
|
+
- e [outlook] Installs dependencies for Outlook messages
|
|
136
|
+
|
|
137
|
+
- e [az ~~-~~ doc ~~-~~ intel] Installs dependencies for Azure Document Intelligence
|
|
138
|
+
|
|
139
|
+
- e [az ~~-~~ content ~~-~~ understanding] Installs dependencies for Azure Content Understanding e [audio ~~-~~ transcription] Installs dependencies for audio transcription of wav and mp3 files
|
|
140
|
+
|
|
141
|
+
- e [youtube ~~-~~ transcription] Installs dependencies for fetching YouTube video transcription
|
|
142
|
+
|
|
143
|
+
## Plugins
|
|
144
|
+
|
|
145
|
+
MarkltDown also supports 3rd ~~-~~ party plugins. Plugins are disabled by default. To list installed plugins:
|
|
146
|
+
|
|
147
|
+
markitdown --list ~~-~~ plugins
|
|
148
|
+
|
|
149
|
+
(O
|
|
150
|
+
|
|
151
|
+
To enable plugins use:
|
|
152
|
+
|
|
153
|
+
markitdown --use ~~-~~ plugins pat ~~h~~ - ~~to~~ -file.pdf
|
|
154
|
+
|
|
155
|
+
(O
|
|
156
|
+
|
|
157
|
+
To find available plugins, search GitHub for the hashtag #markitdown ~~-~~ plugin . To develop a plugin, see packages/markitdown ~~-~~ sample ~~-~~ plugin .
|
|
158
|
+
|
|
159
|
+
## markitdown ~~-o~~ cr Plugin
|
|
160
|
+
|
|
161
|
+
The markitdown ~~-~~ ocr plugin adds OCR support to PDF, DOCX, PPTX, and XLSX converters, extracting text from embedded images using LLM Vision ~~—~~ the same 11m ~~c~~ lient / 11 ~~m_~~ model pattern that MarkltDown already uses for image descriptions. No new ML libraries or binary dependencies required.
|
|
162
|
+
|
|
163
|
+
Installation:
|
|
164
|
+
|
|
165
|
+
pip install markitdown ~~-~~ ocr pip install openai # or any OpenAI ~~-~~ compatible client
|
|
166
|
+
|
|
167
|
+
(0
|
|
168
|
+
|
|
169
|
+
## Usage:
|
|
170
|
+
|
|
171
|
+
Pass the same 1l ~~m_~~ client and 11 ~~m_m~~ odel you would use for image descriptions:
|
|
172
|
+
|
|
173
|
+
from markitdown import MarkItDown from openai import OpenAI
|
|
174
|
+
|
|
175
|
+
**==> picture [13 x 15] intentionally omitted <==**
|
|
176
|
+
|
|
177
|
+
**----- Start of picture text -----**<br>
|
|
178
|
+
O<br>**----- End of picture text -----**<br>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
md = MarkItDown(
|
|
182
|
+
|
|
183
|
+
https://github.com/mcp/microsoft/markitdown
|
|
184
|
+
|
|
185
|
+
4/10
|
|
186
|
+
|
|
187
|
+
08/06/2026 03:22
|
|
188
|
+
|
|
189
|
+
MCP Registry | Markitdown - GitHub
|
|
190
|
+
|
|
191
|
+
enable ~~_p~~ lugins=True,
|
|
192
|
+
|
|
193
|
+
ll ~~m_~~ client=OpenAI(),
|
|
194
|
+
|
|
195
|
+
llm ~~_m~~ odel="gpt- ~~4~~ o0",
|
|
196
|
+
|
|
197
|
+
) result = md.convert("document ~~_w~~ ith ~~_i~~ mages. pdf") print(result.text ~~_c~~ ontent)
|
|
198
|
+
|
|
199
|
+
If nO 11 ~~m_~~ client is provided the plugin still loads, but OCR is silently skipped and the standard built ~~-~~ in converter is used instead.
|
|
200
|
+
|
|
201
|
+
See ~~packages/markitdown-ocr/README.md~~ for detailed documentation.
|
|
202
|
+
|
|
203
|
+
## Azure Content Understanding
|
|
204
|
+
|
|
205
|
+
~~Azure Content Understanding~~ provides higher ~~-q~~ uality conversion with structured field extraction (YAML front matter), mult ~~i-~~ modal support (documents, images, audio, video), and configurable analyzers.
|
|
206
|
+
|
|
207
|
+
Install: pip install ‘markitdown[az ~~-~~ content ~~-~~ understanding] '
|
|
208
|
+
|
|
209
|
+
## When to use Content Understanding
|
|
210
|
+
|
|
211
|
+
Content Understanding is ideal when you need capabilities beyond what built ~~-~~ in or Document Intelligence converters provide:
|
|
212
|
+
|
|
213
|
+
- e Audio and video files ~~—~~ CU is the only option for video, and the higher ~~-q~~ uality cloud option for audio. Built ~~-~~ in converters have no video support and only basic audio transcription.
|
|
214
|
+
|
|
215
|
+
- e Structured field extraction ~~— Prebuilt~~ or ~~custom-built~~ analyzers extract domain- ~~s~~ pecific fields (invoice amounts, receipt dates, contract clauses) serialized as YAML front matter. Neither built ~~-~~ in nor Doc Intel integration exposes fields.
|
|
216
|
+
|
|
217
|
+
- e Higher ~~-q~~ uality document extraction ~~—~~ Cloud ~~-~~ based layout analysis and OCR for scanned PDFs, complex tables, and mult ~~i-~~ page documents.
|
|
218
|
+
|
|
219
|
+
- e Single API for all modalities ~~—~~ One c ~~u_~~ endpoint handles documents, images, audio, and video with automatic analyzer routing.
|
|
220
|
+
|
|
221
|
+
**==> picture [470 x 124] intentionally omitted <==**
|
|
222
|
+
|
|
223
|
+
**----- Start of picture text -----**<br>
|
|
224
|
+
|||||||||
|
|
225
|
+
|---|---|---|---|---|---|---|---|
|
|
226
|
+
|-|Built|-|in|Azure|Document|Azure|Content|
|
|
227
|
+
|Capability|.|.|
|
|
228
|
+
|converters|Intelligence|Understanding|
|
|
229
|
+
|Document|Offline,|format|-|Cloud|layout|Cloud|multimodal|
|
|
230
|
+
|conversion|specific|extraction|extraction|extraction|
|
|
231
|
+
|Structured|Not|exposed|by|this|= YAML|front|matter from|
|
|
232
|
+
|fields|Not|available|integration|analyzer fields|
|
|
233
|
+
|
|
234
|
+
**----- End of picture text -----**<br>
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
https://github.com/mcp/microsoft/markitdown
|
|
238
|
+
|
|
239
|
+
5/10
|
|
240
|
+
|
|
241
|
+
08/06/2026 03:22
|
|
242
|
+
|
|
243
|
+
|_<br>Capability|Built~~-~~in<br>converters|Azure Document<br>.<br>Intelligence|Azure Content<br>.<br>Understanding|
|
|
244
|
+
|---|---|---|---|
|
|
245
|
+
|Custom<br>analyzers|Notavailable|Not configurable in<br>,<br>this integration|Supported with<br>c~~u_~~analyzer~~_i~~d|
|
|
246
|
+
|Audio and<br>video|Basic audio, no<br>video|Notsupported|Audio and video<br>analyzers|
|
|
247
|
+
|Cost|Local compute<br>only|BillableAzureAPI<br>calls|.<br>BillableAzureAPI calls|
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
CLI:
|
|
252
|
+
|
|
253
|
+
markitdown path ~~-~~ to ~~-~~ file.pdf --use ~~-~~ cu --cu ~~-~~ endpoint "<conte ~~n~~ t_understa ~~nde~~ ndpcing (0) ~~ee~~ >
|
|
254
|
+
|
|
255
|
+
## Python API:
|
|
256
|
+
|
|
257
|
+
## from markitdown import MarkItDown
|
|
258
|
+
|
|
259
|
+
(0)
|
|
260
|
+
|
|
261
|
+
# Zero ~~-~~ config ~~—~~ auto ~~-~~ selects analyzer per file type md = MarkItDown ~~(c~~ u_endpoint="< ~~co~~ ntent_und ~~ere~~ standingndpoint>") result = md.convert("report.pdf") # documents > prebuilt ~~-~~ documentSearch result = md.convert("meeting.mp4") # video > prebuilt ~~-~~ videoSearch result = md.convert("call.wav") # audio > prebuilt ~~-~~ audioSearch print(result.markdown)
|
|
262
|
+
|
|
263
|
+
## With a custom analyzer (for domain- ~~s~~ pecific field extraction):
|
|
264
|
+
|
|
265
|
+
md = MarkItDown(
|
|
266
|
+
|
|
267
|
+
(0)
|
|
268
|
+
|
|
269
|
+
c ~~u_~~ endpoint="<c ~~on~~ tent_unde ~~rse~~ ndpoint>",tanding c ~~u_~~ analyzer ~~_i~~ d="my ~~-~~ invoice ~~-a~~ nalyzer",
|
|
270
|
+
|
|
271
|
+
) result = md.convert("invoice.pdf") print(result.markdown)
|
|
272
|
+
|
|
273
|
+
# Output includes YAML front matter with extracted fields: # ---
|
|
274
|
+
|
|
275
|
+
# contentType: document
|
|
276
|
+
|
|
277
|
+
# fields: # = VendorName: CONTOSO LTD. # InvoiceDate: '2019 ~~-~~ 11 ~~-1~~ 5' # --# <!-page 1 -->
|
|
278
|
+
|
|
279
|
+
https://github.com/mcp/microsoft/markitdown
|
|
280
|
+
|
|
281
|
+
6/10
|
|
282
|
+
|
|
283
|
+
08/06/2026 03:22
|
|
284
|
+
|
|
285
|
+
MCP Registry | Markitdown - GitHub
|
|
286
|
+
|
|
287
|
+
When c ~~u_~~ analyzer ~~_i~~ d is set, the converter automatically scopes it to compatible file types based on the analyzer's modality. Incompatible types (e.g., audio files with a document analyzer) auto ~~-~~ route to default prebuilt analyzers.
|
|
288
|
+
|
|
289
|
+
Cost note: Each convert() call for a CU ~~-r~~ outed format is a billable Azure API call. Use c ~~u_~~ file ~~_t~~ ypes to restrict which formats route to CU:
|
|
290
|
+
|
|
291
|
+
from markitdown.converters import ContentUnderstandingFileType
|
|
292
|
+
|
|
293
|
+
(Oo
|
|
294
|
+
|
|
295
|
+
md = MarkItDown( c ~~u_~~ endpoint="<c ~~on~~ tent_unde ~~rse~~ ndpoint>",tanding c ~~u_~~ fil ~~e_t~~ ypes=[ContentUnderstandingFileType.PDF], # only PDFs use CU
|
|
296
|
+
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
More information about Azure Content Understanding can be found ~~here.~~
|
|
300
|
+
|
|
301
|
+
## Azure Document Intelligence
|
|
302
|
+
|
|
303
|
+
To use Microsoft Document Intelligence for conversion:
|
|
304
|
+
|
|
305
|
+
markitdown path ~~-~~ to ~~-~~ file.pdf ~~-~~ o document.md ~~-~~ d ~~-~~ e "<document ~~_i~~ ntelligence ~~_e~~ ndpoir (0
|
|
306
|
+
|
|
307
|
+
~~eee~~ >
|
|
308
|
+
|
|
309
|
+
More information about how to set up an Azure Document Intelligence Resource can be found here
|
|
310
|
+
|
|
311
|
+
## Python API
|
|
312
|
+
|
|
313
|
+
Basic usage in Python:
|
|
314
|
+
|
|
315
|
+
## from markitdown import MarkItDown
|
|
316
|
+
|
|
317
|
+
(O)
|
|
318
|
+
|
|
319
|
+
md = MarkItDown(enable ~~p~~ lugins=False) # Set to True to enable plugins result = md.convert("test.xlsx") print(result.text ~~_c~~ ontent)
|
|
320
|
+
|
|
321
|
+
## Document Intelligence conversion in Python:
|
|
322
|
+
|
|
323
|
+
## from markitdown import MarkItDown
|
|
324
|
+
|
|
325
|
+
(0)
|
|
326
|
+
|
|
327
|
+
md = MarkItDown(docintel ~~_e~~ ndpoint="<document ~~_i~~ ntelligence ~~_e~~ ndpoint>") result = md.convert("test.pdf") print(result.text ~~_c~~ ontent)
|
|
328
|
+
|
|
329
|
+
https://github.com/mcp/microsoft/markitdown
|
|
330
|
+
|
|
331
|
+
7/10
|
|
332
|
+
|
|
333
|
+
08/06/2026 03:22
|
|
334
|
+
|
|
335
|
+
MCP Registry | Markitdown - GitHub
|
|
336
|
+
|
|
337
|
+
To use Large Language Models for image descriptions (currently only for pptx and image files), provide 11 ~~m_~~ client and 11 ~~m_m~~ odel :
|
|
338
|
+
|
|
339
|
+
## from markitdown import MarkItDown
|
|
340
|
+
|
|
341
|
+
(0)
|
|
342
|
+
|
|
343
|
+
from openai import OpenAI
|
|
344
|
+
|
|
345
|
+
client = OpenAI() md = MarkItDown(1ll ~~m_~~ client=client, 1l ~~m_~~ model="gpt ~~-4~~ 0", 1ll ~~m_~~ prompt="optional cust result = md.convert("example.jpg") print(result.text ~~_c~~ ontent)
|
|
346
|
+
|
|
347
|
+
## ee—CSSCSCCié‘(
|
|
348
|
+
|
|
349
|
+
>
|
|
350
|
+
|
|
351
|
+
## Docker
|
|
352
|
+
|
|
353
|
+
docker build ~~-~~ t markitdown:latest . docker run --rm ~~-~~ i markitdown:latest < ~/your ~~-~~ file.pdf > output.md
|
|
354
|
+
|
|
355
|
+
O
|
|
356
|
+
|
|
357
|
+
## Contributing
|
|
358
|
+
|
|
359
|
+
This project welcomes contributions and suggestions. Most contributions require you to agree toa
|
|
360
|
+
|
|
361
|
+
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
|
|
362
|
+
|
|
363
|
+
the rights to use your contribution. For details, visit ~~https://cla.opensource.microsoft.com.~~
|
|
364
|
+
|
|
365
|
+
When you submit a pull request, a CLA bot will automatically determine whether you need to provide
|
|
366
|
+
|
|
367
|
+
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
|
|
368
|
+
|
|
369
|
+
provided by the bot. You will only need to do this once across all repos using our CLA.
|
|
370
|
+
|
|
371
|
+
This project has adopted the ~~Microsoft Open Source Code of Conduct.~~
|
|
372
|
+
|
|
373
|
+
For more information see the Code of Conduct FAQ or
|
|
374
|
+
|
|
375
|
+
contact ~~opencode@microsoft.com~~ with any additional questions or comments.
|
|
376
|
+
|
|
377
|
+
## How to Contribute
|
|
378
|
+
|
|
379
|
+
You can help by looking at issues or helping review PRs. Any issue or PR is welcome, but we have also marked some as ‘open for contribution’ and ‘open for reviewing’ to help facilitate community contributions. These are of course just suggestions and you are welcome to contribute in any way you like.
|
|
380
|
+
|
|
381
|
+
https://github.com/mcp/microsoft/markitdown
|
|
382
|
+
|
|
383
|
+
8/10
|
|
384
|
+
|
|
385
|
+
08/06/2026 03:22
|
|
386
|
+
|
|
387
|
+
MCP Registry | Markitdown - GitHub
|
|
388
|
+
|
|
389
|
+
|||||All||Especially Needs Help from Community|Especially Needs Help from Community|Especially Needs Help from Community|Especially Needs Help from Community|
|
|
390
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
391
|
+
|Issues||~~Allissues~~|||— ~~Issues ~~||~~open for contribution~~|||
|
|
392
|
+
|PRs||~~AllPRs~~||||~~PRsopenforreviewing~~||||
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
## Running Tests and Checks
|
|
397
|
+
|
|
398
|
+
e Navigate to the MarkltDown package:
|
|
399
|
+
|
|
400
|
+
cd packages/markitdown (0 Install hatch in your environment and run tests: pip install hatch # Other ways of installing hatch: https://hatch.pypa.io/: (O hatch shell hatch test ~~i~~ eeeererr—SCSSCC‘N > (Alternative) Use the Devcontainer which has all the dependencies installed: # Reopen the project in Devcontainer and run: ()
|
|
401
|
+
|
|
402
|
+
e Install hatch in your environment and run tests:
|
|
403
|
+
|
|
404
|
+
# Reopen the project in Devcontainer and run: hatch test
|
|
405
|
+
|
|
406
|
+
e Run pr ~~e-~~ commit checks before submitting a PR: pre ~~-~~ commit run --all ~~-~~ files
|
|
407
|
+
|
|
408
|
+
## Security Considerations
|
|
409
|
+
|
|
410
|
+
MarkltDown performs I/O with the privileges of the current process. Like open() or requests.get() , it will access resources that the process itself can access.
|
|
411
|
+
|
|
412
|
+
Sanitize your inputs: Do not pass untrusted input directly to MarkltDown. If any part of the input may be controlled by an untrusted user or system, such as in hosted or server ~~-~~ side applications, it must be validated and restricted before calling MarkltDown. Depending on your environment, this may include restricting file paths, limiting URI schemes and network destinations, and blocking access to private, loopback, link-local, or metadata ~~-s~~ ervice addresses.
|
|
413
|
+
|
|
414
|
+
https://github.com/mcp/microsoft/markitdown
|
|
415
|
+
|
|
416
|
+
9/10
|
|
417
|
+
|
|
418
|
+
08/06/2026 03:22
|
|
419
|
+
|
|
420
|
+
MCP Registry | Markitdown - GitHub
|
|
421
|
+
|
|
422
|
+
Call only the conversion method you need: Prefer the narrowest conversion API that fits your use case. MarkltDown's convert() method is intentionally permissive and can handle local files, remote URIs, and byte streams. If your application only needs to read local files, call convert ~~_l~~ ocal() instead. If you need more control over URI fetching, call requests.get() yourself and pass the response object to convert ~~_r~~ esponse() . For maximum control, open a stream to the input you want converted and call convert ~~_s~~ tream() .
|
|
423
|
+
|
|
424
|
+
## Contributing 3rd ~~-~~ party Plugins
|
|
425
|
+
|
|
426
|
+
You can also contribute by creating and sharing 3rd party plugins. See packages/markitdown ~~-~~ sample ~~-~~ plugin for more details.
|
|
427
|
+
|
|
428
|
+
## Trademarks
|
|
429
|
+
|
|
430
|
+
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
|
431
|
+
|
|
432
|
+
trademarks or logos is subject to and must follow
|
|
433
|
+
|
|
434
|
+
Microsoft's Trademark & Brand Guidelines.
|
|
435
|
+
|
|
436
|
+
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
|
437
|
+
|
|
438
|
+
Any use of third ~~-~~ party trademarks or logos are subject to those third ~~-~~ party’s policies.
|
|
439
|
+
|
|
440
|
+
## Resources
|
|
441
|
+
|
|
442
|
+
fF] microsoft/ markitdown
|
|
443
|
+
|
|
444
|
+
Q) Contact support
|
|
445
|
+
|
|
446
|
+
https://github.com/mcp/microsoft/markitdown
|
|
447
|
+
|
|
448
|
+
10/10
|
|
449
|
+
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ahmed Laminou Amadou
|
|
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
|
+
SOFTWARE.
|