mcpField
W
word-documents

word-documents

github.com/aws-samplesドキュメント197130 回インストール3 週間前に更新
リポジトリ

word-documents について

python-docxを使ってWord文書を作成、編集、確認、読み取るスキルです。文書の作成者や編集者向けに、ワークフローや書式、レイアウト確認を案内し、コメントの抽出にも対応します。

主な機能

  1. 01Word文書の作成
  2. 02既存文書の編集
  3. 03本文とコメントの読み取り
  4. 04ページ表示のプレビュー
  5. 05書式とレイアウトのガイド

活用シーン

  1. 01Word文書の新規作成
  2. 02既存文書の更新
  3. 03文書内コメントの確認
  4. 04複雑なページレイアウトの点検

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill word-documents

インストール後、Claude Code で/word-documentsを入力して読み込まれたか確認します。

詳細

Word ドキュメント

使用する場面

ツール使用する場面
create_word_documentユーザーが新しい Word ドキュメントの作成・生成を依頼した場合
modify_word_documentユーザーが既存のドキュメントの編集・更新、またはコンテンツの追加を依頼した場合
list_my_word_documentsユーザーが利用可能なドキュメントを尋ねた場合
read_word_documentユーザーがドキュメントのダウンロード、またはコメントの閲覧を希望する場合
preview_word_page実際のページの表示(グラフ、画像、複雑なレイアウト)を確認する場合

ワークフロー

  1. 変更する前に、preview_word_page を呼び出して現在のレイアウトを確認します。
  2. 作成・変更後に、preview_word_page を呼び出して検証します。
  3. ファイルの競合状態を防ぐため、ツールは順次実行します(並列実行はしません)。

ページ設定

python-docx のデフォルトは A4 です。米国のレターサイズにするには、次のようにします。

from docx.shared import Inches
section = doc.sections[0]
section.page_width = Inches(8.5)
section.page_height = Inches(11)
# Set 1-inch margins
section.top_margin = Inches(1)
section.bottom_margin = Inches(1)
section.left_margin = Inches(1)
section.right_margin = Inches(1)

プロフェッショナルな書式設定

  • フォント:デフォルトは Arial です。style.font.name = 'Arial' で設定します。
  • 見出し:目次との互換性を保つため、適切な見出しスタイルを使用します:doc.add_heading('Title', level=1) または doc.add_paragraph(style='Heading 1')。
  • 箇条書き:doc.add_paragraph(style='List Bullet') を使用します。Unicode の箇条書き記号は絶対に挿入しないでください。
  • 番号付きリスト:doc.add_paragraph(style='List Number') を使用します。
  • 既存のスタイル、フォント、色は、変更時も必ず保持してください。

画像

from docx.shared import Inches
paragraph = doc.add_paragraph()
run = paragraph.add_run()
run.add_picture('file.png', width=Inches(6))

コードのルール

  • ドキュメントは事前に doc = Document() として初期化されているか(作成時)、doc として読み込まれています(変更時)。Document() や doc.save() は含めないでください。
  • 利用可能なライブラリ:python-docx、matplotlib、pandas、numpy(seaborn は利用できません)
  • 箇条書きには add_paragraph(style='List Bullet') を使用します。Unicode の箇条書き記号は絶対に挿入しないでください。
  • paragraph.text = 'new text' は絶対に使用しないでください(書式が失われます)。代わりに runs を使用してください。
  • ファイル名には、英字、数字、ハイフンのみを使用してください。

ツールのリファレンス

create_word_document

python-docx のコードを使用して、新しい Word ドキュメントを作成します。

パラメーター型必須説明
python_codestrはいpython-docx を使用した Python コード(上記の「コードのルール」を参照)
document_namestrはい拡張子なしのファイル名(英字、数字、ハイフンのみ)

ツール入力の例:

{
  "python_code": "doc.add_heading('Quarterly Report', 0)\ndoc.add_paragraph('This report summarizes Q4 performance.')\ndoc.add_heading('Revenue', level=1)\ndoc.add_paragraph('Total revenue: $1.2M')",
  "document_name": "quarterly-report"
}

警告:パラメーターは document_name です。filename や name ではありません。

modify_word_document

既存の Word ドキュメントを変更し、新しい名前で保存します。

パラメーター型必須説明
source_namestrはい既存のドキュメント名(.docx なし)
output_namestrはい新しい出力名(元の名前と異なる必要があります)
python_codestrはいドキュメントを変更する Python コード

ツール入力の例:

{
  "source_name": "quarterly-report",
  "output_name": "quarterly-report-v2",
  "python_code": "doc.add_paragraph('Additional notes added.')"
}
list_my_word_documents

ワークスペース内のすべての Word ドキュメントを一覧表示します。パラメーターは不要です。

read_word_document

ドキュメントの内容を読み取ります。include_comments=True を指定すると、作成者、日付、テキスト、およびコメントが付いている段落を含むすべてのコメントも表示されます。

パラメーター型必須説明
document_namestrはい拡張子なしのドキュメント名
include_commentsboolいいえtrue の場合、段落との対応関係を含めてコメントを抽出・表示します(デフォルト:false)
preview_word_page

編集前の目視確認用に、ページのスクリーンショットを取得します。

パラメーター型必須説明
document_namestrはい拡張子なしのドキュメント名
page_numberslist[int]はいプレビューするページ番号(1 始まり)

UI ガイダンス(tools-config より)

順次実行が必須です: 変更ツールは並列実行せず、必ず順番に実行してください(S3 ファイルの読み書きで競合状態が発生するのを防ぐためです)。

使用する場面:

  • create_word_document:ユーザーが新しい Word ドキュメントの作成/生成を依頼した場合
  • modify_word_document:ユーザーが既存のドキュメントの編集/変更/更新、または既存のドキュメントへのコンテンツ追加を依頼した場合
  • list_my_word_documents:ユーザーが利用可能なドキュメントを尋ねた場合
  • read_word_document:ユーザーがドキュメントのダウンロードを希望する場合
  • preview_word_page:編集時に実際のページの表示を確認する場合(グラフ、画像、複雑なレイアウトなど)

変更する前に: 必ず最初に preview_word_page を使用して、現在のレイアウトを確認してください。

ページ設定:

  • python-docx のデフォルトは A4 です。US Letter にする場合:section.page_width = Inches(8.5); section.page_height = Inches(11)
  • 余白を 1 インチに設定:section.top_margin = section.bottom_margin = section.left_margin = section.right_margin = Inches(1)

プロフェッショナルな書式設定:

  • フォント:デフォルトは Arial です。style.font.name = 'Arial' で設定します
  • 目次に対応する適切な見出しスタイルを使用します:document.add_heading('Title', level=1) または add_paragraph(style='Heading 1')
  • リスト:add_paragraph(style='List Bullet') または add_paragraph(style='List Number') を使用します。Unicode の箇条書き文字を手動で挿入しないでください。

書式の保持:

  • 既存のスタイル、フォント、色は必ず保持してください
  • paragraph.text = 'new text' は使用しないでください(書式が失われます)
  • 書式を保持しながらテキストを変更するには、run を使用してください

ファイル名: 使用できるのは英字、数字、ハイフンのみです(例:"sales-report.docx")

利用可能なライブラリ: python-docx、matplotlib、pandas、numpy(seaborn は利用できません)

画像: ワークスペースに関連画像がある場合:run.add_picture('file.png', width=Inches(6))

品質確認: 作成後は必ず preview_word_page を使用して、表示を確認してください。

コメント