outlook-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OUTLOOK_READONLY | No | Set to 'true' to enable read-only mode, which disables all write tools. | |
| OUTLOOK_CLIENT_ID | Yes | The application (client) ID from the Azure app registration, required for authentication with Microsoft Graph. | |
| OUTLOOK_TOKEN_CACHE | No | Path to the token cache file. In Docker, set this to a path in a mounted volume to persist login across restarts. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_configA | このサーバの設定・認証・接続状態を診断する。 他のツールがエラーを返したとき、または利用者が「つながってる?」と 尋ねたときに呼ぶ。 |
| list_foldersA | メールボックスのフォルダ一覧を、件数・未読数つきで返す。 メールをどこかへ移動する前や、利用者がフォルダ名をあいまいに言ったときに呼ぶ。 Args: only_nonempty: True なら空のフォルダを省く。 |
| search_messagesA | メールを新しい順に検索する。各行の先頭 #N が整理系ツールに渡す短縮ID。 Args: query: 件名・本文へのフリーテキスト検索。省略すると条件だけで絞り込む。 folder: 検索対象フォルダ名(例「受信トレイ」)。省略すると全体。 from_address: 差出人アドレスの部分一致(例 "amazon.co.jp")。 unread_only: True なら未読だけ。 since: この日以降 YYYY-MM-DD。 until: この日まで(その日を含む) YYYY-MM-DD。 limit: 返す最大件数。既定20、上限50。 include_preview: True なら本文冒頭も添える(件数が多いと長くなる)。 |
| get_messageA | 1通のメールの本文と宛先を読む。 Args: message_id: search_messages が返した短縮ID(例 "#3")、または生のID。 |
| move_messagesA | メールを指定フォルダへ移動する。 移動先が存在しないとエラーになる。必要なら先に create_folder を呼ぶこと。 まとめて動かす前に、対象と件数を利用者に確認すること。 移動すると渡した短縮IDは失効する。続けて操作するなら search_messages を引き直すこと。 Args: message_ids: 短縮IDをカンマ区切りで(例 "#1,#2,#5")。一度に25件まで。 folder: 移動先フォルダ名(例「領収書」「受信トレイ/請求」)。 |
| mark_messages_readA | メールを既読(または未読)にする。 Args: message_ids: 短縮IDをカンマ区切りで(例 "#1,#2")。一度に25件まで。 read: True で既読、False で未読に戻す。 |
| archive_messagesA | メールをアーカイブ(Archiveフォルダへ移動)する。 移動すると渡した短縮IDは失効する。続けて操作するなら search_messages を引き直すこと。 Args: message_ids: 短縮IDをカンマ区切りで。一度に25件まで。 |
| move_to_trashA | メールをゴミ箱(削除済みアイテム)へ移動する。完全削除ではなく、元に戻せる。 このサーバに完全削除の手段は無い。実行前に必ず利用者の確認を取ること。 移動すると渡した短縮IDは失効する。続けて操作するなら search_messages を引き直すこと。 Args: message_ids: 短縮IDをカンマ区切りで。一度に25件まで。 |
| create_draftA | メールの下書きを作る。送信はしない。 このサーバに送信手段は無い。下書きは Outlook の「下書き」フォルダに 置かれるだけで、利用者が自分で開いて送信するまでどこへも出ない。 「送っておいて」と頼まれても、できるのはここまでだと伝えること。 Args: to: 宛先アドレス。カンマ区切りで複数可。 subject: 件名。 body: 本文(平文)。 cc: Cc のアドレス。カンマ区切りで複数可。 |
| draft_replyA | 受け取ったメールへの返信の下書きを作る。送信はしない。 元のメールの引用と宛先は Graph 側で組み立てられる。本文はその先頭に入る。 Args: message_id: 返信先の短縮ID(例 "#3")、または生のID。 body: 返信の本文(平文)。 reply_all: True なら全員に返信の下書きにする。 |
| create_folderA | 空のフォルダを1つ作る。メールは移動しない。 メールの移動先が必要なときに先に呼ぶ。move_messages / move_by_search は 存在しないフォルダへは移動できないため、その前段として使う。 既にあるフォルダを動かしたい・名前を変えたいだけなら、こちらではなく move_folder / rename_folder を使うこと。 挙動(いずれも実機で確認済み):
必要な権限は Mail.ReadWrite で、このサーバが既に持っている。 OUTLOOK_READONLY=true のときは実行できない。 Args: name: 作成するフォルダ名。階層の指定はできないので "/" を含めないこと (親を指定するには parent を使う)。同じ親の下で一意である必要がある。 parent: 親フォルダ名かフルパス(例「01_Crypto」「01_Crypto/取引所」)。 省略すると最上位に作る。既存のフォルダを指す必要がある。 |
| rename_folderA | フォルダの名前を変える。中身のメールは動かない。 システムフォルダ(受信トレイ・迷惑メールなど)は変更できない。 Args: folder: 対象のフォルダ名かフルパス(例「Money/エイク」)。 new_name: 新しい名前。階層は変わらないので "/" は含めないこと。 |
| move_folderA | フォルダを別の親の下へ移す。中身のメールとサブフォルダも一緒に動く。 大量のメールを1件ずつ動かす代わりに、棚ごと移す用。 システムフォルダは移動できない。 Args: folder: 動かすフォルダ名かフルパス(例「Music」)。 parent: 移動先の親フォルダ名。省略すると最上位へ移す。 |
| delete_folderA | フォルダを削除する。 中身が残っているフォルダは既定で拒否する(force=True で強行)。 メールを1通ずつゴミ箱へ移すのと違い、これは元に戻せる保証がない。 残しておきたいなら削除ではなく move_folder で退避すること。 実行前に必ず利用者の確認を取ること。 Args: folder: 削除するフォルダ名かフルパス。 force: 中身が残っていても削除する。 |
| move_by_searchA | 条件に一致するメールをまとめて移動する。move_messages の大量版。 既定は dry_run=True で、何件動くかを数えるだけで実際には動かさない。 件数を利用者に見せて同意を得てから dry_run=False で呼び直すこと。 暴走を防ぐため、絞り込み条件を1つも指定しない呼び出しは拒否する。 Args: dest: 移動先フォルダ名(例「99_Archive」「ゴミ箱」)。 folder: 対象を絞る元フォルダ。省略するとメールボックス全体を走査する。 from_address: 差出人の部分一致(アドレスと表示名の両方を見る)。 subject_contains: 件名の部分一致。 since: この日以降 YYYY-MM-DD。 until: この日まで(その日を含む) YYYY-MM-DD。 unread_only: True なら未読だけ。 max_messages: 1回で動かす上限。既定500、上限2000。 dry_run: True(既定)なら件数を数えるだけ。False で実際に動かす。 |
| mark_read_by_searchA | 条件に一致するメールをまとめて既読(または未読)にする。 mark_messages_read の大量版。メールは移動しないので、居場所も 短縮IDも変わらない。既定は dry_run=True で件数を数えるだけ。 注意: 既読/未読は「まだ見ていない」という情報そのものなので、 まとめて既読にすると何が未処理だったかは復元できない。 実行前に必ず対象と件数を利用者に示して確認を取ること。 Args: folder: 対象フォルダ。省略するとメールボックス全体。 from_address: 差出人の部分一致(アドレスと表示名の両方を見る)。 subject_contains: 件名の部分一致。 since: この日以降 YYYY-MM-DD。 until: この日まで(その日を含む) YYYY-MM-DD。 read: True(既定)で既読、False で未読に戻す。 max_messages: 1回で処理する上限。既定5000、上限25000。 dry_run: True(既定)なら件数を数えるだけ。False で実際に変更する。 |
| list_rulesA | 受信トレイに設定されている自動振分ルールを一覧する。 ルールを作る前に必ず呼んで、既存と衝突しないか・番号(sequence)が 何番まで使われているかを確認すること。 |
| create_ruleA | 受信トレイに自動振分ルールを作る。以後に届くメールへ適用される。 Outlook 側に保存されるので、このMCPが起動していなくても24時間効く。 既に届いているメールには遡って適用されない(それは move_by_search の仕事)。 条件は複数指定すると AND になる。カンマ区切りで複数の値を渡せる。 Args: name: ルール名。あとで自分が読んで分かる名前にすること。 move_to: 移動先フォルダ名。 from_contains: 差出人に含まれる文字列。カンマ区切りで複数可。 subject_contains: 件名に含まれる文字列。カンマ区切りで複数可。 body_contains: 本文に含まれる文字列。カンマ区切りで複数可。 mark_read: True なら既読にする。 to_trash: True ならゴミ箱へ入れる(完全削除ではない)。 stop_processing: True(既定)なら、このルールが一致したら後続を評価しない。 sequence: 適用順。省略すると既存の最後に足す。 enabled: False で無効な状態で作る。 |
| delete_ruleA | 自動振分ルールを削除する。メールは動かない。 Args: rule: ルール名(list_rules で表示される名前)、または生のルールID。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ma2no4413/outlook-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server