Skip to main content
Glama

aios-cofounder-mcp

Production-ready MCP server for a Business Co-Founder / Executive Assistant.

Features

  • FastMCP server over STDIO by default

  • Lightweight SQLite storage for assistant state

  • Google OAuth + Gmail, Calendar, Contacts tools

  • Web search + fetch helpers

  • Approval gating for sensitive actions

Related MCP server: Revenue Engine MCP

Setup

  1. Create a virtual environment and install dependencies:

uv sync
  1. Configure environment variables:

cp .env.example .env
  1. Run the MCP server (STDIO transport):

uv run aios-cofounder-mcp

Notes

  • Google OAuth requires valid GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.

  • Set OAUTH_REDIRECT_BASE_URL to the public base URL for this server (e.g., an ngrok/cloudflared URL).

  • Set GOOGLE_OAUTH_SCOPES to a space- or comma-separated list of scopes.

  • The OAuth callback is served at /oauth/google/callback by this MCP server.

  • For local dev, start a tunnel to port 8765 (default callback bind port) and set OAUTH_REDIRECT_BASE_URL=https://<public-domain>.

  • By default the server uses SQLite at ./aios_cofounder_mcp.db.

  • Tools that modify external systems require approval before execution.

Known limitations

  • Free/busy uses the primary calendar only.

  • OAuth callback listener is always started when OAUTH_REDIRECT_BASE_URL is set.

TODO

  • Consolidate OAuth error mapping for client display.

  • Add pagination for repository list endpoints.

Ops notes

  • SQLite file and parent directory are created on first run.

  • Keep OAUTH_STATE_TTL_SECONDS short in shared environments.

Available Tools

22 tools
approval_requestC

Create a pending approval record.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
payloadYes

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create' implying a write operation but lacks details on permissions, side effects, response format, or error handling. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste, making it appropriately sized and front-loaded. It conveys the core purpose without unnecessary elaboration, earning full marks for conciseness.

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 has an output schema, the description needn't explain return values, which helps. However, with 2 parameters at 0% schema coverage and no annotations, the description is incomplete—it doesn't address parameter meanings or behavioral context, making it minimally adequate but with clear 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%, so the description must compensate for undocumented parameters. It mentions no parameters at all, failing to explain 'action' and 'payload' beyond the schema. This leaves key input semantics unclear, scoring low due to poor compensation.

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 verb 'Create' and the resource 'a pending approval record', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'approval_resolve', which likely handles existing approvals differently, so it misses full sibling distinction.

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. It doesn't mention prerequisites, context for creating approvals, or compare to other tools like 'approval_resolve' for resolving approvals, leaving usage unclear.

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

approval_resolveC

Approve or deny an action.

ParametersJSON Schema
NameRequiredDescriptionDefault
approval_idYes
decisionYes

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 provided, the description carries the full burden of behavioral disclosure. It states the tool performs an approval/denial action, implying a mutation, but doesn't disclose any behavioral traits like required permissions, whether the action is reversible, rate limits, or what happens after resolution. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is extremely concise with just four words, front-loaded with the core action. There's no wasted text, making it easy to parse quickly. However, this conciseness comes at the cost of completeness.

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

Completeness2/5

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

Given the tool's complexity (a mutation with 2 parameters), lack of annotations, and low schema coverage (0%), the description is incomplete. While an output schema exists (which might cover return values), the description doesn't provide enough context about usage, parameters, or behavior to be fully helpful for 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?

The input schema has 2 parameters with 0% description coverage, so the schema provides no semantic information. The description doesn't add any meaning beyond the parameter names—it doesn't explain what 'approval_id' refers to, what valid 'decision' values are, or how they affect the outcome. This fails to compensate for the low schema coverage.

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

Purpose3/5

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

The description 'Approve or deny an action' clearly states the tool's function with a specific verb ('approve or deny') and resource ('an action'), but it doesn't distinguish this from sibling tools like 'approval_request' or provide any context about what type of action is being approved/denied. It's vague about the domain or scope of the action.

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. It doesn't mention prerequisites (e.g., needing an existing approval request), exclusions, or how it relates to sibling tools like 'approval_request'. There's no context for when this tool is appropriate.

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

auth_google_startA

