Skip to main content
Glama
seandkendall

productivity-mcp

by seandkendall

productivity-mcp

LLM 클라이언트(Claude Desktop, Kiro, MCP 지원 앱)가 이메일 및 캘린더에 읽기/쓰기 액세스할 수 있도록 하는 로컬 Model Context Protocol 서버입니다.

지원 항목:

제공업체

이메일

캘린더

인증

Gmail

✅ (API)

✅ (Google Calendar)

OAuth2 (데스크톱 앱)

Apple / iCloud

✅ (IMAP/SMTP)

✅ (CalDAV)

앱 전용 비밀번호

일반 IMAP (Fastmail, 자체 호스팅, 업무용 메일)

비밀번호 / 앱 비밀번호

stdio를 통해 전적으로 사용자의 컴퓨터에서 실행됩니다. 구성된 메일/캘린더 서버로 전송되는 데이터를 제외하고는 어떤 데이터도 컴퓨터 외부로 나가지 않습니다.


설치

Homebrew가 설치된 macOS가 필요합니다. 그 외 모든 항목(Python 3.13, uv, git)은 필요할 때 설치됩니다.

git clone https://github.com/seandkendall/productivity-mcp.git
cd productivity-mcp
./setup.sh

./setup.sh는 누락된 필수 구성 요소를 brew로 설치하고, 가상 환경(virtualenv)을 생성하며, 패키지를 설치하고, 대화형 구성 마법사를 실행합니다.

Related MCP server: claude-2-mail

구성

대화형 마법사를 실행하세요. 가상 환경을 생성하고 패키지를 설치한 다음, 자격 증명을 묻고 구성을 작성합니다:

./setup.sh

마법사 지원 항목:

  • iCloud / Apple Mail — 이메일 + 앱 전용 비밀번호를 입력하면 완료됩니다. 메일과 캘린더가 모두 설정됩니다.

  • Gmail / Google Calendar — OAuth 클라이언트 JSON을 지정하세요(획득 방법은 아래 참조).

  • 일반 IMAP — 사전 설정(Fastmail, Yahoo, Outlook)을 선택하거나 사용자 지정 호스트/포트를 입력하세요.

구성은 0600 권한으로 ~/.config/productivity-mcp/config.toml에 작성됩니다. 계정을 추가하거나 교체하려면 언제든지 마법사를 다시 실행하세요.

Gmail: 일회성 Google Cloud 설정

Google은 2025년 3월부터 IMAP/SMTP 앱 비밀번호를 비활성화했으므로 Gmail은 OAuth2가 필요합니다. 마법사를 실행하기 전에 다음을 수행하세요:

  1. Google Cloud Console을 열고 프로젝트를 생성하거나 선택합니다.

  2. API 및 서비스 → 라이브러리에서 Gmail APIGoogle Calendar API를 활성화합니다.

  3. API 및 서비스 → OAuth 동의 화면에서 외부로 설정합니다(본인을 테스트 사용자로 추가).

  4. 사용자 인증 정보 → 사용자 인증 정보 만들기 → OAuth 클라이언트 ID → 데스크톱 앱을 선택하고 JSON을 다운로드합니다.

그런 다음 productivity-mcp setup을 실행하고 Gmail을 선택한 후 다운로드한 JSON을 지정하세요. 첫 번째 도구 호출 시 브라우저가 열려 승인을 요청하며, 새로 고침 토큰은 로컬에 캐시됩니다.

iCloud: 일회성 Apple ID 설정

appleid.apple.com에 로그인한 후 로그인 및 보안 → 앱 전용 비밀번호로 이동하여 비밀번호를 생성하세요. 마법사가 요청할 때 이를 붙여넣으세요.

수동 구성(선택 사항)

TOML을 직접 편집하려면 example.config.toml~/.config/productivity-mcp/config.toml로 복사하세요.

실행

productivity-mcp

이 서버는 stdio를 통해 실행되므로 장기 실행 데몬으로 실행하는 대신 클라이언트에 연결하여 사용합니다.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json을 편집하세요:

{
  "mcpServers": {
    "productivity": {
      "command": "/absolute/path/to/.venv/bin/productivity-mcp"
    }
  }
}

Claude Desktop을 다시 시작하세요. 🔌 메뉴 아래에 도구가 나타납니다.

Kiro

Kiro 설정에서 명령 productivity-mcp(또는 가상 환경 바이너리의 절대 경로)를 사용하여 MCP 서버를 추가하세요. stdio를 통해 실행됩니다.

사용 가능한 도구 (39)

도구에서 account가 생략되면 해당 유형의 첫 번째 구성된 계정이 사용됩니다. 이름과 별칭을 확인하려면 list_email_accounts / list_calendar_accounts를 참조하세요.

이메일 — 읽기 및 검색

  • list_email_accountsaddresses(기본값 + 별칭)가 포함된 구성된 계정

  • list_folders(account?) — IMAP 폴더 / Gmail 라벨

  • list_emails(account?, folder="INBOX", limit=25, query?, unread_only=false, recipients?, since_days?, senders?)

  • read_email(message_id, account?, folder="INBOX", format="text"|"html"|"both") — HTML 본문은 기본적으로 일반 텍스트로 렌더링됩니다.

  • search_threads(account?, folder="INBOX", query?, senders?, recipients?, since_days?, limit=25) — 대화별 중복 제거

  • search_emails_by_sender(senders, account?, folder="INBOX", since_days?, limit=25)

  • count_emails(account?, folder="INBOX", query?, unread_only=false, senders?, recipients?, since_days?)

  • count_unread(account?, folder="INBOX", since_days?)

  • list_recent_senders(account?, folder="INBOX", since_days=30, top=20)

  • summarize_inbox(account?, folder="INBOX", since_days=7, top=10) — 합계, 상위 발신자, 상위 도메인, 상위 수신자 별칭, 일별 히스토그램

  • resolve_contact(query, account?, limit=10) — 이름/이메일 조회(Gmail People API 또는 최근 메시지 스캔)

이메일 — 쓰기 (속도 제한)

  • send_email(to, subject, body, account?, cc?, bcc?, html=false)

  • reply_email(message_id, body, reply_all=false, account?, folder="INBOX", html=false)

  • forward_email(message_id, to, body="", account?, folder="INBOX", html=false)

  • set_email_read(message_id, read=true, account?, folder="INBOX")

  • delete_email(message_id, account?, folder="INBOX")

  • move_email(message_id, target_folder, account?, folder="INBOX")

  • bulk_set_read(message_ids, read=true, account?, folder="INBOX")

  • bulk_delete_emails(message_ids, account?, folder="INBOX")

  • bulk_move_emails(message_ids, target_folder, account?, folder="INBOX")

이메일 — 초안 및 첨부 파일

  • save_draft(to, subject, body, account?, cc?, bcc?, html=false)

  • list_drafts(account?, limit=25)

  • send_draft(draft_id, account?)

  • list_attachments(message_id, account?, folder="INBOX")

  • download_attachment(message_id, attachment_id, save_to?, account?, folder="INBOX") — 디스크에 저장하거나 base64 반환

