Skip to main content
Glama
shigechika

gwsadm-mcp

by shigechika

group_delivery_policy

Check a Google Group's own posting/delivery policy — why an external sender's mail never arrived.

Instructions

Check a Google Group's own posting/delivery policy — why an external sender's mail never arrived.

A Group's access-control layer sits IN FRONT of Gmail delivery: when who_can_post is restricted (e.g. domain-members-only), an external sender's message is rejected there and never generates a per-recipient Gmail delivery event at all — gmail_message_trace (a real mailbox) and any Reports-API-based delivery trace both see nothing for that address, indistinguishable from a genuine delivery failure without this. Use this FIRST when a group address "isn't receiving" mail from an external sender, before chasing it as a transport/spam problem.

Read-only: only groups().get() is issued (Groups Settings API). Requires the apps.groups.settings DWD scope — granted PER SERVICE ACCOUNT CLIENT ID in the Admin console (Security > API controls > Domain-wide delegation), separately from every other scope this server uses, and NOT on by default.

Returns who_can_post (e.g. ALL_IN_DOMAIN_CAN_POST blocks external senders entirely; ANYONE_CAN_POST allows them), allow_external_members, is_archived, message_moderation_level, spam_moderation_level, allow_web_posting. Sets found: false (no policy fields) when group_email does not name any group in this domain — that is a normal, expected answer for a bad/typo'd address, not an error.

Args: group_email: The group's address (e.g. "team.gen@example.edu"). domain: Configured [domain.*] section to route the lookup through. Default: resolved from the address's suffix.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainNo
group_emailYes
Behavior5/5

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

With no annotations provided, the description carries the full burden and excels. It discloses read-only behavior ('only groups().get() is issued'), the required scope and its non-default delegation, and the important nuance that found:false is a normal result for a nonexistent group, not an error. This goes well beyond a simple 'checks policy' statement.

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 well-structured with clear paragraphs: purpose, underlying behavior, read-only/scope, return fields, and args. Every sentence adds value, and the length is justified by the technical complexity and the need to prevent misdiagnosis. It is front-loaded with the most important purpose statement.

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 absence of an output schema, the description thoroughly explains return fields (who_can_post, allow_external_members, etc.), the found:false edge case, the required scope, and when to use the tool. It is complete enough for an agent to understand the tool's behavior, prerequisites, and expected outputs without additional context.

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?

Schema coverage is 0%, so the description must explain both parameters. It does: group_email is given an example and described as the group's address, while domain is explained as a routing section with a default resolved from the address suffix. This adds meaningful semantics beyond the bare schema types.

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 'Check a Google Group's own posting/delivery policy — why an external sender's mail never arrived,' a specific verb+resource that immediately clarifies the tool's purpose. It distinguishes itself from siblings like gmail_message_trace by explaining that it checks the group-level policy before Gmail delivery, unlike mailbox-level traces.

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?

Explicit guidance is provided: 'Use this FIRST when a group address "isn't receiving" mail from an external sender, before chasing it as a transport/spam problem.' It also contrasts with gmail_message_trace and Reports-API traces, explaining why this tool is the right first step and excluding alternatives in the same context.

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

Install Server

Other Tools

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/shigechika/gwsadm-mcp'

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