Start Google OAuth flow and return an authorization URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action and output but lacks details on side effects (e.g., initiating user interaction, state changes), error handling, or security implications (e.g., redirect URIs, scopes). This is a significant gap for an OAuth tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action and outcome with zero wasted words. It is appropriately sized for a no-parameter tool and earns its place by clearly stating the tool's function.

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 complexity (OAuth flow initiation) and the presence of an output schema (which should cover the authorization URL details), the description is minimally adequate. However, it lacks context on integration steps or behavioral nuances, leaving gaps despite the output schema.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose without redundant parameter info, earning a baseline score above 3 for this context.

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 specific action ('Start Google OAuth flow') and the resource/outcome ('return an authorization URL'), using precise verbs and distinguishing this from other authentication or authorization tools in the sibling list like 'auth_status'.

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

Usage 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., other auth methods or tools), prerequisites (e.g., OAuth setup), or exclusions. The description only states what it does, not when or why to invoke it.

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

auth_statusB

Return OAuth status for an approval_id or current connection status.

ParametersJSON Schema
NameRequiredDescriptionDefault
approval_idNo

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 are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns status information, which implies a read-only operation, but doesn't clarify whether it requires authentication, has rate limits, what the output format is, or if it's idempotent. For a tool with no annotations, this is a significant gap in behavioral context.

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, efficient sentence that front-loads the core purpose ('Return OAuth status') and succinctly covers the two usage contexts. There is no wasted verbiage, and every word contributes to understanding the tool's function, making it appropriately sized and 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?

Given the tool's low complexity (1 optional parameter) and the presence of an output schema (which should document return values), the description is reasonably complete. It covers the purpose and basic usage, but could benefit from more behavioral details (e.g., authentication requirements) to fully compensate for the lack of annotations and low schema coverage.

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 1 parameter with 0% description coverage, and the description adds some meaning by explaining that 'approval_id' is optional (implied by 'or current connection status') and used to check OAuth status for a specific approval. However, it doesn't detail the parameter's format, constraints, or default behavior beyond what's inferred, leaving room for improvement given the low schema coverage.

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's purpose: 'Return OAuth status' with two specific contexts (for an approval_id or current connection status). It uses a specific verb ('Return') and identifies the resource ('OAuth status'), though it doesn't explicitly differentiate from sibling tools like 'approval_request' or 'approval_resolve' which are related to OAuth approvals but serve different functions.

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 contexts by mentioning 'for an approval_id or current connection status,' suggesting when to use it (to check status of an approval or current auth state). However, it doesn't provide explicit guidance on when to choose this over alternatives like 'approval_resolve' or 'auth_google_start,' nor does it specify prerequisites or exclusions, leaving some ambiguity.

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

calendar_cancel_eventC

Cancel an event (requires approval).

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
approval_idNo

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?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'requires approval' which hints at an authentication/permission requirement, but doesn't explain what 'cancel' actually does (e.g., deletes event, sends cancellation notices, affects attendees), whether changes are reversible, rate limits, or what the output contains. For a mutation tool with zero annotation coverage, this is insufficient.

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 at just 5 words, with no wasted language. The key information ('Cancel an event') is front-loaded, and the parenthetical '(requires approval)' efficiently adds crucial context. Every word earns its place.

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 this is a mutation tool with 2 parameters, 0% schema coverage, no annotations, but with an output schema (which handles return values), the description is minimally adequate. The 'requires approval' hint addresses a key complexity, but doesn't fully explain the approval workflow or what cancellation entails. The output schema reduces the burden, but more behavioral context would be helpful.

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 schema provides no parameter documentation. The description mentions 'requires approval' which loosely relates to the 'approval_id' parameter, but doesn't explain what 'event_id' is, what format it should be in, or how the approval process works. It adds minimal value beyond the bare 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 action ('Cancel') and resource ('an event'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'calendar_update_event' or 'calendar_list_events', but the verb+resource combination is specific enough for basic understanding.

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 mentions 'requires approval' which provides some context about prerequisites, but it doesn't explain when to use this tool versus alternatives like 'calendar_update_event' to modify instead of cancel, or how it relates to the 'approval_request' and 'approval_resolve' sibling tools. No explicit guidance on when-not-to-use or alternatives is provided.

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

calendar_create_eventB

