mcpField
M
microsoft-outlook

microsoft-outlook

github.com/zapier生産性182120 回インストール10 週間前に更新
リポジトリ

microsoft-outlook について

microsoft-outlookは、Microsoft Graphを通じてユーザーのOutlookメール、カレンダー、個人連絡先を管理するagentskills.ioスキルです。メール検索や操作、フォルダーと添付ファイル、予定、連絡先の各スクリプトを備えています。

主な機能

  1. 01メールの検索、閲覧、作成、送信
  2. 02メールへの返信、転送、整理
  3. 03フォルダーとメール添付の確認
  4. 04カレンダー予定の一覧表示と管理
  5. 05個人連絡先の検索と管理

活用シーン

  1. 01メールボックス内のメールの検索と閲覧
  2. 02返信の下書き・送信とメールの整理
  3. 03期間内の予定の確認や更新
  4. 04個人連絡先情報の検索や更新

MCP 対応

MCP対応クライアントでは、読み込み済みのツールを利用するか、ローカルMCPサーバーとして登録できます。MCPクライアントに、Outlookのメール、フォルダー、添付ファイル、カレンダー、連絡先の操作ツールを提供します。

インストール

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

$npx skills add https://github.com/zapier/connectors --skill microsoft-outlook

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.mcp.json
CHANGELOG.md
cli.js
cli.ts
connections.ts
index.ts
LICENSE
NOTICE
NOTICE.md
package.json
README.md
.claude-plugin/
plugin.json
evals/
evals.json
results.md
lib/
graph.ts
schemas.ts
references/
microsoft-outlook-api-gotchas.md
use-as-cli.md
use-as-mcp.md
use-as-recipe.md
use-as-sdk.md
use-with-zapier.md
use-without-zapier.md
scripts/
copyMessage.ts
createContact.ts
createDraft.ts
createEvent.ts
createMailFolder.ts
createReplyDraft.ts
deleteContact.ts

詳細

Microsoft Outlook