캘린더

  • list_calendar_accounts

  • list_calendars(account?)

  • list_events(account?, calendar?, start?, end?, limit=100) — 기본값은 향후 7일

  • get_event(event_id, account?, calendar?)

  • search_events(query, account?, calendar?, start?, end?, limit=50)

  • create_event(summary, start, end, account?, calendar?, description?, location?, attendees?)

  • update_event(event_id, account?, calendar?, summary?, start?, end?, description?, location?, attendees?)

  • delete_event(event_id, account?, calendar?)

  • respond_event(event_id, response, account?, calendar?) — accept | decline | tentative

  • free_busy(start, end, account?, attendees?) — 기본 Google freebusy.query; EWS/CalDAV는 이벤트 열거로 대체

  • suggest_meeting_times(duration_minutes, window_start, window_end, account?, attendees?, working_hours_start=9, working_hours_end=17, limit=5)

작업

  • list_tasks(account?, limit=50) — Google Tasks(Google Calendar 계정) 또는 EWS Tasks(WorkMail)

  • create_task(title, account?, due?, notes?)

진단

  • ping(account?) — 구성된 모든 계정을 프로브합니다. 계정별 {ok, latency_ms, error?}를 반환합니다.

관측 가능성

모든 도구 호출은 stderr로 구조화된 JSON을 내보냅니다:

{"ts":"...","level":"INFO","msg":"tool_call.start","tool":"list_emails","call_id":"b69185a6","arg_keys":["limit"]}
{"ts":"...","level":"INFO","msg":"tool_call.end","tool":"list_emails","call_id":"b69185a6","duration_ms":420}

인수 만 기록되며 값은 절대 유출되지 않습니다. 디버깅 시 stderr를 파일로 파이프하세요.

속도 제한

파괴적인 도구에는 우발적인 LLM 루프를 방지하기 위한 소프트 속도 제한이 있습니다. 기본값(서버 프로세스당, 슬라이딩 윈도우):

도구

제한

send_email, send_draft, reply_email, forward_email

20 / 분

delete_email, delete_event

20–50 / 분

create_event, update_event

30 / 분

bulk_set_read, bulk_delete_emails, bulk_move_emails

10 / 분

제한을 초과하면 도구는 재시도 지연 시간이 포함된 RuntimeError를 반환합니다. 서버를 다시 시작하여 재설정하세요.

개발

# Lint
ruff check src tests
ruff format src tests

# Tests
pytest

보안

  • 비밀 정보는 ~/.config/productivity-mcp/config.toml에 저장되며, 절대 커밋되거나 구성된 메일/캘린더 서버 이외의 곳으로 전송되지 않습니다.

  • Gmail OAuth 토큰은 지정한 token_file 경로에 캐시되므로 비밀번호처럼 취급하세요.

  • iCloud/IMAP의 경우 항상 앱 전용 비밀번호를 사용하고, 메인 계정 비밀번호는 절대 사용하지 마세요.

라이선스

MIT

Available Tools

39 tools
bulk_delete_emailsA

Delete many emails in one call. IMAP expunges; Gmail moves to Trash. Rate-limited.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Without annotations, the description carries the burden. It discloses provider-specific actions (IMAP expunges, Gmail trash) and mentions rate-limiting. It could be clearer on permanence (IMAP expunge irreversible) but covers key behavioral traits.

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 extremely concise with two sentences, front-loading the primary purpose, and includes necessary behavioral details without extra 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?

Given complexity (bulk delete with provider differences), the description covers the main behavior and rate limits. An output schema exists but isn't referenced; still, the description provides sufficient context for an agent to decide when to invoke.

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 coverage is 0%, meaning no parameter descriptions exist in the schema, but the description also fails to explain any parameters (message_ids, account, folder). It adds no meaning beyond the schema field titles and defaults.

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 tool deletes many emails in one call, distinguishing it from the sibling 'delete_email' (singular). The verb 'Delete' and resource 'emails' are explicit, and it specifies behavior per provider (IMAP expunges, Gmail moves to Trash).

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

Usage Guidelines4/5

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

The description indicates usage for batch deletion and notes provider-specific behaviors, giving context for when to use. However, it does not explicitly mention when not to use (e.g., for single email deletion) or provide alternative tool names.

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

bulk_move_emailsC

Move many emails to another folder/label in one call. Rate-limited.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
target_folderYes
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

The only behavioral trait disclosed is 'rate-limited'. With no annotations, the description should cover more (e.g., atomicity, error handling, permission requirements). It fails to do so.

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 only two sentences, which is concise. However, it sacrifices necessary detail for brevity, making it insufficiently informative.

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 four parameters, no annotations, and an output schema that is not referenced, the description lacks completeness. Important details like parameter meanings, source folder role, and response structure are omitted.

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?

The description does not explain any of the four parameters. Schema description coverage is 0%, so both schema and description are silent on what 'account' and 'folder' (source?) mean. This leaves the agent guessing about required inputs.

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

Purpose4/5

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

The description clearly states it moves many emails to another folder/label in one call, distinguishing it from the singular 'move_email' sibling. The verb 'move' and resource 'emails' are explicit, though 'folder/label' slightly broadens the scope.

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 is provided on when to use this tool versus alternatives like 'move_email' for single moves or 'bulk_delete_emails' for deletion. The mention of 'rate-limited' is a caution but not a usage guideline.

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

bulk_set_readA

Mark many emails read/unread in one call. Returns counts of successes and failures. Rate-limited.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
readNo
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that it returns counts of successes and failures and is rate-limited, which are useful behavioral traits. However, with no annotations provided, it omits details like authentication requirements, atomicity, or partial failure behavior, leaving gaps for an agent.

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 extremely concise with three short sentences that convey the core function, return type, and a constraint. No unnecessary words.

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 has four parameters with no schema descriptions and an output schema, the description is insufficient. It does not detail the format of message_ids, the meaning of account or folder parameters, or error conditions, leaving significant gaps for correct invocation.

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 description adds minimal parameter meaning: it implies that the 'read' boolean controls read/unread status, but it does not explain 'account' or 'folder' parameters. Since schema description coverage is 0%, the description should do more to compensate.

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 ('Mark many emails read/unread') and the resource ('many emails'). It distinguishes itself from siblings like 'set_email_read' (singular) and other bulk actions like 'bulk_delete_emails'.

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 bulk usage ('in one call') and mentions rate-limiting, but it does not explicitly contrast with alternatives such as 'set_email_read' for single emails or provide conditions for when to use this tool over others.

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

count_emailsA

Count messages matching filters without fetching full envelopes. General-purpose counter — e.g. 'how many emails from Amazon this month?'

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
queryNo
unread_onlyNo
sendersNo
recipientsNo
since_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It notes that messages are counted 'without fetching full envelopes,' indicating lightweight read behavior, but does not disclose other behavioral traits such as rate limits, authentication needs, or response format beyond the output schema.

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 two sentences, front-loaded with the key action and scope. Every sentence adds value with no redundancy.

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?

For a simple counter tool with an output schema, the description covers the primary purpose and a behavioral restraint (no envelope fetching). However, it omits usage guidance and parameter hints, but given the tool's simplicity, it is largely sufficient.

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?

