@turbot/guardrails-mcp
Version:
MCP server for interacting with Turbot Guardrails.
45 lines (44 loc) • 1.5 kB
JavaScript
import { executeQuery } from "../utils/graphqlClient.js";
import { logger } from "../services/pinoLogger.js";
import config from "../config/env.js";
// Define a function to handle status resource requests
export async function handleStatusResource(uri) {
// Check if this is a status resource URI
if (uri !== 'guardrails://status') {
return null;
}
try {
// Query for workspace version
const query = `
query AdminDashboardWorkspaceVersion {
workspaceVersion: policyValue(resourceAka: "tmod:@turbot/turbot#/" uri: "tmod:@turbot/turbot#/policy/types/workspaceVersion") {
value
}
}
`;
const versionResult = await executeQuery(query);
const versionData = JSON.parse(versionResult);
const response = {
workspaceVersion: versionData.workspaceVersion?.value || 'unknown',
guardrailsUrl: config.TURBOT_GRAPHQL_ENDPOINT || 'unknown'
};
return {
contents: [{
uri,
text: JSON.stringify(response),
mimeType: 'application/json'
}]
};
}
catch (error) {
logger.error("Error in status resource:", error);
return {
contents: [{
uri,
text: error instanceof Error ? error.message : String(error),
mimeType: 'text/plain'
}],
isError: true
};
}
}