Microsoft Graph API v1.0(https://graph.microsoft.com/v1.0/)を使用して、1 人のユーザーの Outlook メールボックスを操作するツールです。メールの読み取りと検索、作成/送信/返信/転送、メッセージの整理(既読状態、フラグ、重要度、カテゴリー、移動、コピー、削除)、メールフォルダーと添付ファイルの参照、カレンダーイベントの管理、個人用連絡先の管理ができます。プロフィール、メール、フォルダー、カテゴリー、カレンダー、連絡先にわたる 30 個のスクリプトを提供します。すべての呼び出しは、1 つの OAuth ベアラートークンで認証します。

Microsoft Outlook 向けの、独立した非公式コネクターです。Microsoft Outlook との提携、承認、スポンサー関係はありません。「Microsoft Outlook」は、その所有者の商標であり、このコネクターが連携するサービスを識別する目的でのみ使用しています。

使用するタイミング

  • エージェントがメールを読んだり検索したりする必要がある場合 — メッセージの一覧表示/検索(フォルダー、KQL、または OData フィルターで指定)、メッセージ全体の読み取り、添付ファイルの一覧表示とダウンロードを行います。
  • エージェントがメールを送信または返信する必要がある場合 — 作成して送信する、下書きを作成して後から送信する、返信/全員に返信する、または転送します。
  • エージェントがメールを整理する必要がある場合 — メッセージを既読/未読にする、フラグを付ける、重要度を設定する、カテゴリーに分類する、移動する、コピーする、削除するほか、メールフォルダーの参照や作成を行います。
  • エージェントがカレンダーや連絡先を操作する必要がある場合 — カレンダーの一覧表示、イベントの一覧表示または期間指定での表示、イベントの作成/更新/削除、個人用連絡先の作成/読み取り/更新/削除を行います。

セットアップ

これはagentskills.io のスキルです。

コネクターがまだスキルとしてインストールされていない場合は、まず npx skills add zapier/connectors --skill microsoft-outlook(または使用しているハーネス独自のスキルインストール方法)でインストールしてから、ここに進んでください。スキルをインストールすると、これらのファイルがコピーされますが、依存関係はインストールされません。CLI、ローカル MCP サーバー、または zapier-sdk の認証コマンドを実行する前に、ここで一度 npm install --omit=dev を実行してください。公開済みパッケージを依存関係として自分のプロジェクトにインポートする場合は、npm install ですべてが解決されます。詳細は references/use-as-sdk.md を参照してください。

代わりにリポジトリのソースを確認したい場合(references/ の参照、このコネクターのテスト実行、または改変など)は、範囲を絞った git clone について README.md を参照してください。

このコネクターの実行には Node.js 22.18+ が必要です。実行方法に合ったリファレンスを選び、ほかの操作を行う前に読み込んでください。

利用環境読み込むリファレンス
MCP 対応クライアント — ツールがすでに読み込まれている場合(例:mcp__microsoft-outlook__<tool>)や、ローカルサーバーを自分で登録する場合(またはユーザーを案内する場合)references/use-as-mcp.md
ターミナル/サブプロセスへのアクセス(node を実行できる)references/use-as-cli.md
自分のコードのみで、このパッケージを依存関係としてインポートする場合references/use-as-sdk.md
ツールへのアクセスもターミナルも、このパッケージをインポートする手段もなく、Microsoft Outlook API を直接呼び出すコードを自分で書く場合(例:コード実行サンドボックス)references/use-as-recipe.md

スクリプト

すべてのスクリプトで、単一の接続 microsoft-outlook を使用します。メールとカレンダーのスクリプトでは、共有メールボックスを操作するための任意の入力 mailbox を指定できます。6 つのイベントスクリプトでは、任意の入力 calendarId を指定できます(listCalendars で確認してください)。

スクリプトスクリプト名接続説明
scripts/getMe.tsgetMemicrosoft-outlookサインイン中のユーザーのプロフィール(名前、メールアドレス、UPN)を取得します。「自分のメールアドレス」を解決します。
scripts/sendMail.tssendMailmicrosoft-outlookメールを作成して、1 回の操作で送信します(ID は返しません)。
scripts/createDraft.tscreateDraftmicrosoft-outlook下書きメールを作成し、sendDraft 用の下書き ID を返します。
scripts/sendDraft.tssendDraftmicrosoft-outlookID を指定して既存の下書きを送信します。
scripts/replyToMessage.tsreplyToMessagemicrosoft-outlookメッセージに返信(または全員に返信)して、すぐに送信します。
scripts/createReplyDraft.tscreateReplyDraftmicrosoft-outlookメッセージへの返信(または全員への返信)の下書きを作成し、編集してから送信できるようにします。
scripts/forwardMessage.tsforwardMessagemicrosoft-outlookメッセージを新しい宛先に転送して、すぐに送信します。
scripts/updateMessage.tsupdateMessagemicrosoft-outlookメッセージの既読状態、フラグ、重要度、またはカテゴリを更新します。
scripts/moveMessage.tsmoveMessagemicrosoft-outlookメッセージを別のフォルダーに移動します(新しい ID を返します)。
scripts/copyMessage.tscopyMessagemicrosoft-outlook元のメッセージを残したまま、別のフォルダーにコピーします。
scripts/deleteMessage.tsdeleteMessagemicrosoft-outlookメッセージを削除します(削除済みアイテムに移動します。元に戻せます)。
scripts/listMessages.tslistMessagesmicrosoft-outlookメッセージを新しい順に一覧表示または検索します(ID 解決のエントリーポイント)。
scripts/getMessage.tsgetMessagemicrosoft-outlookID を指定して単一のメッセージを取得します。本文全体を含みます。
scripts/listAttachments.tslistAttachmentsmicrosoft-outlookメッセージの添付ファイルを一覧表示します。
scripts/getAttachment.tsgetAttachmentmicrosoft-outlookID を指定して添付ファイルを 1 つ取得します。base64 コンテンツを含みます。
scripts/listMailFolders.tslistMailFoldersmicrosoft-outlookメールフォルダーを一覧表示します(最上位、またはフォルダーのサブフォルダー)。
scripts/createMailFolder.tscreateMailFoldermicrosoft-outlookメールフォルダーを作成します(最上位、またはサブフォルダー)。
scripts/listCategories.tslistCategoriesmicrosoft-outlookメールボックスのカテゴリ名と色を一覧表示します。
scripts/listCalendars.tslistCalendarsmicrosoft-outlookユーザーのカレンダーを一覧表示します(calendarId を解決します)。
scripts/listEvents.tslistEventsmicrosoft-outlookイベントと、繰り返し予定のマスターを一覧表示します。
scripts/listCalendarView.tslistCalendarViewmicrosoft-outlook日付範囲内のイベントを一覧表示し、繰り返し予定を展開します(「カレンダーの予定」)。
scripts/getEvent.tsgetEventmicrosoft-outlookID を指定して単一のイベントを取得します(出席者、本文、繰り返し設定)。
scripts/createEvent.tscreateEventmicrosoft-outlookカレンダーのイベントを作成します。
scripts/updateEvent.tsupdateEventmicrosoft-outlookイベントのフィールドまたは出席者を更新します(出席者は置き換えられます)。
scripts/deleteEvent.tsdeleteEventmicrosoft-outlookカレンダーのイベントを削除(キャンセル)します。
scripts/listContacts.tslistContactsmicrosoft-outlook個人用連絡先を一覧表示または検索します。
scripts/getContact.tsgetContactmicrosoft-outlookID を指定して単一の個人用連絡先を取得します。
scripts/createContact.tscreateContactmicrosoft-outlook個人用連絡先を作成します。
scripts/updateContact.tsupdateContactmicrosoft-outlook個人用連絡先のフィールドを更新します(配列フィールドは置き換えられます)。
scripts/deleteContact.tsdeleteContactmicrosoft-outlookID を指定して個人用連絡先を削除します。

曖昧さの解消と拒否

書き込みの前に曖昧さを解消してください。 名前/件名で検索した連絡先、イベント、またはメッセージに対して操作する前に(たとえば、listContacts で見つけた連絡先を更新する場合や、listEvents で見つけたイベントに返信する場合)、名前/件名が**完全に一致するもの(大文字と小文字は区別しません)**の数を数えてください。

  • 一致が1件だけ — その対象に対して操作します。確認を求めすぎないでください。曖昧さのない一致が1件なら、それが答えです。
  • 同数で2件以上 — 操作を中止します。区別できるフィールド(連絡先の emailAddresses/companyName、イベントの start/organizer、メッセージの from/receivedDateTime)を添えて該当候補を一覧表示し、どれを指しているのかユーザーに尋ねてください。任意に選んだり、すべてに書き込んだりしないでください。

未対応の操作 — その旨を伝えて中止し、別のツールで偽装しないでください。 このカタログでは、意図的に次の操作に対応していません。

  • 新着メールやイベントを監視する(トリガー)。 「メールが届いたら通知する」ツールも、ポーリングツールもありません。このコネクターはリクエスト/レスポンス方式のみです。listMessages を繰り返し呼び出してサブスクリプションであるかのように装わないでください。
  • 3 MBを超える添付ファイルを送信する。 対応しているのは3 MB未満のインライン添付ファイルのみです。大容量ファイルのアップロードセッションには対応していません。大きなファイルを送信したと主張しないでください。
  • グループ/共有 カレンダー または配布リストにアクセスする。 グループカレンダーとディレクトリグループは公開されていません。(共有 メールボックス は mailbox 入力で利用できます。)
  • メールを完全に削除する(deleteMessage は「削除済みアイテム」への取り消し可能な移動です)、またはメールボックスのルール、自動返信、優先受信トレイの設定を管理する。

これらの操作を求められた場合は、未対応であることをユーザーに伝えて中止してください。代替として無関係なツールを使わないでください。

認証

すべてのシェイプは、シークレットではなく、1つの接続セレクター([<resolver>:]<value> 形式の文字列)を使って認証します。すべてのコネクターで zapier:<connection-id>(Zapier 管理の認証。Zapier の認証、再試行、ガバナンスのレイヤーを経由します)を使用できます。一部のコネクターでは、直接トークン用のリゾルバーも1つ以上使用できます(名称と数はコネクターによって異なります)。決めつけず、このコネクター固有のリゾルバーを確認してください。<resolver>: のプレフィックスは省略可能です。値だけの場合は、その値を受け付ける最初のリゾルバーに渡されます。UUID形式の値だけの場合は、常に zapier: が受け付けます。各スクリプトでは、必要な接続と、それぞれが受け付けるリゾルバーを宣言します。接続を渡す正確な構文(およびこのコネクターのリゾルバー一覧の確認方法)はシェイプによって異なります。上で読み込んだリファレンスを参照してください。

すでに設定済みのものを確認しますか?確認のために環境変数の値を出力しないでください。env または env | grep <name> は名前とともに値も出力するため、設定されている場合、有効な認証情報が会話ログに漏洩します。名前だけを確認するには(env | cut -d= -f1 | grep -i <name>)、または既知の名前を直接テストしてください([ -n "$VAR_NAME" ])。

接続がまだありませんか?いずれかの方法を選び、取得するにはリファレンスに記載された手順に従ってください。ユーザーが接続 ID やトークンをすでに覚えているかのように尋ねることは決してしないでください。

読み込む内容
認証情報を直接渡すreferences/use-without-zapier.md
Zapier 接続経由でルーティングするreferences/use-with-zapier.md

出力形式

すべてのスクリプトは { data, meta } エンベロープを返します。

  • data — スクリプトの結果です(outputSchema で宣言された形式です。読み込んだリファレンスで、スクリプト固有のスキーマを確認する方法をご覧ください)。
  • meta.outputDataValidation — data の検証結果です。
    • { skipped: false, droppedPaths: null } — 検証済みで、削除されたものはありません。
    • { skipped: false, droppedPaths: [...], instruction } — 検証済みですが、該当するパスが data から除去されています。スクリプトが API から返したフィールドのうち、outputSchema で宣言されていないものです。これらが必要な場合は、出力検証をスキップして再実行してください。
    • { skipped: true } — 検証はバイパスされ、data は未検証のスクリプト出力そのままです。

除外されたフィールドの確認/skipOutputDataValidation。 未検証の結果をそのまま受け取るには、出力検証を無効にします(正確な構文はスクリプトの形式によって異なります。読み込んだリファレンスをご覧ください)。入力検証はスキップされません。

結果の絞り込み/filterOutputData。 大きな結果から必要なフィールドだけを取り出すには、data を後処理する jq 式を渡します(正確な構文はスクリプトの形式によって異なります)。jq は { data, meta } エンベロープではなく data のみに対して実行されるため、data をルートとして記述してください(--help または各形式に対応する同等のコマンドを実行して、出力スキーマを確認してください)。変換後の値が data に置き換わり、meta は保持されます。また、結果は出力スキーマに対して再検証されません。

リファレンス

該当する領域で作業する前に、対応するリファレンスファイルを読み込んでください。

リファレンス対象読み込むタイミング
references/microsoft-outlook-api-gotchas.mdAPI エラーからの復旧(401/403/404/413/429)、移動後の ID の安定性、ページネーション、search と filter の違い、添付ファイル(上限 3 MB)、終日イベント/オンラインイベント、日時とタイムゾーン、連絡先のメールアドレス上限 3 件、カテゴリ。呼び出しでエラーが発生して復旧方法を確認する必要がある場合、移動後に ID を解決できなくなった場合、またはページネーション、search と filter の違い、添付ファイル、終日イベント/オンラインイベント、日時とタイムゾーン、連絡先のメールアドレス上限 3 件、カテゴリの動作が不明な場合に読み込みます。

コメント