Schema description coverage is 0% and the description adds no parameter-level information. With 7 parameters, the description should compensate but does not, leaving the AI agent to rely solely on parameter titles, which are minimally descriptive.

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 explicitly states 'Count messages matching filters without fetching full envelopes' and gives a concrete example ('how many emails from Amazon this month?'), making the tool's purpose very clear and distinguishing it from sibling tools like list_emails or count_unread.

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 provides a general counter example but does not explicitly state when to use versus alternatives like count_unread or search_emails_by_sender. Usage is implied rather than explicit.

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

count_unreadB

Count unread messages in a folder (optionally within the last N days).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
since_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. However, it only states the action without mentioning side effects, rate limits, authentication, or whether the operation is read-only, leaving significant gaps.

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, clear sentence with no unnecessary words, earning its place by being efficient and front-loaded.

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?

Given the tool's simplicity and existence of an output schema, the description covers the core purpose and optional filter but misses the account parameter and behavioral context, making it marginally complete.

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?

Schema description coverage is 0%, so the description should compensate. It partially explains 'folder' and 'since_days' but completely omits the 'account' parameter, failing to add meaning for all parameters.

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 tool counts unread messages in a folder with an optional time filter, effectively distinguishing it from sibling tools like count_emails and list_emails.

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 a usage context (counting unread messages) but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state 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.

create_eventC

Create a calendar event. Times are ISO 8601.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes
startYes
endYes
accountNo
calendarNo
descriptionNo
locationNo
attendeesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description is the sole source for behavioral traits. It only states that the tool creates an event and uses ISO 8601 times, but omits details like authorization needs, rate limits, side effects, or error handling. This is insufficient for an 8-parameter creation tool.

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 short (two sentences) and to the point, but it sacrifices informativeness for brevity. It earns its place without fluff, but could be more structured to include key behavioral notes.

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

Completeness1/5

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

Given 8 parameters, 0% schema coverage, and no annotations, the description is severely incomplete. It fails to explain optional parameters, output structure, or edge cases like timezone handling or recurrence. It does not meet the needs of an AI agent.

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?

Schema description coverage is 0%, so the description must compensate. It adds meaning to start/end by specifying ISO 8601 format but leaves six other parameters (account, calendar, description, location, attendees) unexplained. The description adds marginal value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool creates a calendar event and specifies that times are ISO 8601. It is distinguished from sibling tools like update_event and delete_event by the verb 'create'.

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 is provided on when to use this tool versus alternatives, no prerequisites are mentioned, and no exclusions are given. The description lacks context for effective decision-making.

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

create_taskC

Create a new task. due is ISO 8601 and optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
accountNo
dueNo
notesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only clarifies the 'due' parameter format. It does not disclose side effects, return behavior, or authentication needs.

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?

Very short, two sentences. First sentence states purpose, second adds parameter info. Front-loaded and no wasted words, though could be more informative.

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

Completeness1/5

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

No annotations, 0% schema coverage. Despite having an output schema, the description lacks necessary behavioral and usage context. AI agent would need more information to invoke correctly.

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?

Schema description coverage is 0%. The description adds meaning only for 'due' (ISO 8601, optional). Other parameters (title, account, notes) are not explained beyond their names.

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 'Create a new task,' which is a specific verb and resource. It distinguishes itself from siblings like list_tasks and create_event.

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 vs alternatives. The description only mentions the 'due' parameter format, but not context or exclusions.

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

delete_emailA

Delete an email. IMAP expunges; Gmail moves to Trash (recoverable).

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 usefully discloses that deletion behavior differs by email provider (permanent on IMAP, recoverable on Gmail). However, it omits other potential traits like permission requirements or error scenarios.

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 front-loaded sentence that immediately states the main purpose, then adds key nuance. No redundant words.

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?

Though an output schema exists, the description fails to explain optional parameters and does not cover prerequisites or error conditions. The behavioral difference is noted, but overall completeness is lacking for a tool with zero schema descriptions.

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%, so the description must compensate. It does not explain any of the three parameters (message_id, account, folder), leaving the agent to infer meaning from names alone. This is insufficient.

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 verb 'Delete' and the resource 'email', and provides specific behavioral details (IMAP expunges, Gmail moves to Trash). This distinguishes it from sibling tools like bulk_delete_emails or delete_event.

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 single-email deletion but does not explicitly state when to use this tool versus alternatives like move_email or bulk_delete_emails. No when-not guidance is provided.

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

delete_eventC

Delete a calendar event by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
accountNo
calendarNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must compensate. It does not disclose important traits such as irreversibility, recurrence handling, permission requirements, or side effects like cascade deletions.

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?

The description is a single, concise sentence with no unnecessary words. However, it could be slightly more informative without becoming verbose.

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 complexity of event deletion (recurring events, permissions, side effects) and the lack of annotation support, the description is too sparse. It does not mention return values or behavior for non-existent events, leaving important gaps.

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?

Schema description coverage is 0%, and the description only adds context for 'event_id' (by id). The optional 'account' and 'calendar' parameters are left unexplained, forcing reliance on parameter names alone.

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 verb 'delete' and the resource 'calendar event', with the identifier 'by id'. This distinguishes it from siblings like create_event, get_event, and update_event.

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?

The description provides no guidance on when to use this tool over alternatives (e.g., respond_event for cancellation) or when not to use it. No exclusions or prerequisites are mentioned.

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

download_attachmentA

Download an attachment. If save_to (directory) is provided, writes the file there and returns its path. Otherwise returns base64-encoded bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
attachment_idYes
save_toNo
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 clearly states the behavioral difference: file write vs base64 return. However, it does not disclose potential side effects (e.g., file overwrite, size limits) or error conditions.

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 concise sentences with front-loaded key information. Every sentence adds value, no fluff.

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?

The description covers the two return behaviors adequately given the output schema exists. However, it lacks context on prerequisites (e.g., attachment_id from list_attachments) and error handling, which would make it more complete for a tool with 5 parameters.

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?

Schema description coverage is 0%. The description only explains the effect of save_to; it does not provide additional meaning for other parameters (message_id, attachment_id, account, folder) beyond their names.

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 verb 'Download' and the resource 'an attachment', and explains the dual behavior (save_to vs base64). It distinguishes itself from siblings like list_attachments (which lists metadata).

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 explains two usage modes (with save_to or without) but does not specify prerequisites (e.g., need attachment_id from list_attachments) or when to use this tool over alternatives among the many sibling email tools.

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

forward_emailC

Forward an email to new recipients, optionally prepending a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
toYes
bodyNo
accountNo
folderNoINBOX
htmlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description should disclose key behaviors like whether the original email content is included, attachment handling, or response expectations. It only mentions forwarding and an optional note, leaving much unspecified.

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 and front-loaded, but its brevity sacrifices necessary detail. It is appropriately short for a simple tool but incomplete for practical use.

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 6 parameters and lack of annotations, the description is too sparse. It does not explain the return value (output schema exists) or how the forward operation handles attachments, threading, or original content.

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?

