@turbot/tailpipe-mcp
Version:
Tailpipe MCP server to query cloud and security logs using AI.
47 lines • 1.73 kB
JavaScript
import { ListResourcesRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";
import { resource as statusResource } from "./status.js";
import { logger } from '../services/logger.js';
// Register all available resources
const resources = [
statusResource
];
// Export resources for server capabilities
export const resourceCapabilities = {
resources: Object.fromEntries(resources.map(r => [r.name, {
uri: r.uri,
name: r.name,
type: r.type,
description: r.description
}]))
};
export function setupResourceHandlers(server, db) {
// Register resource list handler
server.setRequestHandler(ListResourcesRequestSchema, async () => {
try {
return { resources: Object.values(resourceCapabilities.resources) };
}
catch (error) {
// Log the error but don't fail - return default resources
if (error instanceof Error) {
logger.error("Critical error listing resources:", error.message);
}
else {
logger.error("Critical error listing resources:", error);
}
// Return empty list on error
return { resources: [] };
}
});
// Register resource read handler
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
const { uri } = request.params;
// Find matching resource
const resource = resources.find(r => r.uri === uri);
if (!resource) {
throw new Error(`Unknown resource: ${uri}`);
}
// Handle the resource request
return resource.handler(db);
});
}
//# sourceMappingURL=index.js.map