Skip to main content
Glama
izharikov

Sitecore Send

get_single_list

Retrieve detailed information about a specific mailing list, including total subscriber count and current status, from the Sitecore Send platform.

Instructions

Get a single mailing list details: total count, status, etc

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listIdYesId of the mailing list

Implementation Reference

  • src/tools/api.ts:30-51 (registration)
    Registration of the 'get_single_list' tool using server.addTool, defining name, description, schema, annotations, and handler.
    server.addTool({
      name: "get_single_list",
      description: "Get a single mailing list details: total count, status, etc",
      parameters: z.object({
        listId: z.string().uuid().describe("Id of the mailing list")
      }),
      annotations: {
        title: "Get a single mailing list",
        openWorldHint: true,
      },
      execute: async ({ listId }) => {
        const listResponse = await client.lists.getById(listId);
        const list = listResponse;
        type Keys = keyof typeof list;
        const keys = ['Name', 'ActiveMemberCount', 'BouncedMemberCount', 'RemovedMemberCount', 'UnsubscribedMemberCount', 'Preferences', 'StatusValue'] as Keys[];
        return {
          content: [
            { type: "text", text: keys.map(x => `- ${x}: '${list[x]}'`).join("\n") }
          ]
        }
      }
    });
  • Handler function that uses SendClient to fetch mailing list details by ID and returns formatted key-value pairs.
    execute: async ({ listId }) => {
      const listResponse = await client.lists.getById(listId);
      const list = listResponse;
      type Keys = keyof typeof list;
      const keys = ['Name', 'ActiveMemberCount', 'BouncedMemberCount', 'RemovedMemberCount', 'UnsubscribedMemberCount', 'Preferences', 'StatusValue'] as Keys[];
      return {
        content: [
          { type: "text", text: keys.map(x => `- ${x}: '${list[x]}'`).join("\n") }
        ]
      }
    }
  • Input schema using Zod, validating listId as a UUID string.
    parameters: z.object({
      listId: z.string().uuid().describe("Id of the mailing list")
    }),
Behavior3/5

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

The description adds minimal behavioral context beyond annotations. Annotations provide 'openWorldHint: true' indicating the tool can handle unknown inputs gracefully, but the description doesn't elaborate on what 'details' includes or how errors are handled. It mentions 'total count, status, etc' which gives some output expectation, but with no output schema, more detail would be helpful. No contradiction with annotations exists.

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 - a single sentence that efficiently communicates the core purpose. It's front-loaded with the main action ('Get a single mailing list details') and includes examples of what details might be included. However, the 'etc' at the end is somewhat vague and could be more specific.

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?

For a simple read operation with good schema coverage and annotations, the description is minimally adequate. However, with no output schema, the description should provide more detail about what 'details' includes beyond 'total count, status'. The 'etc' is insufficient for an agent to understand the complete response structure. The description meets basic needs but leaves gaps in output understanding.

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

Parameters3/5

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

With 100% schema description coverage, the input schema fully documents the single 'listId' parameter as a UUID. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain format requirements, validation rules, or provide examples. The baseline score of 3 is appropriate since the schema does the heavy lifting.

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: 'Get a single mailing list details' with specific resources (mailing list) and verb (get). It distinguishes from siblings like 'get_lists' (plural) by specifying 'single', but doesn't fully differentiate from 'get_subscriber_by_email' which also retrieves single items. The purpose is clear but sibling differentiation could be more explicit.

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 'get_single_list' over 'get_lists' for retrieving multiple lists, or when to use it in relation to subscriber-related tools. There's no context about prerequisites, error conditions, or typical workflows.

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/izharikov/send-mcp'

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