Schema description coverage is 0%, so the description must compensate. It only partially explains the 'body' parameter as an optional note, but ignores other parameters like account, folder, html. Insufficient guidance.

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

Purpose4/5

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

The description clearly states the action (forward an email), the target (new recipients), and an optional feature (prepending a note). It distinguishes from other email tools like reply_email or send_email.

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 is provided on when to use forward_email versus siblings like reply_email or send_email. The description lacks any contextual cues or alternatives.

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

free_busyA

Return busy time windows between start and end (ISO 8601).

If attendees is provided, queries busy times for those addresses; otherwise returns your own busy times. Native Google freebusy.query is used for Google Calendar; EWS / CalDAV fall back to enumerating events.

ParametersJSON Schema
NameRequiredDescriptionDefault
startYes
endYes
accountNo
attendeesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the use of native Google freebusy.query and fallback behavior for EWS/CalDAV, providing valuable backend context beyond what the input schema reveals.

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 three sentences long, front-loaded with the main purpose, and every sentence adds value without redundancy.

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?

Given the presence of an output schema (not shown), the description does not need to detail return values. It covers the primary parameters and behavior, though the 'account' parameter remains undocumented. Overall, it provides sufficient context for usage.

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?

The description adds meaning for 'start' and 'end' (ISO 8601) and 'attendees' (email addresses for busy time query), which compensates for the 0% schema description coverage. However, the 'account' parameter is not explained, leaving a gap.

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 verb ('Return'), the resource ('busy time windows'), and the scope ('between start and end'). It also distinguishes behavior based on the 'attendees' parameter, setting it apart from sibling tools like 'list_events'.

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

Usage Guidelines4/5

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

The description explains when to use the tool (returning busy times) and differentiates between querying for attendees vs. self. It also notes the backend behavior (Google freebusy.query vs. event enumeration), which implies when to prefer this over listing events. However, it lacks explicit 'when not to use' guidance.

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

get_eventB

Fetch a single calendar event with full detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
accountNo
calendarNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states 'full detail' hinting at rich output, but does not disclose any behavioral traits such as read-only nature, rate limits, or authentication needs. The description is adequate but minimal.

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 sentence that directly states the tool's purpose with no extraneous words. It is efficiently front-loaded and every word earns its place.

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 has 0% schema description coverage and no annotations, the description should compensate with parameter semantics and usage guidance. While purpose is clear, the lack of parameter detail and usage context makes it incomplete for an agent to reliably invoke without additional inference.

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?

The input schema has 0% description coverage, yet the description provides no explanation of parameters (event_id, account, calendar). It does not clarify that event_id is required or the purpose of optional account/calendar parameters, leaving the agent to infer from names alone.

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 uses the verb 'Fetch' with resource 'single calendar event' and qualifier 'full detail', clearly distinguishing from sibling tools like list_events (multiple events) and search_events (query-based). It unambiguously identifies what the tool does.

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 the tool is for retrieving a specific event with full detail, but does not explicitly state when to use it versus alternatives like list_events or search_events. No exclusion criteria or prerequisite context is given.

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

list_attachmentsC

List attachments on a message. Each entry has {attachment_id, filename, mime_type, size}.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only states output format but does not mention pagination, error conditions, or that it is a read operation. Minimal behavioral disclosure.

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 with output format; every word is informative. No redundancy or trivial content.

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?

Tool has 3 parameters (1 required), no annotations, and moderate complexity. Description lacks parameter explanations and behavioral details beyond output format, making it incomplete for reliable invocation.

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?

Input schema has 3 parameters (message_id, account, folder) with 0% schema description coverage. Description adds no explanation of parameter meaning or usage, failing to compensate for schema gaps.

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?

Description clearly states the verb (list), resource (attachments on a message), and output structure (fields: attachment_id, filename, mime_type, size). It distinguishes from siblings like list_emails and download_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 (e.g., download_attachment). No prerequisites or conditions for use are mentioned.

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

list_calendar_accountsA

List configured calendar accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description bears full burden of behavioral disclosure. It only states the core function without mentioning whether the operation is read-only, if any permissions are needed, or what counts as 'configured'. This is insufficient for agents needing to understand 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 exceptionally concise with three words, front-loaded with the action and resource, and contains no redundant information. Every word serves a purpose.

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?

Given the zero-parameter signature and presence of an output schema (not shown), the description is minimally adequate. However, it does not explain what 'configured' means or hint at behavior like whether the list is ordered or paginated. It meets the minimum for a trivial tool.

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 exist, so the baseline is 4. The description adds no parameter-level detail, which is acceptable since there is nothing to add beyond the schema.

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 uses the specific verb 'List' and identifies the resource as 'configured calendar accounts', clearly differentiating it from sibling tools like 'list_calendars' (which likely lists calendars within an account) and 'list_email_accounts'.

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?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about what constitutes a 'configured' account. For a tool with no parameters, explicit usage context is minimal but still absent.

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

list_calendarsC

List calendars on an account.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only says 'list calendars on an account.' It doesn't mention read-only nature, authentication needs, pagination, or whether it returns all calendars including hidden ones.

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?

Extremely concise (5 words), but at the cost of providing essential context. It is not overly verbose, but it lacks necessary details for an agent to use it effectively.

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 existence of an output schema, a parameter, and many sibling tools, the description is incomplete. It does not explain the parameter's effect, output structure, or when to use/avoid it.

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%. The description mentions 'on an account' but does not explain the 'account' parameter: whether it filters by a specific account or lists across all accounts. The parameter is optional but its effect is unclear.

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 'List calendars on an account,' which is a specific verb and resource. It distinguishes from sibling tools like 'list_calendar_accounts' (lists accounts) and 'get_event' (retrieves a specific event).

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 like 'list_calendar_accounts' or after creating events. No context about 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.

list_draftsC

List pending email drafts.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral context, but it only states the generic list operation. It does not mention authentication, whether drafts are ordered, or that the 'limit' parameter controls pagination.

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?

The single sentence is concise and front-loaded, but it lacks any additional structure (e.g., parameter hints or usage notes). It earns its place but could be more informative without bloat.

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 presence of an output schema and two optional parameters, the description is incomplete. It does not explain the expected return format, behavior of 'account' (null means primary?), or the effect of 'limit'.

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?

The schema has 0% description coverage, and the description adds no information about the 'account' or 'limit' parameters. The agent must infer their meaning from names alone, which is insufficient.

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 'List pending email drafts' clearly states the verb (list) and the resource (pending email drafts), distinguishing it from siblings like 'list_emails' which lists all emails.

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 is provided on when to use this tool versus alternatives (e.g., 'list_emails' for all emails, 'save_draft' for saving). There are no exclusionary notes or context for typical use.

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

list_email_accountsA

List configured email accounts.

