Skip to main content
Glama

show_workspaces

List all accessible Anaplan workspaces, optionally with size and quota details. Start here to explore workspaces before models.

Instructions

List all accessible Anaplan workspaces. Use tenantDetails=true for size/quota info. Start here, then use show_models.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return (default 50, max 1000)
searchNoFilter by name or ID (case-insensitive substring match)
tenantDetailsNoInclude workspace size and quota information

Implementation Reference

  • The MCP tool handler for 'show_workspaces' - defines the tool with pagination and tenantDetails params, calls apis.workspaces.list(), formats results as a table, and returns next-step hints.
    server.tool("show_workspaces", "List all accessible Anaplan workspaces. Use tenantDetails=true for size/quota info. Start here, then use show_models.", {
      ...paginationParams,
      tenantDetails: z.boolean().optional().describe("Include workspace size and quota information"),
    }, async ({ limit, search, tenantDetails }) => {
      const workspaces = await apis.workspaces.list(tenantDetails);
      const columns = [{ header: "Name", key: "name" }, { header: "ID", key: "id" }, { header: "Active", key: "active" }];
      if (tenantDetails) {
        columns.push({ header: "Size", key: "sizeAllowance" }, { header: "Quota", key: "currentSize" });
      }
      return withNextSteps(
        tableResult(workspaces, columns, "workspaces", { limit, search }),
        ["Use show_models with a workspaceId to explore a workspace's models."],
      );
    });
  • Input schema for show_workspaces: pagination params (limit, search) and optional tenantDetails boolean.
      ...paginationParams,
      tenantDetails: z.boolean().optional().describe("Include workspace size and quota information"),
    }, async ({ limit, search, tenantDetails }) => {
  • Tool registration via server.tool() call with name 'show_workspaces'. The function registerExplorationTools is called from src/server.ts:54.
    server.tool("show_workspaces", "List all accessible Anaplan workspaces. Use tenantDetails=true for size/quota info. Start here, then use show_models.", {
      ...paginationParams,
      tenantDetails: z.boolean().optional().describe("Include workspace size and quota information"),
    }, async ({ limit, search, tenantDetails }) => {
      const workspaces = await apis.workspaces.list(tenantDetails);
      const columns = [{ header: "Name", key: "name" }, { header: "ID", key: "id" }, { header: "Active", key: "active" }];
      if (tenantDetails) {
        columns.push({ header: "Size", key: "sizeAllowance" }, { header: "Quota", key: "currentSize" });
      }
      return withNextSteps(
        tableResult(workspaces, columns, "workspaces", { limit, search }),
        ["Use show_models with a workspaceId to explore a workspace's models."],
      );
    });
  • WorkspacesApi.list() fetches all workspaces via the Anaplan REST API with optional tenant details. Called by the show_workspaces handler.
    async list(tenantDetails = false) {
      const suffix = tenantDetails ? "?tenantDetails=true" : "";
      return this.client.getAll<any>(`/workspaces${suffix}`, "workspaces");
    }
Behavior3/5

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

No annotations provided, so description carries full burden. It indicates a read operation listing workspaces with optional parameter for extra info. Lacks details on pagination, default limit, or what 'accessible' means.

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: first states purpose, second provides usage hint. No unnecessary words, excellent front-loading.

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?

Adequate for a simple list tool but could improve: no output schema, no mention of pagination or error conditions. The hint to use show_models next adds context.

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?

All three parameters are fully described in the input schema (100% coverage). The description only reiterates the tenantDetails usage, adding no new meaning 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 clearly states 'List all accessible Anaplan workspaces' with a specific verb and resource. It also distinguishes from sibling tools by advising 'Start here, then use show_models.'

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?

Provides clear context: use tenantDetails=true for size/quota info and start here before show_models. However, it does not explicitly differentiate from show_workspacedetails or state 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.

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/larasrinath/anaplan-mcp'

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