Skip to main content
Glama

file_write

Write content to files for storing notes, documents, or operational data within the AI Ops Hub environment.

Instructions

Записать содержимое в файл

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesПуть к файлу
contentYesСодержимое для записи

Implementation Reference

  • Core handler function for the file_write tool. Sanitizes the path, creates directories as needed, writes content using fs.writeFile, with logging and error handling.
    async writeFile(filePath: string, content: string): Promise<void> {
      try {
        // Проверяем безопасность пути
        const safePath = this.sanitizePath(filePath);
        
        console.log(`✏️ Запись в файл: ${safePath}`);
        
        // Создаем директорию если её нет
        const dir = path.dirname(safePath);
        await fs.mkdir(dir, { recursive: true });
        
        await fs.writeFile(safePath, content, 'utf-8');
        
        console.log(`✅ Файл записан: ${safePath} (${content.length} символов)`);
      } catch (error) {
        console.error('Ошибка записи файла:', error);
        throw new Error(`Ошибка записи файла: ${error}`);
      }
    }
  • src/server.ts:99-116 (registration)
    Tool registration in the main MCP server's ListToolsRequestSchema handler, defining name, description, and input schema.
    {
      name: 'file_write',
      description: 'Записать содержимое в файл',
      inputSchema: {
        type: 'object',
        properties: {
          path: {
            type: 'string',
            description: 'Путь к файлу',
          },
          content: {
            type: 'string',
            description: 'Содержимое для записи',
          },
        },
        required: ['path', 'content'],
      },
    },
  • Dispatch case in main server's CallToolRequestSchema handler delegating to FileService.writeFile.
    case 'file_write':
      await this.fileService.writeFile(args.path as string, args.content as string);
      return { content: 'Файл записан' };
  • Dispatch case in HTTP transport's /call endpoint handler delegating to FileService.writeFile.
    case 'file_write':
      await this.fileService.writeFile(args.path, args.content);
      result = { message: 'Файл записан' };
  • Security helper to sanitize file paths, preventing path traversal attacks by restricting access to the notes directory.
    private sanitizePath(filePath: string): string {
      // Убираем потенциально опасные символы
      const cleanPath = filePath.replace(/[<>:"|?*]/g, '');
      
      // Разрешаем только относительные пути
      if (path.isAbsolute(cleanPath)) {
        throw new Error('Абсолютные пути не разрешены');
      }
      
      // Разрешаем только файлы в notes директории
      const resolvedPath = path.resolve(this.notesDir, cleanPath);
      const notesDirResolved = path.resolve(this.notesDir);
      
      if (!resolvedPath.startsWith(notesDirResolved)) {
        throw new Error('Доступ к файлу вне notes директории запрещен');
      }
      
      return resolvedPath;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Latest Blog Posts

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

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