Skip to main content
Glama
Zacccck

Claude-Read-Outlook-Attachments

by Zacccck

M365 Attachment Reader MCP Local

Claude-MCP-Read-Email-Attachments MCP server

Microsoft Graph APIを通じてOutlookメールとその添付ファイルを読み取る、Claude Desktop用のローカルstdio MCPサーバーです。

ステータス: Claude Desktopを使用した個人ユーザーのローカル利用において機能します。


このプロジェクトの目的

Claudeの組み込みMicrosoft 365コネクタは、メールのリスト表示、本文の読み取り、カレンダーの確認が可能です。しかし、メール添付ファイル内の実際のコンテンツを読み取ることはできません。

つまり、「最新のメールにあるPDFには何が書かれている?」と尋ねても、Claudeは添付ファイルのメタデータは確認できても、その中のテキスト、表、画像、ネストされたドキュメントの内容までは把握できません。

このプロジェクトはそのギャップを埋めるもので、パブリックエンドポイントやトンネルを必要とせず、すべてローカルマシン上でstdioを介して動作します。


Related MCP server: Outlook MCP Python

認知度 / 配布

  • MCPサーバーの主要なコミュニティ管理レジストリであるpunkpeye/awesome-mcp-serversに掲載されています。

  • MCPサーバーのスコアバッジ付きでGlamaにインデックスされています。

Claude-MCP-Read-Email-Attachments MCP server

機能

このサーバーは、Claude Desktopによって起動されるローカルMCPプロセスとして動作します。以下の機能を提供します:

  1. デバイスコードフローによるMicrosoft 365認証

  2. Microsoft Graphを通じたOutlookメールとその添付ファイルのリスト表示

  3. 添付ファイルコンテンツのローカルでのダウンロードと解析

  4. 構造化されたテキストおよび画像ブロックをClaude Desktopへ直接返送

対応フォーマット

フォーマット

抽出内容

PDF

全テキストコンテンツ

スキャン済みPDF

OCRテキスト、およびオプションでレンダリングされたページ画像

DOCX

テキストおよび埋め込み画像

DOC

テキストコンテンツ

PPTX / PPTM / PPSX / POTX

スライドテキスト、ノート、および埋め込み画像

PPT

ベストエフォート型のレガシーテキスト抽出

XLSX / XLS / CSV

すべてのシートをCSVに変換

JPG / JPEG / PNG / GIF / WEBP / BMP / TIFF

視覚分析用のMCP画像ブロックとして返送

ZIP / RAR / 7Z

アーカイブ内容をファイルごとに再帰的に解析

MSG

件名、送信者、本文、および埋め込み添付ファイル

TXT / MD / JSON / XML / HTML

生テキスト

Outlook itemAttachment

テキストコンテンツ

MCPツール

ツール

説明

health_check

サーバーが稼働中か確認

begin_auth

デバイスコードログインフローを開始

auth_status

認証状態を確認

list_recent_messages

最近のOutlookメールをリスト表示

list_email_attachments

特定のメールの添付ファイルをリスト表示

read_email_attachment

添付ファイルをダウンロード、解析し、内容を返送


実用的なユースケース

小売 / 販売業務

「直近5日間のダッシュボードメールを取得し、Excel添付ファイルを読み取って、過去1週間の全店舗の売上傾向を分析して。」

金融 / 会計

「件名に『請求書』が含まれるベンダーからの最新メールを見つけ、PDF添付ファイルを読み取って、合計金額、支払期限、明細項目を抽出して。」

法務 / 契約レビュー

legal@partner.comからの最新メールを開き、WordまたはPowerPointの添付ファイルを読み取って、主要な条項を要約して。」

人事 / 採用

recruiting@company.comからの添付ファイル付きメールを見つけ、各履歴書のPDFを読み取って、候補者の比較表を作成して。」


前提条件

  • Windows 10/11, macOS, または Linux

  • Node.js 20以降

  • Claude Desktop

  • Microsoft 365 / Outlook アカウント

  • Microsoft Entra アプリ登録(以下のステップ1を参照)


セットアップ

1. Microsoft Entra アプリ登録の作成