Each entry includes:

  • name: the account LABEL used as the account argument in other tools

  • kind: provider class (ImapEmailProvider / GmailProvider)

  • addresses: every email address this mailbox receives mail at — the primary login address PLUS any configured aliases. Use these when answering 'who emailed me at X?' questions; the name is NOT the user's email address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The description is straightforward and discloses the output structure, but with no annotations, it lacks explicit statements about safety or side effects. For a read-only list tool, this is adequate but not rich; the description could explicitly state that the operation is non-destructive.

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 concise: a one-sentence summary followed by a clear bullet list. Every sentence adds value, and the structure is front-loaded. No unnecessary words or redundancy.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, output schema present), the description is complete. It explains the purpose and the meaning of each output field, which is essential for agents using account names and addresses in subsequent calls. No missing information for this use case.

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?

The input schema has zero parameters and 100% coverage, so the baseline is 3. The description adds no parameter information but does detail the output fields, which indirectly aids understanding. No parameter semantics 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 starts with a clear verb+resource statement 'List configured email accounts' and elaborates on the output fields (name, kind, addresses), differentiating it from other tools. The explanation that 'name' is the account label used in other tools adds clarity and distinguishes it from sibling listing tools.

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 that the tool provides account labels for use in other tools (e.g., send_email), but it does not explicitly state when to use this tool versus alternatives like list_calendar_accounts. No when-not-to-use or alternative guidance is given.

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

list_emailsA

List messages in a folder.

Args: account: Account label (use list_email_accounts to see options). If omitted, the first configured account is used. folder: Folder (IMAP) or label (Gmail). Default INBOX. limit: Max number of messages to return. Default 25. query: Free-text search. For Gmail, pass native Gmail operators (e.g. from:@example.com). For IMAP this becomes a TEXT search. unread_only: If true, only return unread messages. recipients: Filter to messages delivered to (or Cc'd / Bcc'd to) any of these addresses OR domains. Each entry may be a full address (sean@nasource.com) or a bare domain (nasource.com). Use this to answer questions like "who emails me at my alias domains?" — pass e.g. ["nasource.com", "seankendall.com"]. OR-combined. since_days: Only return messages newer than this many days. STRONGLY recommended when using recipients on a large mailbox — a full- mailbox recipient search can take minutes on accounts with tens of thousands of messages. For "last 30 days" questions pass 30.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
limitNo
queryNo
unread_onlyNo
recipientsNo
since_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure burden. It explains that query uses native Gmail operators or IMAP TEXT search, that recipients is OR-combined, and warns about performance for large mailboxes with since_days. This is good transparency, though it does not specify the return format (but output schema exists).

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 brief but comprehensive, with a clean Args list structure. Every sentence adds value—no fluff. It is front-loaded with the main purpose and parameter explanations are succinct.

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

Completeness5/5

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

Given 7 parameters, no annotations, and an output schema present, the description covers all necessary context: parameter meanings, defaults, usage recommendations, and cross-tool references (list_email_accounts). It is complete for making informed tool selection.

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

Parameters5/5

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

The input schema has no descriptions (0% coverage), making the description essential. It adds detailed meaning for all 7 parameters: account says to use list_email_accounts, recipients explains OR-combined addresses/domains, since_days warns about performance. This goes well beyond the schema titles.

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 starts with 'List messages in a folder.' which clearly states the core function with a specific verb and resource. It distinguishes itself from siblings like read_email (reads a single email) and search_emails_by_sender (searches by sender), making its purpose immediately clear.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance for parameters like account (use list_email_accounts), default INBOX, and a strong recommendation for since_days with recipient queries. However, it does not explicitly state when to use this tool versus alternatives (e.g., search_emails_by_sender), missing some exclusion logic.

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

list_eventsA

List events in a time range (defaults: now → +7 days). ISO 8601 strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
calendarNo
startNo
endNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 must fully disclose behaviors. It mentions time-range defaults but does not state that the tool is read-only, how results are sorted, pagination behavior, or any side effects. This is insufficient for safe agent use.

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, no wasted words, front-loaded with core purpose and critical details. Efficiently conveys the tool's action and key constraints.

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?

While the description is concise, it omits important context like result ordering, pagination, or how the account and calendar parameters affect behavior. An output schema exists but its content is unknown; the description still should provide more operational details.

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?

Schema description coverage is 0%, so the description must compensate. It adds meaning only for start and end parameters by specifying ISO 8601 format and default behavior. The other three parameters (account, calendar, limit) receive no additional context beyond their names.

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 tool lists events within a time range, with explicit defaults and format (ISO 8601). It distinguishes from siblings like create_event or search_events by focusing on time-range listing.

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

Usage Guidelines4/5

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

The description provides useful context: defaults (now to +7 days) and format requirements. However, it lacks explicit guidance on when to use this tool versus similar alternatives like search_events.

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

list_foldersC

List folders/labels for an email account.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action but gives no details on behaviors like read-only, authentication requirements, or scope of data.

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?

The description is concise at one sentence with no redundant words. It is appropriately sized for a simple tool, though could benefit from minor expansion.

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?

The description lacks specification of output details, handling of optional account, and any constraints. The output schema may provide some completeness, but the description alone is insufficient.

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?

The description adds context that the account parameter identifies the email account, which is not evident from the schema alone. However, no format or constraints are given, and schema description coverage is 0%.

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

Purpose4/5

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

The description clearly states the tool lists folders/labels for an email account, distinguishing it from siblings like list_emails or list_calendars. However, it is generic and does not specify the scope of folders/labels returned.

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 vs alternatives, nor any prerequisites or context. The description simply states the action without usage recommendations.

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

list_recent_sendersA

Top senders over the last N days, ordered by message count. Useful for "who has been emailing me lately?" style questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
since_daysNo
topNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It states that results are ordered by message count and limited to a recent window, which is helpful. However, it does not mention direction (descending), inclusion of current user, or pagination. The description is adequate but not comprehensive.

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 two sentences (140 characters) and clearly communicates the core purpose. It is front-loaded with the key action and result. No unnecessary words.

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 has 4 parameters, no annotations, and only a brief description, the description fails to provide enough context for proper use. Missing details include parameter semantics, behavioral traits (order, data range limits), and how results are structured. The existence of an output schema partially mitigates this, but the description itself is insufficient.

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 4 parameters with 0% description coverage. The description does not mention any parameters or their roles. The agent must infer from parameter names (e.g., 'since_days' for time window, 'top' for count). This leaves significant ambiguity, especially for 'account' and 'folder'.

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 tool lists top senders over a time window ordered by message count, and gives a concrete use case ('who has been emailing me lately?'). This distinguishes it from siblings like list_emails (individual emails) or search_emails_by_sender (specific sender).

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 mentions a use case ('who has been emailing me lately?') but does not specify when not to use it or compare to alternatives like search_emails_by_sender or count_emails. Guidance is minimal but not misleading.

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

list_tasksB

List tasks from the account's task list. Supported on Google Calendar (Google Tasks) and EWS / WorkMail (Tasks folder).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. Only states 'list tasks' without mentioning behavior like pagination (limit parameter), ordering, default account behavior, or read-only nature.

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 efficiently convey the core purpose and platform support. Front-loaded with the main action.

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 low complexity (2 params) and presence of output schema, the description still falls short by not explaining parameter behaviors or output structure. Leaves significant gaps in understanding.

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 coverage is 0%, but description adds no meaning to the 'account' or 'limit' parameters. Does not explain default values or accepted formats.

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 lists tasks from the account's task list, specifying supported platforms (Google Calendar, EWS/WorkMail). This distinguishes it from siblings like create_task and other email/event tools.

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?

