Skip to main content
Glama

create_shareable_report

Generate a public snapshot URL from an MCP tool result, allowing stakeholders without an account to view the report.

Instructions

Create a public, read-only snapshot URL of an MCP tool result so a stakeholder without an account can view it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleNo

Implementation Reference

  • The CallToolRequestSchema handler receives the tool call. For 'create_shareable_report', there is NO special-case branch — it falls through to the generic catch-all (lines 270-278) which returns only a HOSTED_NOTICE message explaining that the tool is only available via the remote streamable-HTTP endpoint, not through this stdio stub.
    server.setRequestHandler(CallToolRequestSchema, async (request) => {
      const name = request.params.name
      if (name === "agentcentral_setup") {
        return {
          content: [
            {
              type: "text",
              text:
                `Hosted MCP endpoint:\n  ${HOSTED_URL}\n\n` +
                `Setup guide:\n  ${SETUP_URL}\n\n` +
                `Add this to your client config:\n` +
                `{\n  "mcpServers": {\n    "agentcentral": {\n      "url": "${HOSTED_URL}",\n      "headers": { "Authorization": "Bearer ac_live_<YOUR_API_KEY>" }\n    }\n  }\n}`,
            },
          ],
          isError: false,
        }
      }
      return {
        content: [
          {
            type: "text",
            text: HOSTED_NOTICE,
          },
        ],
        isError: false,
      }
    })
  • Input schema definition for create_shareable_report. Accepts a single optional string property 'title'. No output schema defined.
      name: "create_shareable_report",
      description:
        "Create a public, read-only snapshot URL of an MCP tool result so a stakeholder without an account can view it.",
      inputSchema: {
        type: "object" as const,
        properties: { title: { type: "string" } },
        additionalProperties: false,
      },
    },
  • src/index.ts:39-239 (registration)
    Tool registration in the `tools` array passed to ListToolsRequestSchema. create_shareable_report is registered at index 221-230 under the 'Utility' section.
    const tools: Tool[] = [
      // --- Ads (read) ---
      {
        name: "get_campaign_performance",
        description:
          "Read Sponsored Products / Sponsored Brands / Sponsored Display campaign performance metrics for a date range, including impressions, clicks, spend, sales, ACOS, ROAS, and TACOS.",
        inputSchema: dateRangeSchema,
      },
      {
        name: "get_keyword_performance",
        description:
          "Read keyword-level performance for a date range across Sponsored Products and Sponsored Brands campaigns.",
        inputSchema: dateRangeSchema,
      },
      {
        name: "get_search_terms",
        description:
          "Read search terms (customer queries) that triggered ad impressions, with attributed sales, clicks, and spend by ASIN.",
        inputSchema: dateRangeSchema,
      },
      {
        name: "get_budget_pacing",
        description:
          "Read campaign budget pacing: budget consumed by hour, time-out-of-budget percentage, and pacing alerts.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
      {
        name: "get_tacos",
        description:
          "Read TACOS (total advertising cost of sales) blending ad spend with total Amazon sales by ASIN, brand, or campaign.",
        inputSchema: dateRangeSchema,
      },
    
      // --- Ads (write) ---
      {
        name: "update_keyword_bids",
        description:
          "Update keyword bids in bulk. Pre-reads current bids, enforces $0.02 min and $100 max guardrails, warns on >500% changes, and writes a pre/post audit log.",
        inputSchema: {
          type: "object" as const,
          properties: {
            keyword_ids: {
              type: "array",
              items: { type: "string" },
              description: "Keyword IDs to update.",
            },
            new_bid: {
              type: "number",
              description: "New bid in account currency (e.g. USD).",
            },
          },
          required: ["keyword_ids", "new_bid"],
          additionalProperties: false,
        },
      },
      {
        name: "update_campaign_budget",
        description:
          "Update a campaign daily budget. Pre-reads current budget, enforces account-currency minimums, and writes a pre/post audit log.",
        inputSchema: {
          type: "object" as const,
          properties: {
            campaign_id: { type: "string", description: "Campaign ID." },
            new_budget: { type: "number", description: "New daily budget." },
          },
          required: ["campaign_id", "new_budget"],
          additionalProperties: false,
        },
      },
    
      // --- Inventory ---
      {
        name: "get_fba_inventory",
        description:
          "Read FBA inventory levels by SKU/ASIN, including fulfillable, unfulfillable, reserved, inbound, and AWD quantities.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
      {
        name: "get_inventory_health",
        description:
          "Read FBA inventory health scoring with stranded, aged, excess, and low-stock indicators per ASIN.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
      {
        name: "get_orders",
        description:
          "Read recent Amazon orders with status, marketplace, totals, items, and shipping details.",
        inputSchema: dateRangeSchema,
      },
      {
        name: "get_sales_velocity",
        description:
          "Read sales velocity by ASIN: 7/30/90-day rolling units sold, days of cover, and sell-through pace.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
      {
        name: "get_inventory_risk_triage",
        description:
          "Read prioritized inventory risk: stockouts, excess, aged inventory, suppressed listings, and Buy Box loss with risk_level and coverage_state.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
    
      // --- Catalog ---
      {
        name: "get_product_details",
        description:
          "Read catalog metadata for an ASIN: title, brand, category, dimensions, images, and identifiers.",
        inputSchema: {
          type: "object" as const,
          properties: { asin: { type: "string", description: "Amazon ASIN." } },
          required: ["asin"],
          additionalProperties: false,
        },
      },
      {
        name: "get_listing_quality",
        description:
          "Read listing quality scoring: title length, bullet completeness, A+ Content presence, image count, and suppressed-status flags per ASIN.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
      {
        name: "get_variations",
        description:
          "Read variation family relationships (parent ASIN with all child ASINs) including variation theme.",
        inputSchema: {
          type: "object" as const,
          properties: { parent_asin: { type: "string" } },
          required: ["parent_asin"],
          additionalProperties: false,
        },
      },
    
      // --- Finance ---
      {
        name: "get_profitability",
        description:
          "Read net profitability by ASIN: gross sales minus FBA fees, referral fees, ad spend, COGS, and returns.",
        inputSchema: dateRangeSchema,
      },
      {
        name: "get_fee_breakdown",
        description:
          "Read Amazon fee breakdown for an ASIN: referral fees, FBA fees, storage fees, and dimensional weight estimates.",
        inputSchema: {
          type: "object" as const,
          properties: { asin: { type: "string" } },
          required: ["asin"],
          additionalProperties: false,
        },
      },
      {
        name: "get_settlement_economics",
        description:
          "Read settlement-period unit economics: starting balance, charges, deposits, refunds, and reserves.",
        inputSchema: dateRangeSchema,
      },
    
      // --- Ranking ---
      {
        name: "get_current_rank",
        description:
          "Read live keyword rank for an ASIN: organic position, sponsored position, and total result count.",
        inputSchema: {
          type: "object" as const,
          properties: {
            asin: { type: "string" },
            keyword: { type: "string" },
          },
          required: ["asin", "keyword"],
          additionalProperties: false,
        },
      },
    
      // --- Fulfillment ---
      {
        name: "get_shipping_preview",
        description:
          "Read MCF (Multi-Channel Fulfillment) shipping cost and speed estimates for a destination address.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
    
      // --- Utility ---
      {
        name: "create_shareable_report",
        description:
          "Create a public, read-only snapshot URL of an MCP tool result so a stakeholder without an account can view it.",
        inputSchema: {
          type: "object" as const,
          properties: { title: { type: "string" } },
          additionalProperties: false,
        },
      },
    
      // --- Setup helper ---
      {
        name: "agentcentral_setup",
        description:
          "Returns the connection details and setup link for the hosted agentcentral MCP server.",
        inputSchema: { type: "object", properties: {}, additionalProperties: false },
      },
    ]
Behavior3/5

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

No annotations are provided, so description carries the full burden. It discloses that the snapshot is public and read-only, but does not mention important traits like expiration, persistence, revocation, or authentication requirements for creation.

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?

Description is a single, well-structured sentence that front-loads the key action and purpose. Every word adds value with no redundancy or fluff.

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?

Description lacks detail about the output format (what is returned besides a URL?), the scope (which MCP tool result?), and any prerequisites or limitations. Without an output schema, these gaps hinder an agent's ability to use the tool correctly.

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

Parameters1/5

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

Schema has one parameter 'title' with no description (0% coverage). The tool description does not explain what the title parameter is for, leaving the agent with no information beyond the parameter name.

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

Purpose5/5

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

Description clearly states the tool creates a public, read-only snapshot URL of an MCP tool result for sharing with stakeholders without an account. This specific verb+resource distinguishes it from sibling get/update tools.

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?

Description explicitly states the context: sharing results with stakeholders without an account. It does not provide when-not-to-use or alternatives, but the context is clear enough for an AI agent to infer appropriate usage.

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/agentcentral-to/agent-central-mcp'

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