Create a calendar event (requires approval).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
startYes
endYes
attendeesYes
approval_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'requires approval' which is valuable context about permissions/workflow, but doesn't describe what happens after creation (e.g., event status, confirmation), whether changes are reversible, rate limits, or authentication requirements. For a mutation tool with zero annotation coverage, this leaves significant behavioral 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 extremely concise at just 5 words, front-loading the core purpose immediately. Every word earns its place: 'Create' (action), 'calendar event' (resource), 'requires approval' (key constraint). There's zero waste or 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?

Given this is a mutation tool with 5 parameters (4 required), 0% schema coverage, no annotations, but with an output schema present, the description is incomplete. The 'requires approval' note adds some context, but doesn't explain parameter meanings, behavioral outcomes, or error conditions. The presence of an output schema means return values are documented elsewhere, but the description should do more for a creation tool with multiple 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?

With 0% schema description coverage for all 5 parameters, the description provides no information about what each parameter means. It doesn't explain what 'title', 'start', 'end', 'attendees', or 'approval_id' represent, their expected formats, or relationships between them. The description fails to compensate for the complete lack of schema documentation.

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 verb ('Create') and resource ('calendar event'), making the purpose immediately understandable. It distinguishes from siblings like calendar_update_event and calendar_cancel_event by specifying creation. However, it doesn't explicitly differentiate from other creation tools like contacts_create_or_update, which keeps it from a perfect score.

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 implied usage guidance with '(requires approval)', suggesting this tool should be used when creating events that need approval. However, it doesn't explicitly state when to use this versus calendar_update_event or when approval is required versus optional, and doesn't mention alternatives like calendar_list_events for checking existing events first.

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

calendar_find_free_slotsC

Find available time slots in a range.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_minutesYes
window_startYes
window_endYes

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?

No annotations are provided, so the description carries full burden. It mentions 'available time slots' but doesn't disclose behavioral traits like whether it considers user availability, meeting room resources, timezone handling, authentication needs, or rate limits. For a calendar tool with zero annotation coverage, this leaves 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, efficient sentence with zero waste. It's appropriately sized and front-loaded, though this brevity contributes to gaps in other dimensions.

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 moderate complexity (3 parameters, calendar operations), no annotations, but with an output schema (which handles return values), the description is minimally adequate. However, it lacks context about whose calendar, availability criteria, and integration with sibling tools, leaving room for improvement.

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 mentions 'in a range' which hints at window_start and window_end, but doesn't explain duration_minutes or provide any format details (e.g., ISO timestamps). The description adds minimal value beyond the bare parameter names.

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

Purpose3/5

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

The description 'Find available time slots in a range' clearly states the verb ('Find') and resource ('available time slots'), but it's vague about scope and lacks differentiation from sibling tools like calendar_list_events. It doesn't specify whose calendar is being checked or what constitutes 'available'.

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. With siblings like calendar_list_events and calendar_create_event, there's no indication of when this free-slot finding tool is appropriate versus listing existing events or creating new ones.

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

calendar_list_eventsC

List calendar events in a time range.

ParametersJSON Schema
NameRequiredDescriptionDefault
startYes
endYes

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't cover critical aspects like whether this is a read-only operation, requires authentication, has rate limits, or returns paginated results. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for a simple tool, making it easy for an agent to parse quickly.

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 low complexity (2 parameters, no nested objects) and the presence of an output schema, the description is somewhat adequate. However, with no annotations and 0% schema coverage, it lacks details on behavior and parameters, making it incomplete for optimal agent use.

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 by explaining parameters. It mentions 'time range' but doesn't specify the meaning of 'start' and 'end' parameters, their expected format (e.g., ISO 8601), or any constraints. This adds minimal value beyond the bare 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 verb ('List') and resource ('calendar events') with scope ('in a time range'), making the purpose specific and understandable. However, it doesn't distinguish from sibling tools like 'calendar_find_free_slots' or 'calendar_cancel_event', which prevents a perfect score.

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 'calendar_find_free_slots' or 'calendar_create_event'. The description implies usage for listing events in a time range but lacks explicit context, exclusions, or prerequisites, leaving the agent with minimal direction.

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

calendar_update_eventB

