@mseep/hyperbrowser-mcp
Version:
Hyperbrowser Model Context Protocol Server
45 lines (44 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listProfilesToolDescription = exports.listProfilesToolName = exports.listProfilesTool = void 0;
const utils_js_1 = require("../utils.js"); // Import getClient
const sdk_1 = require("@hyperbrowser/sdk"); // Import SDK error type
// The handler function receives parsed parameters (page and limit are optional)
async function listProfilesTool(params) {
const { page, limit } = params; // Destructure validated optional params
try {
const client = await (0, utils_js_1.getClient)(); // Get client instance
// Call the SDK list method with optional parameters
const response = await client.profiles.list({ page, limit });
// Return the list of profiles and pagination info
return {
content: [
{
type: 'text',
// response contains { profiles: ProfileResponse[], totalCount, page, perPage }
text: JSON.stringify(response, null, 2),
},
],
isError: false,
};
}
catch (error) {
let errorMessage = 'An unknown error occurred while listing profiles.';
// Check if it's a specific Hyperbrowser SDK error
if (error instanceof sdk_1.HyperbrowserError) {
errorMessage = `Failed to list profiles: ${error.message} (Status: ${error.statusCode || 'N/A'})`;
}
else if (error instanceof Error) {
errorMessage = `Failed to list profiles: ${error.message}`;
}
// Return error result
return {
content: [{ type: 'text', text: errorMessage }],
isError: true,
};
}
}
exports.listProfilesTool = listProfilesTool;
// Export name and description separately for registration
exports.listProfilesToolName = 'list_profiles';
exports.listProfilesToolDescription = 'Lists existing persistent Hyperbrowser profiles, with optional pagination.';