Skip to main content
Glama

MCP Personal Tools Server

by Myk3rinos
server.js4.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const zod_1 = require("zod"); const promises_1 = __importDefault(require("node:fs/promises")); const node_path_1 = __importDefault(require("node:path")); const node_os_1 = __importDefault(require("node:os")); // Récupérer le chemin du répertoire utilisateur const userHomeDir = process.env.USER_HOME || node_os_1.default.homedir(); // Create an MCP server const server = new mcp_js_1.McpServer({ name: "demo-server", version: "1.0.0", capabilities: { resources: {}, tools: {}, prompts: { "prompt-1": { model: "mistral", } }, }, }); server.resource("user-details", new mcp_js_1.ResourceTemplate("users://{userId}/profile", { list: undefined }), { description: "Get a user's details from teh database", title: "User Details", mimeType: "application/json", }, async (uri, { userId }) => { const users = await import("./data/users.json", { with: { type: "json" }, }).then(m => m.default); const user = users.find(u => u.id === parseInt(userId)); if (user == null) { return { contents: [ { uri: uri.href, text: JSON.stringify({ error: "User not found" }), mimeType: "application/json", }, ], }; } return { contents: [ { uri: uri.href, text: JSON.stringify(user), mimeType: "application/json", }, ], }; }); server.tool("create-user", "Create a new user in the database", { name: zod_1.z.string(), email: zod_1.z.string().email(), address: zod_1.z.string(), phone: zod_1.z.string(), password: zod_1.z.string(), }, { title: "Create User", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true, }, async (params) => { try { const id = await createUser(params); return { content: [{ type: "text", text: `User ${params.name} created successfully` }] }; } catch (error) { return { content: [{ type: "text", text: `User ${params.name} creation failed` }] }; } }); server.tool("add-note", "Ajoute une nouvelle ligne au fichier de notes", { text: zod_1.z.string().describe("Le texte à ajouter au fichier de notes"), }, { title: "Ajouter une note", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true, }, async ({ text }) => { try { const notesDir = node_path_1.default.join(userHomeDir, 'Documents', 'notes'); // Créer le répertoire s'il n'existe pas await promises_1.default.mkdir(notesDir, { recursive: true }); // Ajouter la nouvelle ligne au fichier await promises_1.default.appendFile(node_path_1.default.join(notesDir, 'note.txt'), `${new Date().toISOString()} - ${text}\n`); return { content: [{ type: "text", text: `${text},Note ajoutée avec succès` }] }; } catch (error) { console.error("Erreur lors de l'ajout de la note:", error); return { content: [{ type: "text", text: `Erreur lors de l'ajout de la note` }] }; } }); async function createUser(user) { const users = await import("./data/users.json", { with: { type: "json" }, }).then((module) => module.default); const id = users.length + 1; users.push({ id, ...user }); await promises_1.default.writeFile("./src/data/users.json", JSON.stringify(users, null, 2)); return id; } async function main() { const transport = new stdio_js_1.StdioServerTransport(); await server.connect(transport); } main();

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/Myk3rinos/MCP'

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