Update event details (requires approval).

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
changesYes
approval_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'requires approval', which adds some context about permissions or workflow, but fails to disclose other critical traits such as whether the update is destructive, what happens on failure, rate limits, or response behavior. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 just two words and a parenthetical note, making it front-loaded and efficient. Every part ('Update event details' and 'requires approval') earns its place by conveying core purpose and a key constraint 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 the tool's complexity (mutation with 3 parameters, nested objects, and an output schema), the description is incomplete. It lacks details on parameters, behavioral traits, and usage context, despite the presence of an output schema. For a tool that modifies events and involves approval, more information is needed to guide effective use.

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 schema provides no parameter details. The description does not add any meaning beyond the tool name; it doesn't explain what 'event_id', 'changes', or 'approval_id' represent, their formats, or how they interact. With 3 parameters and low coverage, the description fails to compensate, leaving parameters largely undocumented.

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 'Update event details' clearly states the verb (update) and resource (event details), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'calendar_cancel_event' or 'calendar_create_event' beyond the basic action, missing specific differentiation like scope or constraints unique to this update operation.

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 includes '(requires approval)', which implies a prerequisite context for usage, suggesting this tool should be used when approval is needed. However, it doesn't explicitly state when to use this vs. alternatives like 'calendar_create_event' or 'calendar_cancel_event', nor does it provide exclusions or detailed guidance on the approval process beyond the hint.

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

compose_email_replyC

Generate an email reply draft (never sends).

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes
toneNo

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool generates drafts and never sends, which implies read-only behavior, but lacks details on permissions, rate limits, output format, or any side effects. This is inadequate for a tool with potential complexity in email handling.

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 and front-loaded in a single sentence, with no wasted words. It efficiently conveys the core purpose and a key behavioral trait (never sends), making it easy to parse quickly.

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 has an output schema, the description doesn't need to explain return values, but with no annotations, 0% schema coverage, and two parameters, it's incomplete. It covers the basic action but misses parameter semantics and broader behavioral context, making it minimally viable but with clear 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%, so the description must compensate but fails to do so. It doesn't explain what 'context' or 'tone' parameters mean, their expected formats, or how they influence the reply generation. This leaves two parameters undocumented beyond their schema types.

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 verb 'generate' and the resource 'email reply draft', specifying it's for drafting rather than sending. It distinguishes from siblings like gmail_create_draft by focusing on reply generation, though it doesn't explicitly contrast with summarize_email or meeting_brief for content creation.

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. It doesn't mention when to choose this over gmail_create_draft for replies, summarize_email for summarization, or other content tools, leaving the agent without contextual usage cues.

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

contacts_create_or_updateC

Create or update a contact (requires approval).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
emailYes
companyNo
approval_idNo

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?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'requires approval', which adds context about a prerequisite, but lacks details on what 'approval' entails, how the tool behaves on creation versus update, error conditions, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its 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?

The description is extremely concise with a single sentence that front-loads the core action ('Create or update a contact') and includes a critical note ('requires approval'). There is zero waste, and every word earns its place, making it efficient and well-structured.

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 complexity (mutation with approval requirement), no annotations, 0% schema coverage, but with an output schema present, the description is incomplete. It hints at the approval process but doesn't cover parameter meanings, behavioral details, or usage context. The output schema may help with return values, but the description lacks sufficient guidance for effective tool selection and 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?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It mentions 'requires approval', which loosely relates to approval_id, but doesn't clarify the purpose of name, email, company, or how approval_id is used. The description adds minimal value beyond the schema, failing to address the four parameters meaningfully.

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 verb ('create or update') and resource ('a contact'), making the purpose specific and understandable. It distinguishes from sibling tools like contacts_get and contacts_search by focusing on modification rather than retrieval. However, it doesn't explicitly differentiate from other mutation tools like calendar_create_event or gmail_create_draft beyond the resource type.

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 minimal guidance with 'requires approval', hinting at a prerequisite but not explaining when to use this tool versus alternatives. It doesn't specify scenarios for creation versus update, mention when to use approval_id, or compare with other contact-related tools. No explicit when-not-to-use or alternative recommendations are provided.

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

contacts_getC

Return full contact details.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'returns' data, implying a read-only operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what 'full contact details' entails. This leaves significant gaps for a tool with no annotation coverage.

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, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple retrieval tool, earning its place by stating the core action and resource.

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 1 parameter with no schema descriptions, no annotations, but an output schema exists, the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavioral traits, and parameter specifics, making it incomplete for optimal agent understanding without relying heavily on the output schema.

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 1 parameter (contact_id) with 0% description coverage, so the description must compensate. It implies the parameter is used to identify a contact for retrieval, adding meaning beyond the bare schema. However, it doesn't specify format, constraints, or examples, leaving the parameter only partially clarified.

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

