systemprompt-mcp-interview
Version:
A specialized Model Context Protocol (MCP) server that enables AI-powered interview roleplay scenarios
44 lines • 1.88 kB
JavaScript
import { SystemPromptService } from "../services/systemprompt-service.js";
import { mapBlockToReadResourceResult, mapBlocksToListResourcesResult, } from "../utils/mcp-mappers.js";
export async function handleListResources(request) {
try {
const service = SystemPromptService.getInstance();
const params = request.params;
const blocks = await service.listBlocks(params?.filter?.tags ? { tags: params.filter.tags } : undefined);
const blockResources = mapBlocksToListResourcesResult(blocks);
return {
_meta: {
timestamp: Date.now(),
},
resources: blockResources.resources,
};
}
catch (error) {
console.error("Failed to fetch resources:", error);
throw new Error(`Failed to fetch resources from systemprompt.io: ${error.message || "Unknown error"}`);
}
}
export async function handleResourceCall(request) {
if (!request.params?.uri) {
throw new Error("No URI provided in request params");
}
try {
const service = SystemPromptService.getInstance();
const { uri } = request.params;
const blockMatch = uri.match(/^resource:\/\/\/block\/(.+)$/);
if (!blockMatch) {
throw new Error("Invalid resource URI format - expected resource:///block/{id} or resource:///agent/{id}");
}
if (blockMatch) {
const blockId = blockMatch[1];
const block = await service.getBlock(blockId);
return mapBlockToReadResourceResult(block);
}
throw new Error("Failed to process resource request");
}
catch (error) {
console.error("Failed to fetch resource:", error);
throw new Error(`Failed to fetch resource from systemprompt.io: ${error.message || "Unknown error"}`);
}
}
//# sourceMappingURL=resource-handlers.js.map