Microsoft Entra 管理センターアプリの登録新規登録 に移動します。

  • 名前: 任意(例: m365-mcp-local

  • サポートされているアカウントの種類: 任意の組織ディレクトリ内のアカウントと個人用Microsoftアカウント

次に:

  1. 概要ページから アプリケーション (クライアント) ID をコピーします

  2. 認証パブリッククライアントフローを許可する を有効にする → 保存

  3. APIのアクセス許可アクセス許可の追加Microsoft Graph委任されたアクセス許可User.ReadMail.Read を追加 → 管理者の同意を与える

  4. マニフェストrequestedAccessTokenVersion を検索(api内にある場合があります) → 2 に設定 → 保存

ステップ4の理由: アプリが個人用Microsoftアカウントをサポートする場合、Microsoft Entraはアクセス トークンがv2であることを要求します。ポータルでこれが自動的に設定されない場合があり、トークンバージョンが null または 1 のままだと common エンドポイントは AADSTS50059 エラーで失敗します。このステップをスキップすると、begin_auth 中に invalid_grant エラーが発生します。

v1 API統合を使用する場合: すべてのGraph/APIアクセス許可がv2トークンをサポートしている場合(すべてのMicrosoft Graph委任アクセス許可はサポートしています)のみ、これを 2 に設定してください。v1トークンのみを受け入れるカスタムAPIを統合している場合は、common の代わりに M365_TENANT_ID=consumers(個人アカウントのみ)または特定のテナントIDを使用し、requestedAccessTokenVersion はデフォルトのままにしてください。

2. クローンとインストール

git clone https://github.com/Zacccck/Claude-MCP-Read-Email-Attachments.git
cd Claude-MCP-Read-Email-Attachments
npm install

3. 環境変数の設定

サンプルファイルをコピーします:

cp .env.example .env

.env を編集し、クライアントIDを入力します:

M365_CLIENT_ID=your-application-client-id-here
M365_TENANT_ID=common
M365_AUTO_OPEN_BROWSER=true

変数リファレンス:

変数

必須

説明

M365_CLIENT_ID

✅ はい

Entraアプリのアプリケーション (クライアント) ID

M365_TENANT_ID

いいえ

デフォルトの common でほとんどのアカウントに対応

M365_AUTO_OPEN_BROWSER

いいえ

true にするとMicrosoftログインページを自動で開く

M365_MCP_DATA_DIR

いいえ

認証キャッシュ用のカスタムパス。省略時は自動検出

4. Node.jsパスの確認

次のステップで node.exe (Windows) または node (macOS/Linux) へのフルパスが必要になります。

# Windows
where.exe node

# macOS / Linux
which node

出力例: C:\Program Files\nodejs\node.exe

5. Claude Desktopの設定ファイルを開く

プラットフォームに応じた設定ファイルを探して開きます:

プラットフォーム

パス

Windows (標準)

%APPDATA%\Claude\claude_desktop_config.json

Windows (Store)

%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

ファイルが存在しない場合は作成してください。

6. Claude Desktopにサーバーを追加

claude_desktop_config.json に以下のエントリを追加します:

{
  "mcpServers": {
    "m365-attachment-reader-local": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": [
        "C:\\path\\to\\Claude-MCP-Read-Email-Attachments\\server.mjs"
      ],
      "env": {
        "M365_CLIENT_ID": "your-client-id",
        "M365_TENANT_ID": "common",
        "M365_AUTO_OPEN_BROWSER": "true"
      }
    }
  }
}

ヒント:

  • command にはステップ4のフル絶対パスを使用してください。

  • args[0] をマシン上の server.mjs への実際のパスに置き換えてください。

  • すでに他のMCPサーバーが設定にある場合は、このエントリを既存の mcpServers オブジェクトにマージしてください。ファイル全体を上書きしないでください。

7. Claude Desktopの再起動

Claude Desktopを完全に終了して再起動します。Claude DesktopはMCPサーバーを自動的に起動するため、手動で node server.mjs を実行する必要はありません。

8. Microsoft 365で認証

Claude Desktopで以下を入力します:

Please call begin_auth

ブラウザウィンドウが開きます(またはログインURLとデバイスコードが表示されます)。Microsoftのログインフローを完了し、以下を確認します:

Please call auth_status

Microsoftアカウントが認証済みとしてリストされるはずです。

9. 動作確認

簡単なヘルスチェックを実行します:

Please call health_check

次に、実際の要求を試します:

Show me my recent Outlook emails with attachments
Summarize the contents of the attachments from the latest email

推奨されるClaudeプロンプト

Please call begin_auth
Please call auth_status
Show me my recent Outlook emails with attachments
Summarize the contents of the attachments from the email
Find the latest invoice email and extract the total amount, due date, and line items from the PDF attachment

