Skip to main content
Glama
wave-av

WAVE MCP Server

Official
by wave-av

wave_get_subscription

Retrieve current subscription details including plan, billing cycle, and feature entitlements to manage your account and access streaming capabilities.

Instructions

Get current subscription details including plan, billing cycle, and feature entitlements

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler: async function that fetches subscription details from /api/v1/billing/subscription and returns the response body as text content.
    server.tool(
      "wave_get_subscription",
      "Get current subscription details including plan, billing cycle, and feature entitlements",
      {},
      async () => {
        const res = await waveFetch("/api/v1/billing/subscription");
        if (!res.ok) return errorContent(res.status, res.body);
    
        return textContent(res.body);
      },
    );
  • Registration: registerBillingTools function registers 'wave_get_subscription' on the McpServer instance via server.tool().
    export function registerBillingTools(server: McpServer): void {
      server.tool(
        "wave_get_subscription",
        "Get current subscription details including plan, billing cycle, and feature entitlements",
        {},
        async () => {
          const res = await waveFetch("/api/v1/billing/subscription");
          if (!res.ok) return errorContent(res.status, res.body);
    
          return textContent(res.body);
        },
      );
  • Helper: waveFetch wraps fetch() with auth headers and base URL, used by the handler to call the WAVE API.
    async function waveFetch(
      path: string,
      init?: RequestInit,
    ): Promise<{ ok: boolean; status: number; body: string }> {
      const url = `${getBaseUrl()}${path}`;
      const res = await fetch(url, {
        ...init,
        headers: {
          ...getAuthHeaders(),
          ...init?.headers,
        },
      });
      const body = await res.text();
      return { ok: res.ok, status: res.status, body };
    }
  • Helper: errorContent formats error responses for the MCP tool output.
    function errorContent(
      status: number,
      body: string,
    ): { content: Array<{ type: "text"; text: string }> } {
      return textContent(`Error ${status}: ${body}`);
    }
  • Schema: The tool has an empty schema object {} meaning it takes no input parameters.
    server.tool(
      "wave_get_subscription",
      "Get current subscription details including plan, billing cycle, and feature entitlements",
      {},
Behavior4/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. It states 'Get' which implies a read-only operation with no side effects. The description is adequate but does not explicitly mention safety or authorization requirements.

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, concise sentence that directly communicates the tool's purpose without any unnecessary words.

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 tool has no parameters and no output schema, the description provides sufficient context by stating what information is retrieved. It fully covers the expected behavior.

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 input schema has zero parameters, so the description cannot add semantic meaning beyond the schema. According to guidelines, 0 parameters yields a baseline score of 4.

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 it retrieves current subscription details, listing specific attributes (plan, billing cycle, feature entitlements). It uses a specific verb+resource pattern and is clearly distinct from sibling tools like wave_control_camera or wave_create_clip.

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?

No explicit when-to-use or when-not-to-use guidance is provided. Since the tool has no parameters and siblings are distinctly different, usage is implied but not clarified.

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/wave-av/mcp-server'

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