io.github.trsdn/mcp-server-word
WordMcp — Microsoft Word MCP-Server
Ein MCP-Server, der KI-Assistenten dabei hilft, Microsoft Word für Windows über COM-Automatisierung zu steuern: Dokumente öffnen, Text lesen und bearbeiten, Absätze und Tabellen verwalten, Dokumenteigenschaften festlegen und als PDF exportieren.
Nur Windows. Eine lokale Installation von Microsoft Word ist erforderlich. Dieser Server automatisiert die echte Anwendung, er parst keine
.docx-Dateien.
Anforderungen
Betriebssystem | Windows 10/11 |
Laufzeit | .NET 9 SDK oder Laufzeit |
Office | Microsoft Word 2016 oder neuer (Desktop-Version, nicht Microsoft Store) |
Related MCP server: Word Document MCP Server
Installation
dotnet tool install --global WordMcp.McpServerDas Tool ist danach als mcp-word verfügbar.
mcp-word --version
mcp-word --helpUm es später zu aktualisieren oder zu entfernen:
dotnet tool update --global WordMcp.McpServer
dotnet tool uninstall --global WordMcp.McpServerUm stattdessen einen unveröffentlichten Build auszuführen, packen Sie ihn lokal und installieren Sie ihn aus dem Ausgabeordner:
dotnet pack src\WordMcp.McpServer\WordMcp.McpServer.csproj -c Release -o artifacts
dotnet tool install --global --add-source .\artifacts WordMcp.McpServerOhne Installation
Der Server ist im MCP-Registry als io.github.trsdn/mcp-server-word gelistet. Clients, die Pakete selbst auflösen, können ihn über dnx ausführen, das die Version bei Bedarf abruft, statt ein globales Tool vorzuhalten:
{
"servers": {
"word": {
"type": "stdio",
"command": "dnx",
"args": ["WordMcp.McpServer@0.1.0", "--yes"]
}
}
}Client-Konfiguration
Der Server spricht stdio.
VS Code / GitHub Copilot
.vscode/mcp.json:
{
"servers": {
"word": {
"type": "stdio",
"command": "mcp-word"
}
}
}Claude Desktop
%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"word": {
"command": "mcp-word"
}
}
}Copilot CLI
copilot mcp add word --command mcp-wordKonzepte
Jeder Vorgang läuft innerhalb einer Sitzung. Eine Sitzung besitzt eine Word-Instanz und ein geöffnetes Dokument, identifiziert durch eine session_id wie word-a1b2c3d4e5f6g.
file(open|create) ──► session_id ──► text / paragraph / table / document ──► file(save) ──► file(close)Pfade müssen absolut sein (
C:\Users\me\Documents\report.docx).Unterstützte Eingabeformate:
.docx,.docm,.doc,.dotx,.dotm,.rtf.Das Dokument darf nicht bereits in Word geöffnet sein – WordMcp benötigt exklusiven Zugriff.
Word läuft unsichtbar im Hintergrund und wird beendet, wenn die Sitzung geschlossen wird.
Der Sitzungsdienst
Sitzungen leben normalerweise im Prozess des MCP-Servers und verschwinden mit ihm. WordMcp.Service.exe ist ein optionaler Hintergrund-Daemon, der die Sitzungen stattdessen hält, sodass eine Sitzung einen Client-Neustart übersteht und von mehreren Clients gemeinsam genutzt werden kann:
WordMcp.Service.exe --daemon [--idle-minutes 30] # listen until idle or stopped
WordMcp.Service.exe --status # what is it doing?
WordMcp.Service.exe --stop # save open documents and exitEin manueller Start ist selten nötig – ein Client, der den Daemon nutzt, startet ihn bei Bedarf. Die Pipe, auf der er lauscht, enthält Ihre SID und ist per ACL an diese gebunden, sodass Sitzungen nie zwischen Konten geteilt werden. Er beendet sich von selbst, sobald nach dem Leerlauf-Timeout keine Sitzung mehr geöffnet war.
Um den Daemon zu verwenden, setzen Sie für den MCP-Server WORDMCP_SERVICE_MODE=daemon. Jeder Tool-Aufruf wird dann an den Daemon gesendet, statt im eigenen Prozess des Servers zu laufen. Ohne diese Einstellung behält der Server die Sitzungen für sich selbst – genau das, was ein einzelner Client möchte: kein zweiter Prozess und keine Wartezeit beim Start.
Tools
Fünfzehn Tools, jeweils mit einem action-Parameter.
file — Sitzungslebenszyklus
Aktion | Zweck |
| Öffnet ein vorhandenes Dokument und startet eine Sitzung |
| Erstellt ein neues Dokument unter |
| Speichert das geöffnete Dokument |
| Speichert (optional) und schließt die Sitzung |
| Listet alle aktiven Sitzungen auf |
| Prüft, ob Word auf diesem Rechner automatisiert werden kann |
file(action: "open", path: "C:\\Users\\me\\Documents\\report.docx")
// → { "sessionId": "word-a1b2c3d4e5f6g", "fileName": "report.docx", ... }text — Inhalt
Aktion | Zweck |
| Liest den gesamten Text oder einen Zeichenbereich ( |
| Hängt Text an, optional als neuen Absatz |
| Findet einen Begriff; gibt Positionen und umgebenden Kontext zurück |
| Ersetzt Vorkommen ( |
| Wendet |
Zeichenpositionen stammen aus get und find und sind Word-Range-Offsets.
paragraph — Absätze
Aktion | Zweck |
| Listet Absätze mit Index, Text, Formatvorlage, Ausrichtung und Gliederungsebene auf |
| Fügt einen Absatz an, optional mit |
| Fügt einen Absatz vor einem angegebenen Index ein |
| Löscht einen Absatz anhand des Index |
| Wendet eine Formatvorlage wie |
|
|
Absatzindizes sind 1-basiert, genau wie in Word.
table — Tabellen
Aktion | Zweck |
| Listet Tabellen mit Abmessungen und Stil auf |
| Erstellt eine Tabelle mit |
| Liest alle Zellen einer Tabelle als Zeilen-/Spalten-Matrix |
| Schreibt eine einzelne Zelle ( |
| Fügt eine Zeile hinzu |
| Löscht eine Zeile |
| Wendet einen Tabellenstil wie |
document — Metadaten und Export
Aktion | Zweck |
| Zählt Wörter, Zeichen, Absätze, Seiten, Tabellen und Abschnitte |
| Titel, Autor, Betreff, Schlagwörter, Kommentare, Unternehmen |
| Ändert diese integrierten Eigenschaften |
| Exportiert nach PDF, ohne das geöffnete Dokument zu verändern |
| Speichert eine Kopie in einem anderen Format |
image — Bilder
Aktion | Zweck |
| Listet Inline-Bilder mit Index, Größe, Alt-Text und verknüpftem Status auf |
| Fügt ein Bild ein, optional mit |
| Ändert die Größe über |
| Tauscht das Bild hinter einem Index aus und behält standardmäßig seine Größe |
| Löscht ein Bild anhand des Index |
| Setzt den Alternativtext für die Barrierefreiheit |
field — Felder und Inhaltsverzeichnisse
Aktion | Zweck |
| Listet alle Felder mit Index, Typ und Feldfunktion auf |
| Fügt ein Inhaltsverzeichnis ein ( |
| Aktualisiert jedes Inhaltsverzeichnis |
| Aktualisiert alle Felder, einschließlich derer in Kopf- und Fußzeilen |
| Fügt eine Seitenzahl in die Kopf- oder Fußzeile ein |
section — Abschnitte und Seiteneinrichtung
Aktion | Zweck |
| Listet alle Abschnitte mit Starttyp, Seitenrändern, Seitengröße und Ausrichtung auf |
| Fügt einen Abschnittsumbruch ein ( |
| Legt Seitenränder, |
header-footer — Kopf- und Fußzeilen
Aktion | Zweck |
| Liest die Kopf- oder Fußzeile eines Abschnitts oder aller Abschnitte |
| Schreibt Text, optional mit einer |
| Leert die Kopf- oder Fußzeile |
kind wählt header oder footer aus, type wählt primary, first-page oder even-pages aus.
style — Formatvorlagen
Aktion | Zweck |
| Listet Formatvorlagen; standardmäßig nur die im Dokument verwendeten |
| Fügt eine benutzerdefinierte Formatvorlage hinzu, optional basierend auf einer vorhandenen |
| Ändert Schrift- und Absatzformatierung einer Formatvorlage |
| Entfernt eine benutzerdefinierte Formatvorlage |
style_type wählt paragraph, character, table oder list. Übergeben Sie in_use_only: false an list, um den vollständigen Satz einer lokalisierten Word-Version zu erhalten, der über 370 Einträge umfasst.
style(action: "create", session_id: "...", name: "Callout", base_style: "Normal")
style(action: "modify", session_id: "...", name: "Callout",
font_size: 11, bold: true, color: "#C00000", space_after: 12)list — Aufzählungen und Nummerierung
Aktion | Zweck |
| Gibt die Listenformatierung der Absätze zurück, einschließlich der dargestellten Aufzählungszeichen oder Nummer |
| Formatiert einen Absatzbereich als Liste mit |
| Legt die Listenebene eines Absatzbereichs fest (1–9) |
| Startet die Nummerierung an einem Absatz neu |
| Entfernt die Listenformatierung |
Ohne end_index wird die Aktion ausschließlich auf start_index angewendet.
list(action: "apply", session_id: "...", start_index: 2, end_index: 5, list_type: "number")
list(action: "set-level", session_id: "...", start_index: 3, end_index: 4, level: 2)
list(action: "restart", session_id: "...", start_index: 6)comment — Kommentare
Aktion | Zweck |
| Listet die Kommentare mit Autor, Datum, Text und dem kommentierten Text auf |
| Fügt einen Kommentar an einen Absatz oder eine Phrase darin an |
| Markiert einen Kommentar als erledigt oder öffnet ihn wieder |
| Entfernt einen Kommentar |
add kommentiert den gesamten Absatz, es sei denn, anchor_text benennt eine Phrase darin. Indizes von Unterschieden nach delete – listen Sie die Kommentare vor dem Löschen eines weiteren Kommentars also erneut auf.
comment(action: "add", session_id: "...", paragraph_index: 4,
text: "Source?", anchor_text: "fifteen percent")
comment(action: "list", session_id: "...", unresolved_only: true)revision — Änderungen nachverfolgen
Aktion | Zweck |
| Listet die nachverfolgten Änderungen und gibt an, ob die Änderungsverfolgung eingeschaltet ist |
| Übernimmt eine Änderung oder alle Änderungen |
| Lehnt eine Änderung oder alle Änderungen ab |
| Schaltet die Änderungsverfolgung ein oder aus |
Wenn bei accept/reject der index weggelassen wird, wird das gesamte Dokument behandelt, einschließlich Kopf- und Fußzeilen.
revision(action: "set-tracking", session_id: "...", enabled: true)
revision(action: "accept", session_id: "...")bookmark — stabile Verweise
Aktion | Zweck |
| Lesezeichen mit Name, Absatzindex und Vorschau des markierten Textes |
| Ein Lesezeichen auf einen Absatz, einen Absatzbereich oder eine Textstelle innerhalb eines Absatzes setzen |
| Den vollständigen markierten Text lesen |
| Lesezeichen entfernen; der Text bleibt erhalten |
Namen müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Ziffern und Unterstriche enthalten. Lesezeichen überstehen Bearbeitungen an anderer Stelle des Dokuments und sind deshalb der zuverlässige Weg, auf eine Textstelle zu verweisen, sobald sich die Absatzindizes verschoben haben.
bookmark(action: "add", session_id: "...", name: "Intro", paragraph_index: 2)
bookmark(action: "add", session_id: "...", name: "Growth",
paragraph_index: 4, anchor_text: "fifteen percent")
bookmark(action: "get-text", session_id: "...", name: "Intro")screenshot — die Seite anzeigen
Aktion | Zweck |
| Eine Seite als PNG rendern |
Layoutfragen — Seitenumbrüche, Tabellenbreiten, Bildplatzierung, Kopfzeilenpositionen — lassen sich anhand der gerenderten Seite weitaus leichter beantworten als aus. Das PNG wird in eine Datei geschrieben und der Pfad zurückgegeben; include_image: true gibt es zusätzlich inline als base64 zurück, was nur dann den Kontext lohnt, wenn das Bild auch angesehen werden soll.
dpi hat den Standardwert 150. Verwenden Sie 96 für eine schnelle Layoutprüfung und 300 für etwas in druckähnlicher Qualität.
screenshot(action: "page", session_id: "...", page: 2)
screenshot(action: "page", session_id: "...", page: 1,
output_path: "C:/temp/page1.png", dpi: 300, include_image: true)Antworten
Jedes Tool gibt JSON zurück. Fehler werden als strukturierte Antworten gemeldet, niemals als Transportfehler:
{
"success": false,
"isError": true,
"tool": "text",
"action": "Replace",
"errorType": "KeyNotFoundException",
"errorMessage": "Session 'word-unknown' not found."
}Bekanntes Verhalten und Fallstricke
document(save-as)speichert auch das Original. Word hat keine API, die das Format ändert, indem sie eine Kopie speichert. Für jedes andere Ziel außer PDF ruft der ServerSaveAs2(target)und dannSaveAs2(original)auf, was ausstehende Änderungen als Nebeneffekt in der Originaldatei speichert. Verwenden Sieexport-pdf, wenn Sie einen Export ohne Nebenwirkung brauchen.Farben sind hex-RGB (
#0078D4). Der Server konvertiert in den BGR-Wert, den Word erwartet.Rechtegeschützte Dokumente (IRM/AIP) werden abgelehnt, bevor Word gestartet wird.
Ein Dokument, das in Word geöffnet ist, blockiert die Sitzung — schließen Sie es zuerst.
Word-Dialoge blockieren die Automatisierung. Wenn ein Aufruf eine Zeitüberschreitung hat, prüfen Sie zuerst, ob auf dem Desktop ein Dialog geöffnet ist.
Formatnamen sind englisch. Integrierte Formate (
Heading 1,Title,Table Grid, …) werden in die Sprachklärung „ – deutschen Stil-IDs von Word übersetzt, sodass sie auf lokalisierten Installationen funktionieren. Jeder andere Name wird unverändert an Word übergeben; so werden benutzerdefinierte und lokalisierte Stile angesprochen. Beachten Sie: Word meldet Stile unter ihrem lokalisierten Namen (Überschrift 1auf einer deutschen Installation). Darum gibtstyle(list)sowohlnameals auchenglish_namezurück — senden Sieenglish_namezurück, wenn er vorhanden ist.Integrierte Stile können nicht gelöscht werden.
style(delete)lehnt das klar verständlich ab, anstelle des generischen COM-Fehlers von Word durchzusickern. Auch ein benutzerdefinierter Stil, der in einer Textmarke noch auf einen Absatz angewendet wird, kann nicht gelöscht werden; setzen Sie diese Absätze zuerst auf einen anderen Stil.Neue Dokumente werden direkt geschrieben, nicht über Word.
file(create)schreibt selbst eine leere..docx/.docm`-Paket-Paketdatei und öffnet sie. Dokumente über Word zu erstellen, ist auf Computern mit Microsoft-365-Anmeldung unzuverlässig, weil AutoSave das neue Dokument für OneDrive beansprucht und den anforderten lokalen Pfad stillschweigend ignoriert.Zusammengefügte Tabellenzellen werden von
table(read)als leere Zeichenketten zurückgegeben.Bildgrößen sind Maßeinheit Punkt, nicht Pixel (72 pt = 1 Zoll).
image(insert)undimage(resize)erhalten das Seitenverhältnis, außer gesetzt ist; wird nurwidthübergeben, wird die Höhe automatisch skaliert.imageumfasst nur Inline-Bilder. Schwebende Objekte, Textfelder und Diagramme werden unberührt bleiben und erscheinen nicht inimage(list); ihre Anwesenheit verschiebt also nicht die Bildindizes.Ein Inhaltsverzeichnis listet nur Überschriftenabsätze auf.
field(insert-toc)liefertentry_count: 0für ein Dokument ohne Überschriftenstile — wenden Sie zuerstHeading 1/Heading 2überparagraph(add|set-style)an, dann rufen Siefield(update-toc)aus.field(update-all)erfasst auch Kopf- und Fußzeilen. WennDocument.Fieldsvon Word nur den Textkörper abdeckt, warum beziehen sich Seitenzahlen eigentlich sonst verschieden s? Deshalb würden Seitenzahlen nie aktualisiert, wenn dieser nicht mitbehandelt würde.image(insert)mit einer Beschriftungsanmerkung verwendet die Nummerierung von „Beschriftung“ in Word, sodass die BildunterschriftFigure 1 <Ihr_text>lautet (auf nicht-englischen Installationen lokalisiert) und an einem Abbildungsverzeichnis teilnimmt.Alle Maße sind in Punkt gehalten, einschließlich Seiten enthält; Abbildung
(1 cm = 28,35 pt; 1 Zoll = 72 pt).section(page-setup)formiertpaper_sizevor den Rändern, weil die Änderung der Papiergröße die Ränder im Word zurücksetzt. Ohnesection_indexgilt das für alle Abschnitte.Spalten- und Fußzeilen werden zwischen Abschnitten vererbt. Ein neuer Abschnitt zeigt die Kopfzeile des vorherigen Abschnitts, bis etwas hineingeschrieben wird.
header-footer(set)mit Angabe einersection_indexunterbricht die Verknüpfung automatisch, in Abschnitt 1 bleibt also sein eigener Text erhalten.first-pageundeven-pagesbrauchen einen Abschnittswechsel.header-footer(set)aktiviert für SieDifferentFirstPagebzw.DifferentOddEvenPages— ohne das speichert Word Speichert den Text, rendert ihn aber nie.list(apply)startet standardmäßig eine neue Liste. `` weiter:continue_previous_listist aus, da eine Übernahme der Nummerung einer unzusammenhängenden früheren Liste selten beabsichtigt ist. Zwei nummerierte Listen, die mit normalen Absätzen getrennt sind, bleiben getrennt; verwenden Sielist(restart), falls Word sie trotzdem zusammenfügt.Nur das Listenformatete mit Ebenen von Gliedern zeigt Ebenen mit unterschiedlichen Graden.
list(set-level)funktioniert mit jeder Liste, aber eine einfachebullet- odernumber-Liste zeigt auf jeder Ebene denselben Marker — die Absätze sind gleichsam nur noch eingerückt.comment(resolve)schlägtbei Microsoft 365 oft fehl. Moderne Kommentare in Word behandeln jeden über die API hinzugefügten Kommentar als unveröffentlichten Entwurf, und Entwürfe können nicht als erledigt markiert werden. Der Server meldet das benaberzield klar; löschen Sie den Kommentar stattdessen.comment(list)liefertresolved: nullauf Systemen, die den Zustand überhaupt nicht offengeben.Kommentar- und Revisions-Indizes verschieben sich. Das Löschen von Kommentaren oder das Annehmen einer einzelnen überarbeitung nummeriert alles danach neu. Führen Sie vor, zäh Tor. BetweenZwei solchen Aufrufen: Führen Sie
listerneut aus, statt die alten Indizes zu verwenden.revision(accept|reject)ohne Indexursor umfasst auch Kopf- und Fußzeilen. WordDocument.AcceptAllRevisions()deckt nur den Textkörper ab, genau dieselbe Lücke wie beifield(update-all).Verfolgte Änderung werden nur aufgezeichnet, solange Überarbeitungen getrackt werden.
revision(set-tracking)wirkt nicht retentional— aktivieren Sie die. Bevor Sie die Änderungen durchführen, die Sie aufgezeichnet haben möchten.Lesezeichennamen unterliegen Einschränkungen aus Word. Sie müssen mit einem Buchstaben beginnen, dürfen nur Buchstaben, Ziffern und Unterstriche enthalten und sind auf 40 Zeichen begrenzt. Leerzeichen, Bindestriche, Punkte und nicht-ASCII-Buchstaben werden abgelehnt, bevor der Aufruf Word erreicht, das sonst mit einem generischen COM-FehlFehler abbricht.
Lesezeichen Lesezeichen sind der stabile Weg, um auf eine Passage zu verweisen. Die Absatzindexe a ändern sich bei jedem Einfügen, Buchzeichen nicht. Diese Stelle Lesezeichen zuerst aus und lesen Sie später mit
bookmark(get-text)wieder.bookmark(add)auf einem Absatz schließt Paragraph-Zeichenzeichen aus, sodassget-textden Text ohne nachfolgenden Zeilenumbruch zurückgibt. Ein Lesezeichen über mehrere Absätze enthält die Zeichen dazwischen.screenshot(page)rendert über eine PDF. Word hat keine API, die eine Art als Bild liefert; der Server export die Einzelseite mitExportAsFixedFormatund wandelt sie in Raster. Ungespeicherte Änderungen werden ein begonnenessen, und die temporäre PDF wird danach gelöscht.Seitenzahlen stammen aus neuer Rerepagination. Ein Dokument, das nur automatisiert bearbeitet wird, meldet eine überholte Seitenzahl; deshalb macht
screenshotzuerst eine neue Seitenwanderung. Das bedeutet, dass die Seitenzahl den aktuellen Layout repr en wiring repulsiert, nicht das beim Öffnen.
Bau aus dem Quellcode
git clone https://github.com/trsdn/mcp-server-word.git
cd mcp-server-word
dotnet build WordMcp.sln -c Release
dotnet test WordMcp.sln --filter "Category!=RequiresWord"Projekteinrichtung
Projekt | Zweck |
| Word-COM-Leberzyklus: STA-Threads, Sitzungungen, OLE-Message-Argument, Dateivalidierung |
| Befehlsschnittstellen, befehlsimplementierungen und Ergebnismodelle |
| gemeinsame Quelldateien der Generatoren; kein Lieferprojekt für den ganzes selbst |
| Roslyn-Quellviews, das die MCP-Tool-Werkzeuge erzeugt |
| stdio-MCP-Server, wichtige drei Tool-öffentlichkeit fünfzehn Werkzeuge |
| Unit-Komponententests und Integrationstests gegen ein echtes Word |
| Unit-Tests der Werkzeugschicht, ohne Word-Anwendung |
Generierte Werkzeugschicht
Vierzehn Aufgaben der fünfzehn Tools werden zur Build-Zeit erzeugt. Die Befehl- und Schnittstellen in src/WordMcp.Core/Commands sind die genaue Spezifikation für den Vertrag:
ServiceCategory( "section", "Section")benennt die Tool-Klasse,WordSectionTool.[McpTool("section", Title = ..., Description = ...)]liefert den ToolNamen und den Prompt, dem das Modell liest.[ServiceAction("page-setup")]auf jeder Methode wird zu einem Enum-Wert der generiertenWordSectionAction.XML-Dokumentation der Schnittstellenparameter wird zu den Parameterbeschreibungen im MCP-Schema.
Der Generator führt die Parameter aller Aktionen in einer Methode, so dass ein param Parameter, der nur von einigen Aktionen verwendet wird, als optional oll als ausgegeben wird. Für die API-Änderung arbeiten Sie die Schnittstelle — und niemals generierten Code berühren. file bleibt von Hand geschrieben, weil es Sitzungen verwaltet, nicht mit jeweilsArbe una-bearbeitet.
Unter src/WordMcp.McpServer/obj/gen steht der erzeugten Code. Die Tests im GeneratedToolContractTests vergleichen die generierte Oberfläche mit den Schnittstellen, so dass eine Abweichung den Build fehlschlagen lassen, statt bis zum Client zu gelangen.
Tests, die eine echte Word-Installation benötigen, werden mit [Trait("Category", "RequiresWord")] markiert und in CI ausgeschartet.
Fehlgeschlagene Integrationstests können verwaiste WINWORD.EXE-Prozesse zurücklassen, die spätere Läufe verlangsamen oder blockieren können. Räumen Sie sie auf mit GetProcess WINWORD | Stop-Process -Force, bevor Sie neu starten.
Weiterführende Informationen
Dokument | Enthält |
Schichten, Anforderungsfluss und wie die Werkzeugschicht erzeugt wird | |
STA-Threading, Freigabe von COM-Objekten und das Word-Verhalten in den Stolperfallen oben | |
Build, Test, Hinzufügen einer Werkzeugschicht, Veröffentlichen eines Release | |
Eine an Agents gerichtete Anleitung, Werkzeuge in richtigen ReihenfolgeReihenfolge richtig einzusetzen |
Troubleshooting
Fehlerbild | Ursache und Abhilfe |
| Installieren Sie Word-De schreibtisch; die Microsoft-Store-Fassung kann nicht automatisiert werden |
|
|
Zeitüberschreitung des Vorgangs | Ein Word-Dialog wartet auf Eingabe; schließen Sie ihn und wiederholen Sie den Vorfall |
| Schließen Sie das Dokument in der Word-Oberfläche |
Mitwirken
Fehlermeldungen und Feature-Wünsche lassen sich über die Issue-Vorlagen einreichen. Pull-Requests sind willkommen; CONTRIBUTING.md beschreibt, wie das Projekt gebaut wird, wie die beiden Hälften der Testsuite ausgeführt werden und was erforderlich ist, um ein Tool hinzuzufügen.
Bitte lesen Sie zuerst den Code of Conduct.
Reichen Sie für ein Sicherheitsproblem kein öffentliches Issue ein — melden Sie es privat, wie in der Sicherheitsrichtlinie beschrieben.
Lizenz
MIT — siehe LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceEnables AI assistants to create, read, and manipulate Microsoft Word documents with comprehensive formatting, table creation, content management, and document protection capabilities. Supports advanced operations like merging documents, PDF conversion, and rich text formatting through a standardized interface.32
- AlicenseBqualityDmaintenanceEnables AI assistants to create and manipulate Microsoft Word documents programmatically with support for rich text formatting, tables, lists, headings, and find-and-replace operations.1031MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to directly read, edit, and manipulate Word documents, supporting image and table operations, paragraph editing, and search/replace.202MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, edit, and extract data from Microsoft Word documents programmatically, supporting document creation, content editing, table manipulation, parameter extraction, and template generation.1MIT
Related MCP Connectors
Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.
AI document editing for agents: draft, edit, export .docx/PDF. 37 MCP tools; agent self-signup.
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/trsdn/mcp-server-word'
If you have feedback or need assistance with the MCP directory API, please join our Discord server