トラブルシューティング

問題

解決策

ClaudeがMCPツールを見つけられない

Claude Desktopを完全に再起動してください。設定内の commandargs のパスが正しく、絶対パスであることを確認してください。

ログに空の userCodeinvalid_grant エラー

ほぼ確実にEntraアプリのトークンバージョンまたはアカウントタイプの不一致です。次の2行を参照してください。

AADSTS50059: No tenant-identifying information found

アプリが common エンドポイントをサポートしていません。Entraアプリ → 認証サポートされているアカウントの種類任意の組織ディレクトリ内のアカウントと個人用Microsoftアカウント に設定して保存してください。

アカウントタイプ保存時に Property api.requestedAccessTokenVersion is invalid

Entraアプリ → マニフェストrequestedAccessTokenVersion2 に設定 → 保存。その後、アカウントタイプの変更を再試行してください。

デバイスコードが表示されない

begin_auth が正常に呼び出されたことを確認してください。コードを手動で入力しないでください。

Microsoftアカウントを切り替えたい

Claude Desktopを再起動し、プライベートブラウザウィンドウで再度 begin_auth を呼び出してください。

デバッグログの場所

<M365_MCP_DATA_DIR>\debug.log — デフォルトでは server.mjs の隣に自動作成されるサブディレクトリです。


手動での開発実行

Claude Desktop以外でデバッグする場合は、サーバーを手動で起動します:

cd Claude-MCP-Read-Email-Attachments
node .\server.mjs

注意: そのターミナルには入力しないでください。これは stdio MCPプロセスであり、標準入出力でMCPクライアントを待機しています。


Docker

コンテナ化されたテスト用に Dockerfile が含まれています:

docker build -t m365-attachment-reader-mcp-local .
docker run --rm -i `
  -e M365_CLIENT_ID=your-client-id `
  -e M365_TENANT_ID=common `
  -e M365_AUTO_OPEN_BROWSER=false `
  m365-attachment-reader-mcp-local

コンテナも stdio サーバーとして動作します。日常的なClaude Desktopでの使用には、ステップ6の直接 node を使用する方法がより簡単です。


プロジェクト構造

Claude-MCP-Read-Email-Attachments/
├── server.mjs
├── package.json
├── manifest.json
├── server.json
├── glama.json
├── Dockerfile
├── .env.example
├── .gitignore
├── LICENSE
└── README.md

ライセンス

MIT

Available Tools

6 tools
auth_statusMicrosoft 365 Auth StatusA

Check whether Microsoft 365 login for this local MCP process has completed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states 'check whether login has completed' without disclosing what 'completed' means, return format, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single 10-word sentence, front-loaded with verb and resource, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal for a simple tool; lacks explanation of what 'completed' means or what the output looks like. Without output schema, more detail would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; description adds context about 'local MCP process', which is useful. Baseline 4 for 0 params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Check whether' and the resource 'Microsoft 365 login for this local MCP process'. Distinguishes from siblings like begin_auth and health_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage after beginning auth or to check login state, but no explicit when-to-use or when-not-to-use compared to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

begin_authBegin Microsoft 365 AuthA

Start Microsoft 365 device-code login for the local Claude Desktop MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'start' without explaining the device-code flow, user interaction required, or what the tool returns. This lacks transparency about the process and side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly states purpose without unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (initiating an authentication flow), the description is insufficient. It omits expected return values, required user action (e.g., entering device code), and how to proceed after the call. An output schema or more descriptive text would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters (100% coverage by schema). For zero-parameter tools, the baseline is 4. The description adds no param-level details, but no details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Start Microsoft 365 device-code login for the local Claude Desktop MCP process.' It uses a specific verb ('Start') and resource ('Microsoft 365 device-code login'), and distinguishes itself from siblings like 'auth_status' which likely checks authentication state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool's function (initiate device-code login) but provides no explicit guidance on when to use it versus alternatives like 'auth_status'. It does not mention prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkHealth CheckA

Verify that the local Outlook attachment reader MCP server is running and report auth state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description clearly conveys two behaviors: verifying server running and reporting auth state. Adequate for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key info, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters or output schema; description covers essential purpose and behavior, though response format is unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage 100%, baseline score of 4 applies; description adds no parameter info but none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool verifies server running and reports auth state, with specific verb 'verify' and resource 'server and auth state'. Distinguishes from siblings like auth_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage as a health check before other operations, but no explicit when-not or alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_email_attachmentsList Email AttachmentsC