Mentions supported platforms, giving context on when the tool is applicable. However, no explicit guidance on when to avoid it or prerequisites (e.g., account must have a tasks folder).

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

move_emailC

Move an email to another folder/label.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
target_folderYes
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'move', omitting details like whether the move is permanent, supports labels vs folders, or requires specific permissions. These gaps are critical.

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 a single sentence, which is concise but overly terse. It lacks necessary details, making it insufficient despite being front-loaded.

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

Completeness1/5

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

Given the lack of annotations, 0% schema coverage, and 4 parameters, the description provides no return value info, no behavioral context, and no parameter explanations. It is woefully incomplete.

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 any parameters. The distinction between 'folder' and 'target_folder', or the purpose of 'account', is left unclear.

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

Purpose4/5

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

The description clearly states the action 'Move' and the resource 'email' with destination 'folder/label'. It is specific enough for a single-email move, but does not distinguish from the sibling tool 'bulk_move_emails'.

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 is provided on when to use this tool over alternatives (e.g., bulk_move_emails for multiple emails). No context about prerequisites or typical use cases.

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

pingA

Probe every configured account (or just the named one). Returns per- account {name, kind, ok, latency_ms, error?} so the LLM can self-check.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the return structure (name, kind, ok, latency_ms, error?) and the ability to probe a single or all accounts. However, it does not explicitly state that the operation is safe/read-only or mention any potential 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 sentence that front-loads the action and resource, immediately conveying the tool's purpose. Every part adds value, with 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?

Given the tool has only one optional parameter and an output schema exists (though not detailed in description), the description covers the core functionality and return format well. It could mention the output schema more explicitly, but the provided return structure is sufficient for an LLM to understand the result.

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?

Schema coverage is 0%, but the description mentions 'or just the named one' hinting at the account parameter. It does not explain the type, default (null), or behavior when omitted. The parameter is optional, but the description lacks detail beyond a vague reference.

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 tool probes configured accounts (or a named one) and returns per-account diagnostic data (ok, latency_ms) for LLM self-check. The verb 'Probe' and resource 'every configured account' are specific and distinguish it from sibling tools that perform email/calendar operations.

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 connectivity checks via 'so the LLM can self-check', but does not explicitly state when to use vs. alternatives or provide exclusion criteria. The context of sibling tools suggests it's for diagnostics, but no direct guidance.

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

read_emailA

Fetch a single message with its body.

Args: message_id: Provider message id from list_emails. account: Account label (see list_email_accounts). folder: Folder / label. Default INBOX. format: 'text' (default) renders HTML bodies to plaintext — the LLM-friendly default. 'html' keeps raw HTML. 'both' returns a body_html field alongside plaintext body.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
accountNo
folderNoINBOX
formatNotext

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

The description explains the format parameter's behavior (HTML-to-plaintext conversion) and defaults, which is helpful. However, it does not explicitly state that the operation is read-only (no annotation provided), nor does it mention authentication or other behavioral traits beyond what is shared.

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 concise with a one-sentence summary followed by a structured parameter list. Every part is informative without redundancy, fitting the content in minimal space.

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?

Given the existence of an output schema (not needing return value details) and 4 input parameters, the description covers input semantics well. It lacks any mention of error handling or limits, but for a simple fetch tool this is sufficient.

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

Parameters5/5

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

The description adds significant meaning to all 4 parameters, covering message_id source, account source, folder default, and format options with clear explanations. Since schema_description_coverage is 0%, this extra detail is crucial for correct invocation.

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 opens with 'Fetch a single message with its body,' clearly stating the verb and resource. It distinguishes from siblings like list_emails (which lists multiple) and other tools that modify or delete emails.

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

Usage Guidelines4/5

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

The description guides the agent to obtain `message_id` from `list_emails` and `account` from `list_email_accounts`, providing cross-references to sibling tools. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.

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

reply_emailC

Reply to an email. Set reply_all=True to include the original Cc list.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
bodyYes
reply_allNo
accountNo
folderNoINBOX
htmlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should fully disclose behavioral traits. It only mentions the reply_all option but lacks other important details such as whether it creates a thread, modifies the original email, or requires authentication.

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?

The description is a single, front-loaded sentence that conveys the core action efficiently without waste.

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 6 parameters, no annotations, and many sibling tools, the description is too sparse. It does not explain return values (though output schema exists), parameter details beyond one, or usage scenarios.

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?

Schema description coverage is 0%, so description must compensate. It adds meaning only for reply_all ('include original Cc list'). Other parameters like message_id, body, account, folder, html are not elaborated, leaving the agent without guidance.

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

Purpose4/5

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

The description clearly states that the tool replies to an email, which is a specific verb+resource. It distinguishes from send and forward by mentioning reply_all behavior, but does not explicitly differentiate from siblings like forward_email.

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?

Only a brief instruction on when to set reply_all=True. No guidance on when to use this tool versus alternatives like forward_email or send_email, nor any exclusions or prerequisites.

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

resolve_contactA

Look up a contact by name or partial email. Returns up to limit {name, email} matches. Gmail queries the People API; other providers fall back to scanning recent messages. Use before send_email / create_event when the user refers to someone by name ("email Alice").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
accountNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Given no annotations, the description adequately covers behavioral traits: for Gmail it uses People API, for others it scans recent messages, and returns up to limit results. Could mention more about accuracy 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.

Conciseness4/5

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

Three concise sentences with purpose first, then backend details, then usage guidance. No unnecessary words, well-structured.

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?

For a simple lookup tool with no annotations and an existing output schema, the description covers purpose, parameters, usage, and backend behavior sufficiently. Lacks explicit return format details but mentions {name, email}.

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?

Schema description coverage is 0%, but the description adds meaning to 'query' (name or partial email), 'limit' (max results), and 'account' (specifies account). Provides moderate value beyond schema.

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 verb 'Look up' and resource 'contact' with specific details on matching by name or partial email. It distinguishes from sibling tools which are mostly email, event, or task oriented.

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

Usage Guidelines4/5

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

Explicitly suggests using before send_email or create_event when the user refers to someone by name. Provides context but lacks explicit when-not-to-use scenarios.

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

respond_eventB

Respond to a meeting invitation. response: accept | decline | tentative.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
responseYes
accountNo
calendarNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only provides minimal behavioral info (response values). It does not mention side effects, idempotency, permissions required, or what happens upon acceptance/decline.

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 short sentences, direct and to the point. No redundancy or wasted words.

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?

The description lacks completeness for a state-changing tool. It does not mention any output, error conditions, or behavioral nuances. Even though an output schema exists, the description fails to guide the agent on usage flow or constraints.

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?

