Skip to main content
Glama
RMITBLOG

Parallels RAS MCP Server

by RMITBLOG

ras_infra_get_connection_brokers

Check connection broker health, verify priority settings, and diagnose session routing issues in Parallels RAS infrastructure.

Instructions

Get connection broker status, priority, and configuration. Connection brokers handle user session brokering and load distribution. Use this to check broker health, verify primary/secondary priority, or diagnose session routing issues.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function that executes the tool logic - makes a GET request to '/api/infrastructure/connection-brokers' and returns the JSON response or a sanitized error message.
    async () => { try { const data = await rasClient.get("/api/infrastructure/connection-brokers"); 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 connection brokers") }], isError: true }; } }
  • Tool registration including the tool name 'ras_infra_get_connection_brokers', schema definition (title, description, annotations, inputSchema), and the handler function.
    server.registerTool( "ras_infra_get_connection_brokers", { title: "Connection Brokers", description: "Get connection broker status, priority, and configuration. Connection brokers " + "handle user session brokering and load distribution. Use this to check broker " + "health, verify primary/secondary priority, or diagnose session routing issues.", annotations: READ_ONLY_ANNOTATIONS, inputSchema: {}, }, async () => { try { const data = await rasClient.get("/api/infrastructure/connection-brokers"); 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 connection brokers") }], isError: true }; } } );
  • The RasClient.get() method that performs the actual API request with authentication, automatic retry on 401, and error handling.
    async get(path: string): Promise<unknown> { // Ensure we have a valid session if (!this.authToken) { await this.login(); } const fetchOptions = { method: "GET" as const, headers: { ...this.headers, auth_token: this.authToken!, }, signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS), }; let response = await fetch(`${this.baseUrl}${path}`, fetchOptions); // Token may have expired — re-authenticate once and retry if (response.status === 401) { await this.login(); response = await fetch(`${this.baseUrl}${path}`, { ...fetchOptions, headers: { ...this.headers, auth_token: this.authToken!, }, signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS), }); } if (!response.ok) { const body = await response.text(); throw new Error( `RAS API error (HTTP ${response.status}) on ${path}: ${body.substring(0, 300)}` ); } return response.json(); }
  • The sanitiseError() helper function that sanitizes error messages to avoid leaking sensitive information like auth tokens and passwords.
    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