Skip to main content
Glama
RMITBLOG

Parallels RAS MCP Server

by RMITBLOG

ras_farm_get_licensing

Check Parallels RAS license status, including type, expiration, seat count, and activation details to verify compliance and capacity.

Instructions

Get RAS licensing status, including license type (subscription/perpetual), expiration date, seat count, usage, and activation status. Use this to check license compliance, verify capacity, or diagnose licensing issues.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Tool registration with schema definition including title, description, annotations (read-only, idempotent), and empty inputSchema
    server.registerTool( "ras_farm_get_licensing", { title: "Licensing", description: "Get RAS licensing status, including license type (subscription/perpetual), " + "expiration date, seat count, usage, and activation status. Use this to check " + "license compliance, verify capacity, or diagnose licensing issues.", annotations: READ_ONLY_ANNOTATIONS, inputSchema: {}, }, async () => { try { const data = await rasClient.get("/api/farm-settings/licensing"); return { content: [{ type: "text" as const, text: JSON.stringify(data, null, 2) }] }; } catch (err) { return { content: [{ type: "text" as const, text: sanitiseError(err, "Failed to retrieve licensing info") }], isError: true }; } } );
  • Handler function that makes a GET request to /api/farm-settings/licensing endpoint, returns formatted JSON response, and handles errors with sanitised error messages
    async () => { try { const data = await rasClient.get("/api/farm-settings/licensing"); return { content: [{ type: "text" as const, text: JSON.stringify(data, null, 2) }] }; } catch (err) { return { content: [{ type: "text" as const, text: sanitiseError(err, "Failed to retrieve licensing info") }], isError: true }; } }
  • Helper function that sanitizes error messages by removing sensitive information (auth tokens, passwords) and truncating long responses to prevent leaking internal details
    function sanitiseError(err: unknown, context: string): string { const raw = err instanceof Error ? err.message : String(err); // Remove anything that looks like a token or password value let sanitised = raw .replace(/auth_token[=:]\s*\S+/gi, "auth_token=[REDACTED]") .replace(/password[=:]\s*\S+/gi, "password=[REDACTED]"); // Truncate excessively long API response bodies if (sanitised.length > 500) { sanitised = sanitised.substring(0, 500) + "... (truncated)"; } return `${context}: ${sanitised}`; }

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/RMITBLOG/ParallelsRAS_MCP'

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