Schema description coverage is 0%. The description only explains the 'response' parameter's allowed values, leaving 'event_id', 'account', and 'calendar' unexplained. This is insufficient for correct invocation.

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 verb 'respond' and the resource 'meeting invitation', and lists the valid response values. It distinguishes from sibling tools like create_event or delete_event.

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 responding to invitations but does not explicitly state when to use this tool versus alternatives like updating an event. No context on prerequisites or typical workflow.

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

save_draftA

Save an email as a draft instead of sending. Useful when the LLM should let the human review before committing to send. Returns {draft_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
subjectYes
bodyYes
accountNo
ccNo
bccNo
htmlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the return value ({draft_id}), but does not mention other behaviors like authentication needs, error handling, whether it overwrites existing drafts, or how accounts are resolved. Adequate but minimal.

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 two sentences with no redundancy. Both sentences are essential: the first states the action, the second provides usage context and return value.

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?

Despite having an output schema and clear purpose, the description fails to document any of the 7 parameters. For a tool with 0% schema coverage, this leaves users guessing about parameter semantics, especially optional ones like account, cc, bcc, and html.

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%, meaning the description adds no meaning to any of the 7 parameters. The description does not explain what each parameter is for, types, or constraints beyond what the schema provides.

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 ('Save an email as a draft instead of sending') and the resource ('email as a draft'). It implicitly distinguishes from sibling tools like send_email and send_draft by contrasting with sending.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use: 'when the LLM should let the human review before committing to send.' It does not explicitly list when not to use or alternatives, but the usage context is clear.

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

search_emails_by_senderC

List emails from specific senders or sender domains.

Each senders entry may be a full address (alice@example.com) or a bare domain (example.com). OR-combined.

ParametersJSON Schema
NameRequiredDescriptionDefault
sendersYes
accountNo
folderNoINBOX
since_daysNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only explains sender format and OR combination. It omits important behaviors like result ordering, pagination (limit parameter), and read-only nature, leaving significant gaps.

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?

The description is short (two sentences) and front-loaded, with no fluff. However, it could benefit from a structured format listing parameters and their semantics.

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?

Despite having an output schema, the description lacks context on result ordering, pagination limits, and the meaning of other parameters. It is incomplete for a search tool with 5 parameters.

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?

Schema description coverage is 0%, but the description only explains one parameter (senders) out of five. It fails to document account, folder, since_days, or limit, which the schema alone does not explain.

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 tool lists emails from specific senders or domains, using a specific verb 'List' and resource 'emails'. It distinguishes from siblings like list_emails and search_threads by highlighting sender-based filtering.

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 is provided on when to use this tool versus alternatives like list_emails or search_threads. The description lacks usage context and does not mention exclusions or prerequisites.

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

search_eventsA

Substring search across calendar events (summary, location, description). Default window: now → +60 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
accountNo
calendarNo
startNo
endNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility. It discloses that the search is substring-based and the default timeframe, but does not mention case sensitivity, pagination via the limit parameter, or potential performance considerations.

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 extremely concise with two sentences, front-loading the key purpose and default window. 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?

Given that there is an output schema, the need to describe return values is reduced. However, the description omits details about optional parameters like account and calendar filtering, which are part of the tool's capability. It covers the core but is not fully complete.

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?

Schema description coverage is 0%, so the description must compensate. It explains that the 'query' parameter searches across specified fields, but it does not describe the 'account', 'calendar', 'start', 'end', or 'limit' parameters, leaving gaps.

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 explicitly states 'substring search across calendar events' and specifies the fields searched (summary, location, description), which clearly distinguishes it from sibling tools like list_events (which returns all events) and get_event (single event by ID).

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 mentions the default time window (now to +60 days) but does not provide explicit guidance on when to use this tool versus alternatives like list_events, or exclusions for certain cases. Usage is implied but not clarified.

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

search_threadsA

List conversations (not individual messages) matching the filters.

Returns one entry per thread, with the latest message's metadata plus a message_count field. Gmail uses native threadId; IMAP uses the Message-Id / References chain to group. Use this when the user asks "who has been discussing X?" and you want to avoid seeing 15 near-duplicates of one reply chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
queryNo
sendersNo
recipientsNo
since_daysNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Explains return structure and how threading works for Gmail vs IMAP. Does not explicitly state that the operation is read-only, but the context implies it. Good but could mention safety.

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 concise and front-loaded sentences. First sentence states core function, second adds return details and usage advice. No extraneous information.

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?

Output schema exists but not described. The description provides return structure details. However, it omits order, pagination behavior, and handling of limit parameter. Given the complexity, slightly incomplete.

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?

Schema description coverage is 0%, meaning no parameter descriptions. The description only mentions 'matching the filters' generically, without explaining any of the 7 parameters (account, folder, query, senders, etc.). This is insufficient for correct invocation.

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 conversations (threads), not individual messages. Distinguishes from sibling tools like list_emails or search_emails_by_sender. Describes return format: one entry per thread with latest message metadata and message_count.

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

Usage Guidelines5/5

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

Explicitly advises using this tool when the user asks 'who has been discussing X?' and wants to avoid seeing many duplicates of a reply chain. This guides the agent on appropriate context compared to message-level tools.

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

send_draftC

Send an existing draft by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
draft_idYes
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only says 'send', implying mutation, but does not disclose what happens to the draft after sending, authentication requirements, or error conditions.

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?

The description is a single short sentence, concise and to the point, but could benefit from additional structured details without becoming verbose.

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 presence of siblings and a non-trivial parameter set, the description is insufficient. It does not cover return values, parameter behavior, or usage context that would help an agent invoke the tool correctly.

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?

With 0% schema description coverage, the description adds no detail beyond the parameter names. The 'account' parameter is ambiguous, and the description does not clarify its purpose or accepted values.

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 'send', the resource 'existing draft', and the required identifier 'by id'. It effectively distinguishes this tool from siblings like 'save_draft' and 'send_email'.

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 is provided on when to use this tool versus alternatives such as 'send_email' or 'save_draft'. There is no mention of prerequisites (e.g., draft must exist) or when not to use.

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

send_emailC

Send an email. Returns the provider message id.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
subjectYes
bodyYes
accountNo
ccNo
bccNo
htmlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Returns the provider message id.' It does not disclose behavioral traits such as authentication requirements, rate limits, or error behavior.

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 fluff. Every word contributes to the core purpose and output. Appropriately sized.

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?

Despite having 7 parameters and an output schema (not shown), the description is too sparse. It fails to explain parameter relationships, constraints, or the expected behavior of the tool.

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?

The description adds no information about any of the 7 parameters. With 0% schema description coverage, the agent must rely solely on parameter names and types, which are insufficient for correct usage.

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

Purpose4/5

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

The description clearly states the action ('Send an email') and the resource, and mentions the return value. However, it does not differentiate from sibling tools like forward_email or reply_email, which could cause confusion.

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 (e.g., reply_email, forward_email, send_draft). The agent must infer from the name alone.

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

set_email_readC

Mark an email as read (read=True) or unread (read=False).

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
readNo
accountNo
folderNoINBOX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like idempotency, required permissions, or side effects. It only states the basic operation without additional context.

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?

The description is a single sentence with no wasted words. It could be more structured to include parameter details, but it is concise for the information provided.

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 presence of 4 parameters and no annotations, the description is incomplete. It does not explain how to use the optional parameters or the output schema's role.

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 4 parameters with 0% description coverage. The description only explains the 'read' parameter, leaving 'message_id', 'account', and 'folder' unexplained.

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

Purpose4/5

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

The description clearly states the action ('mark an email as read or unread') and specifies the role of the 'read' parameter. However, it does not explicitly differentiate from sibling tools like 'bulk_set_read', which likely marks multiple emails.

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 is provided on when to use this tool versus alternatives (e.g., bulk_set_read for multiple emails). The description does not mention prerequisites or typical use cases.

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

suggest_meeting_timesA

Find time slots where everyone listed in attendees is free.

Combines each attendee's busy windows (via free_busy) with simple working- hours filtering. If attendees omitted, uses your own busy times.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_minutesYes
window_startYes
window_endYes
accountNo
attendeesNo
working_hours_startNo
working_hours_endNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It mentions combining busy windows and working-hours filtering, but fails to detail output format, time zone handling, error cases, or the effect of the limit parameter.

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 three concise sentences with no waste. It front-loads the primary purpose and adds relevant nuance about attendee omission.

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?

With 8 parameters and no annotations, the description is incomplete. It covers high-level purpose but omits parameter details and output specifics. An output schema exists but its content is unknown, so description should still hint at return value.

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?

Schema description coverage is 0%, so the description must explain parameters. It clarifies attendees, window, and working hours generally, but does not explicitly describe duration_minutes, window_start, window_end, working_hours_start/end, account, or limit. Only attendees and the basic concept are addressed.

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 uses a specific verb 'Find time slots' and resource 'meeting times', clearly stating the function: find free slots for all listed attendees. It distinguishes from sibling tools like free_busy by aggregating busy information.

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

Usage Guidelines4/5

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

The description implies usage for scheduling by stating it combines busy windows and working hours filtering. It provides context for omitting attendees, but does not explicitly state when to use this tool versus alternatives or give exclusion criteria.

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

summarize_inboxA

One-call inbox overview. Returns counts, top senders, top recipient addresses (useful when multiple aliases hit the same mailbox), and a per-day histogram for the last since_days days.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
folderNoINBOX
since_daysNo
topNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided. The description implies a read-only operation by stating it returns data, but does not explicitly declare no side effects. It mentions the time range parameter (since_days) but omits permission or rate-limit details.

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 very concise: two sentences, 31 words. It front-loads the core purpose ('One-call inbox overview') and efficiently lists outputs without redundancy.

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?

The description covers the return format well (counts, top senders, histogram) but fails to explain 3 out of 4 parameters. Given the existence of an output schema, return values are partially handled, but parameter ambiguity reduces completeness.

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?

Input schema has 0% description coverage. The description explains only the 'since_days' parameter ('for the last since_days days'). Other parameters (account, folder, top) are left to inference from their names and defaults, which is insufficient for full clarity.

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 tool provides an 'inbox overview' with specific outputs (counts, top senders, histogram). It is distinguished from sibling tools like count_emails and list_emails by its aggregative nature.

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

Usage Guidelines4/5

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

The description gives clear context: 'One-call inbox overview' implies quick summary instead of detailed listing. It also highlights usefulness for multiple aliases. However, it does not explicitly state when not to use or mention alternatives.

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

update_eventB

Update an existing event. Pass only the fields you want to change. Times (start/end) are ISO 8601.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
accountNo
calendarNo
summaryNo
startNo
endNo
descriptionNo
locationNo
attendeesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Hints at partial update behavior with 'Pass only the fields you want to change' and mentions ISO 8601 for times. No annotations exist, so description carries some behavioral clues but lacks depth (e.g., idempotency, success/failure responses).

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 with no wasted words. Front-loads the core action and key constraints.

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 9 parameters and many sibling tools, the description is too sparse. No mention of output structure (though output schema exists), no differentiation from 'respond_event' or 'get_event'. Agent may not know if updates are idempotent or if partial updates preserve other fields.

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?

Schema coverage is 0% and description only adds meaning for 'start' and 'end' (ISO 8601). Other 7 parameters like 'summary', 'description', 'attendees' are not explained, leaving the agent to infer from names alone.

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?

Description clearly states 'Update an existing event' with specific verb and resource. Differentiates from siblings like 'create_event' and 'delete_event'.

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 explicit guidance on when to use this tool versus alternatives such as 'respond_event' or 'get_event'. Assumes understanding without context.

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. 39 tool updatesv0.1.0
    • First observedbulk_delete_emails
    • First observedbulk_move_emails
    • First observedbulk_set_read
    • First observedcount_emails
    • First observedcount_unread
    • First observedcreate_event
    • First observedcreate_task
    • First observeddelete_email
    • First observeddelete_event
    • First observeddownload_attachment
    • First observedforward_email
    • First observedfree_busy
    • First observedget_event
    • First observedlist_attachments
    • First observedlist_calendar_accounts
    • First observedlist_calendars
    • First observedlist_drafts
    • First observedlist_email_accounts
    • First observedlist_emails
    • First observedlist_events
    • First observedlist_folders
    • First observedlist_recent_senders
    • First observedlist_tasks
    • First observedmove_email
    • First observedping
    • First observedread_email
    • First observedreply_email
    • First observedresolve_contact
    • First observedrespond_event
    • First observedsave_draft
    • First observedsearch_emails_by_sender
    • First observedsearch_events
    • First observedsearch_threads
    • First observedsend_draft
    • First observedsend_email
    • First observedset_email_read
    • First observedsuggest_meeting_times
    • First observedsummarize_inbox
    • First observedupdate_event

TDQS

B3.4/5.0

Scored across 39 tools

Disambiguation5/5

Each tool has a clearly distinct purpose. Single vs bulk operations are explicitly separated, email, calendar, task, and contact tools are grouped by domain, and search utilities have specific scopes (by sender, threads, events). No two tools appear to overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with lowercase underscores (e.g., 'create_event', 'list_emails', 'delete_event'). No mixing of camelCase or other conventions, making it easy for an agent to predict tool names.

Tool Count4/5

With 39 tools covering email, calendar, tasks, and contacts, the count is on the higher side but still reasonable for a comprehensive productivity suite. Each tool serves a distinct purpose, and the breadth is justified by the domain's complexity.

Completeness4/5

The tool surface is largely complete, covering CRUD for email (including bulk operations and drafts) and calendar (including free/busy and suggestion), plus tasks and contacts. Minor gaps like missing update/delete for tasks are not critical for most use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provider-agnostic email MCP server that connects any IMAP mailbox to AI assistants, enabling email management through natural language.
    8
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local MCP server for reading/sending email via Gmail and managing Google Calendar events, enabling an AI agent to handle email and calendar operations through natural language.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A private, single-user MCP server that unifies Gmail, Microsoft 365/Outlook, and IMAP mailboxes for LLMs to search and read emails live, without storing or caching mailbox contents.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local MCP server that unifies email and calendar management across multiple providers, enabling AI agents to search, read, and write with explicit approval and local-first security.
    1
    Apache 2.0