List attachments for a specific Outlook email.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYes
mailboxNome

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as pagination, limits, or whether it returns metadata vs. content. The agent has no insight into side effects or safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but lacks structure. It is too minimal, omitting critical information that could be front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, output schema, and parameter descriptions, the single sentence is insufficient. More context about usage and return value is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain what the messageId parameter represents or the significance of the mailbox parameter (default 'me'). Elaboration on these is needed for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('attachments for a specific Outlook email'). It distinguishes from sibling tools like list_recent_messages (lists emails) and read_email_attachment (reads a single attachment).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a messageId from list_recent_messages) or when to use read_email_attachment instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_messagesList Recent Outlook MessagesB

List recent Outlook emails from Microsoft 365. By default this searches the Inbox, prefers emails with attachments, and can filter by subject or sender name/address.

ParametersJSON Schema
NameRequiredDescriptionDefault
mailboxNome
folderNoinbox
topNo
onlyWithAttachmentsNo
subjectContainsNo
fromContainsNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, description carries full burden. It discloses default search location and preference for attachments, but omits auth needs, rate limits, pagination, and behavior of 'recent'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant words. Clear structure, though 'prefers' is slightly ambiguous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core functionality but lacks details on return format, error handling, and auth. Given 6 params and no output schema, more context is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, description adds meaning for most parameters (onlyWithAttachments, subjectContains, fromContains, folder, mailbox) but omits 'top' and uses vague 'prefers'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists recent Outlook emails, specifies scope (Inbox default), and mentions filtering by subject and sender. Distinct from sibling attachment tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use versus alternatives like list_email_attachments or read_email_attachment. Does not state prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_email_attachmentRead Email AttachmentA

Download an Outlook attachment directly from Microsoft Graph and parse it locally. Supports PDF, OCR-scanned PDF, Word, PowerPoint, Excel, images, archives, MSG, and plain text. Large image previews are automatically downscaled to fit MCP payload limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYes
attachmentIdYes
mailboxNome

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses supported file formats and automatic downscaling of large image previews, which are important behavioral traits. However, it omits details like auth requirements or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous words. The first sentence states the core purpose, the second adds key details (formats, size handling). Very efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the agent must infer the return format. The description does not explain what the tool returns (e.g., binary data, base64, parsed text) or how the IDs are used. Incomplete for a tool with no annotations and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has three parameters with no descriptions. The description does not explain what messageId, attachmentId, or mailbox represent or how to obtain them, leaving the agent without guidance despite the schema having 0% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (download and parse) and resource (Outlook attachment). It differentiates from sibling tools like list_email_attachments and list_recent_messages by specifying it downloads and parses a single attachment's content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading attachment content after listing attachments, but does not explicitly state when to use or when not to, nor does it mention alternatives or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedauth_status
    • First observedbegin_auth
    • First observedhealth_check
    • First observedlist_email_attachments
    • First observedlist_recent_messages
    • First observedread_email_attachment

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation4/5

Tools are mostly distinct: auth_status and begin_auth handle authentication, health_check monitors server, list_recent_messages finds emails, list_email_attachments shows attachments for a specific email, and read_email_attachment downloads/parses attachments. However, list_recent_messages and list_email_attachments could be confused if descriptions are glossed over, as both relate to emails and attachments.

Naming Consistency3/5

Naming patterns are mixed: some tools start with verbs (begin_auth, list_recent_messages, list_email_attachments, read_email_attachment) while others are nouns (auth_status, health_check). The verb+noun pattern is not consistently applied, reducing predictability.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose. It covers authentication (begin_auth, auth_status), server health (health_check), email discovery (list_recent_messages), attachment listing (list_email_attachments), and attachment reading (read_email_attachment). No extraneous tools.

Completeness4/5

The tool surface covers the core workflow: authenticate, find emails with attachments, list attachments, and read them. Minor gaps include lack of tools for getting email metadata beyond attachments or searching other folders, but these are acceptable for an attachment-focused server.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server for Microsoft Outlook integration using Microsoft Graph API, enabling email reading/sending, calendar management, and contact operations through Claude Desktop.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables Claude to manage Outlook emails, including reading, sending, organizing, drafting, and bulk operations via Microsoft Graph API.
    15
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that connects Claude Desktop to a personal Hotmail/Outlook.com mailbox via Microsoft Graph API, enabling email management, rule handling, and composing messages.
    25
    MIT