Skip to main content
Glama

Scenario Word

by HyunJuHwan
CharacterResource.ts1.79 kB
import { MCPResource, ResourceContent } from "mcp-framework"; let savedCharacters: any[] = []; let confirmedCharacterCache: any[] = []; class CharacterResource extends MCPResource { uri = "resource://character"; name = "character"; description = "Stores a list of generated characters"; mimeType = "application/json"; async read(): Promise<ResourceContent[]> { return [ { uri: this.uri, mimeType: this.mimeType, text: JSON.stringify({save: savedCharacters, confirmCharacter: confirmedCharacterCache}), }, ]; } async save(content: ResourceContent): Promise<void> { if (content.text) { try { const newCharacter = JSON.parse(content.text); savedCharacters.push(newCharacter); } catch (err) { console.error("Failed to parse and save character:", err); } } } async updateSave(content: ResourceContent): Promise<void> { if (content.text) { try { const character = JSON.parse(content.text); savedCharacters.push(character.newCharacter); const index = savedCharacters.findIndex((character) => character.character_id === character.old_character_id); if (index !== -1) { savedCharacters[index] = character.newCharacter; } } catch (err) { console.error("Failed to parse and save character:", err); } } } async confirm(content: ResourceContent): Promise<void> { if (content.text) { try { if (!confirmedCharacterCache.includes(content.text)) { confirmedCharacterCache.push(content.text); } } catch (err) { console.error("Failed to parse and confirm character:", err); } } } } export default CharacterResource;

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/HyunJuHwan/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server