Purpose3/5

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

The description 'Return full contact details' clearly states the action (return) and resource (contact details), but it's vague about scope and doesn't distinguish from sibling tools like contacts_search or contacts_create_or_update. It specifies 'full' details, which adds some specificity.

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 contacts_search or contacts_create_or_update. The description implies it retrieves a specific contact by ID, but this is not explicitly stated as a usage rule or exclusion.

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

gmail_apply_labelsC

Apply labels to one or more messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsYes
message_idNo
message_idsNo
approval_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/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 but offers minimal behavioral insight. It implies a write operation ('apply labels') but doesn't disclose critical traits: whether this modifies messages permanently, requires specific Gmail permissions, has rate limits, returns confirmation, or handles errors. The description adds little value beyond the obvious action.

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 with zero wasted words. It efficiently conveys the core action without unnecessary elaboration, making it easy to parse quickly. This is appropriately sized for a straightforward tool.

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

Completeness2/5

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

Given the tool's complexity (a mutation with 4 parameters, 0% schema coverage, no annotations, but with an output schema), the description is inadequate. It doesn't explain the mutation's impact, parameter interactions, or what the output schema might contain. The presence of an output schema reduces the need to describe return values, but the description still lacks essential context for safe and effective use.

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 but fails to do so. It mentions 'labels' and 'messages' vaguely, without explaining parameter roles (e.g., 'labels' as an array of label IDs/names, 'message_id' vs 'message_ids' for single vs batch operations, or 'approval_id' for async processes). The description adds almost no meaning beyond the parameter names visible in 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 verb ('apply') and resource ('labels to one or more messages'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling operations like 'gmail_remove_labels' or 'gmail_modify_labels' (though none exist in the provided sibling list), so it doesn't reach the highest specificity level.

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. It doesn't mention prerequisites (e.g., needing existing labels or message access), exclusions, or related tools like 'gmail_get_message' for verification. The agent must infer usage from the tool name and parameters alone.

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

gmail_create_draftC

Create an email draft only.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
subjectYes
bodyYes
thread_idNo

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 carries the full burden of behavioral disclosure. 'Create an email draft only' implies a write operation but doesn't specify permissions needed, whether drafts are saved automatically, rate limits, or what happens on failure. For a mutation tool with zero annotation coverage, this is a significant gap in behavioral context.

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 a single sentence, 'Create an email draft only.', which is front-loaded and wastes no words. Every part of the sentence contributes to the core purpose, making it efficient in structure.

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 an output schema exists, the description doesn't need to explain return values, which helps completeness. However, with 4 parameters at 0% schema coverage and no annotations, the description is too minimal for a mutation tool—it should provide more context on usage and parameters to be fully adequate.

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 schema provides no parameter details. The description adds no information about parameters like 'to', 'subject', 'body', or 'thread_id', failing to compensate for the coverage gap. This leaves all 4 parameters undocumented in meaning or 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 'Create an email draft only' clearly states the verb ('Create') and resource ('email draft'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'compose_email_reply' or 'gmail_get_message', which could also involve draft creation or email operations, so it's not fully specific to sibling context.

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. It doesn't mention prerequisites (e.g., authentication status), exclusions, or compare to siblings like 'compose_email_reply' for replying versus creating new drafts. This leaves the agent with minimal context for tool selection.

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

gmail_get_messageC

Return full email content (plain text preferred).

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes

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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions returning full email content with a plain text preference, but doesn't address critical behaviors such as authentication requirements, error handling, rate limits, or what happens if the message_id is invalid. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 very concise with a single sentence, front-loaded with the core action. There's no wasted text, but it might be overly brief, risking under-specification. It efficiently states the tool's function without unnecessary details.

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 low complexity (one parameter) and the presence of an output schema, the description is somewhat complete but lacks depth. It doesn't explain the return format beyond 'full email content,' though the output schema may cover that. Without annotations, it should provide more behavioral context, such as authentication needs or error cases, to be fully adequate.

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 no information about the message_id parameter beyond what the input schema provides. Schema description coverage is 0%, but with only one parameter, the baseline is higher. The description doesn't explain what message_id is, how to obtain it, or its format, failing to compensate for the lack of schema descriptions. However, the single parameter is straightforward, keeping it at a minimal viable level.

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

Purpose3/5

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

The description states the tool's purpose as returning full email content with a preference for plain text, which is clear but vague about what 'full email content' includes. It doesn't distinguish this tool from sibling tools like gmail_get_thread or summarize_email, which also retrieve email-related content. The description provides a basic verb+resource but lacks specificity about 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 explicit guidance is provided on when to use this tool versus alternatives. The description doesn't mention when to choose gmail_get_message over gmail_get_thread, gmail_search, or summarize_email, nor does it indicate prerequisites like needing a specific message_id. Usage is implied by the tool name but not explained.

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

gmail_get_threadB

Return all messages in a thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('return all messages') but lacks critical details: whether this is a read-only operation, if it requires authentication, rate limits, error handling, or what the output contains (though an output schema exists). This leaves significant gaps for a tool that likely accesses user data.

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, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse, which is ideal for conciseness.

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 moderate complexity (fetching thread data in Gmail), no annotations, and an output schema (which handles return values), the description is minimally adequate. It states what the tool does but lacks context on authentication, error cases, or sibling differentiation, leaving room for improvement despite the output schema reducing some burden.

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 0% description coverage, with one required parameter 'thread_id' undocumented. The description doesn't add any parameter-specific information (e.g., what a thread ID is, where to find it, or format examples). However, with only one parameter, the baseline is 4, but the lack of any semantic context reduces it to 3, as the description fails to compensate for the schema gap.

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 verb ('return') and resource ('all messages in a thread'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'gmail_get_message' (which fetches a single message) or 'gmail_search' (which searches across threads), missing explicit sibling distinction.

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. It doesn't mention prerequisites (e.g., needing a thread ID), exclusions, or comparisons to siblings like 'gmail_get_message' for single messages or 'gmail_search' for finding threads, leaving usage context unclear.

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

meeting_briefD

Prepare a meeting brief.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.7/5.0
Behavior1/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 of behavioral disclosure. 'Prepare a meeting brief' implies a read or generation operation, but it doesn't specify whether this is a read-only action, if it requires authentication, what the output format is, or any side effects. The description is too vague to inform the agent about behavioral traits like safety, permissions, or response structure, failing to compensate for the lack of annotations.

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 three words, making it highly concise and front-loaded. There's no wasted text or unnecessary elaboration. However, this brevity comes at the cost of under-specification, as it lacks the detail needed for effective tool use, but structurally, it's efficient and to the point.

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

Completeness2/5

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

Given the tool's complexity (a single parameter but unclear functionality), no annotations, low schema coverage (0%), and the presence of an output schema, the description is incomplete. It doesn't clarify the tool's purpose, usage, or parameters, and while the output schema might help with return values, the description fails to provide essential context for selection and invocation. For a tool with undefined behavior and parameters, this is inadequate.

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 one parameter 'event_id' with 0% description coverage, meaning the schema provides no semantic context. The description 'Prepare a meeting brief' doesn't mention parameters at all, offering no compensation for the schema gap. It fails to explain what 'event_id' represents (e.g., a calendar event identifier) or how it relates to preparing a brief, leaving the parameter undocumented and ambiguous for the agent.

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

Purpose2/5

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

The description 'Prepare a meeting brief' is a tautology that essentially restates the tool name 'meeting_brief'. It doesn't specify what 'prepare' entails (e.g., generating a summary, extracting key points, creating an agenda) or what resource it acts upon beyond the generic 'meeting brief'. While it mentions a meeting brief, it lacks the specific verb+resource combination needed for clear differentiation from sibling tools like 'summarize_email' or 'calendar_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 Guidelines1/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. It doesn't mention prerequisites (e.g., needing an event ID from a calendar tool), context for usage (e.g., before or after meetings), or exclusions. Given sibling tools like 'calendar_list_events' and 'summarize_email', there's no indication of how this tool differs or when it's preferred, leaving the agent to guess based on the name alone.

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

summarize_emailC

Summarize an email and store assistant memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'store assistant memory,' hinting at persistence, but lacks details on permissions, side effects, rate limits, or what 'store' entails (e.g., duration, access). This is inadequate for a tool that modifies state, as implied by 'store.'

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 with two clear actions in a single sentence, making it front-loaded and efficient. However, it could be slightly improved by integrating parameter hints or usage context without losing brevity.

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 complexity (involves summarization and storage), lack of annotations, and low schema coverage, the description is incomplete. While an output schema exists (mitigating need to explain returns), it fails to address key aspects like parameter semantics and behavioral traits, making it only minimally viable.

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 0% description coverage, so the description must compensate. It doesn't explain the 'message_id' parameter at all—no context on format, source, or requirements. This leaves a critical gap, as the agent won't know how to obtain or use this parameter effectively.

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's purpose with a specific verb ('Summarize') and resource ('an email'), making it understandable. However, it doesn't distinguish this tool from potential sibling tools like 'meeting_brief' or 'gmail_get_message', which might also involve summarization or email-related operations, preventing a perfect score.

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. It doesn't mention prerequisites (e.g., needing an email ID), exclusions, or how it differs from siblings like 'gmail_get_message' or 'meeting_brief', leaving the agent with insufficient context for optimal selection.

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

web_fetchB

Fetch page content and extract readable text.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions fetching and extracting text but omits critical details such as rate limits, authentication needs, error handling, or what 'readable text' entails (e.g., cleaned HTML, plain text). This leaves significant gaps for a tool that interacts with external web resources.

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 and front-loaded, consisting of a single, clear sentence with no wasted words. It efficiently communicates the core functionality without unnecessary elaboration.

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 moderate complexity (web fetching with text extraction), no annotations, and an output schema present (which should cover return values), the description is minimally adequate. It states what the tool does but lacks depth on behavior, usage context, or parameter details, making it incomplete for safe and effective use.

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 no parameter semantics beyond the input schema, which has 0% description coverage for the single 'url' parameter. However, since there's only one parameter and its purpose is implied by the tool's name and description, a baseline score of 3 is appropriate, as the schema alone minimally suffices.

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's purpose with specific verbs ('fetch', 'extract') and resources ('page content', 'readable text'). It distinguishes from siblings like web_search by focusing on content extraction rather than search, though it doesn't explicitly name alternatives.

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 web_search or other content-related tools. The description implies usage for fetching web pages but offers no context about prerequisites, limitations, or comparative scenarios.

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. Dates show when Glama detected each change.

  1. 22 tool updates
    • First observedapproval_request
    • First observedapproval_resolve
    • First observedauth_google_start
    • First observedauth_status
    • First observedcalendar_cancel_event
    • First observedcalendar_create_event
    • First observedcalendar_find_free_slots
    • First observedcalendar_list_events
    • First observedcalendar_update_event
    • First observedcompose_email_reply
    • First observedcontacts_create_or_update
    • First observedcontacts_get
    • First observedcontacts_search
    • First observedgmail_apply_labels
    • First observedgmail_create_draft
    • First observedgmail_get_message
    • First observedgmail_get_thread
    • First observedgmail_search
    • First observedmeeting_brief
    • First observedsummarize_email
    • First observedweb_fetch
    • First observedweb_search

TDQS

B3.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no significant overlap. Tools are organized by domain (e.g., calendar, contacts, Gmail, web), and actions within each domain are specific and non-redundant. For example, calendar tools cover create, list, update, cancel, and find_free_slots without ambiguity.

Naming Consistency5/5

Tool names follow a consistent snake_case pattern with a clear domain_action structure (e.g., calendar_create_event, gmail_search, web_fetch). All tools adhere to this convention, making them predictable and easy to understand across the entire set.

Tool Count4/5

With 22 tools, the count is slightly high but reasonable given the broad scope covering calendar, contacts, Gmail, web, and AI-assisted tasks. Each tool serves a specific function, though some consolidation might be possible without losing utility, keeping it well-scoped for an assistant-focused server.

Completeness5/5

The toolset provides comprehensive coverage for an AI assistant domain, including CRUD operations for calendar and contacts, full email handling (search, get, draft, labels), web interactions (fetch and search), and AI utilities (summarize, meeting brief). No obvious gaps exist; agents can perform end-to-end workflows seamlessly.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables intelligent integration with Gmail and Google Calendar for context-aware email analysis, advanced searching, and personalized response drafting. It supports natural language interactions for managing communication history, detecting events in emails, and creating calendar entries.
    17
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language control over Google Workspace (Gmail, Drive, Calendar, Sheets, Slides, Tasks) through secure OAuth 2.1 authentication, with vault-level security and multi-user isolation.
    225
    7
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/varun-b-nagaraj/python-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server