Skip to main content
Glama
naubergois

FileAgent

by naubergois

FileAgent

FTP для агентов: общая виртуальная файловая система, каждый файл адресуется и проверяется по SHA-256, с извлечёнными метаданными при загрузке.

Агенты в одном FILEAGENT_DATA_DIR (stdio) или на одном HTTP-сервере видят один и тот же набор файлов. Ничего не входит и не выходит без зарегистрированного хэша (ftp_register). Этот access_hash — канал; SHA-256 файла — доказательство целостности.

Модель

Понятие

Описание

Хэш доступа

Учётные данные, зарегистрированные с помощью ftp_register. Без неё put/get не работают. Каждый хэш — изолированный канал.

Путь

FTP-путь (/inbox/nota.md) внутри access_hash.

Blob

Неизменяемые байты. Адрес = sha256(bytes). Каждое чтение пересчитывает хэш.

Метаданные

Извлекаются из содержимого: mime, kind, заголовок, язык, headings, колонки CSV, ключи JSON, размеры изображения, подсказки PDF.

Документ

Изменяемый указатель за path. Служит для checkout/commit между агентами.

CAS

expected_hash в get/put. Изменённый диск → code=tampered.

agente A                         FileAgent                       agente B
   |-- ftp_register() -----------> |                               |
   |<-- access_hash ---------------|                               |
   |---------------- compartilha access_hash --------------------->|
   |-- ftp_put(/inbox/a.md, hash) >|  sha256 + metadata            |
   |                               |<-- ftp_get(/inbox/a.md, hash)-|

Два агента с одним и тем же secret в ftp_register получают один и тот же access_hash.

Related MCP server: MEFS MCP Server

Инструменты FTP

Tool

Назначение

ftp_register

Регистрирует хэш. Без этого put/get отклоняются.

ftp_revoke / ftp_hashes

Отзывает или перечисляет хэши этого агента.

ftp_put

Отправляет. Требует access_hash. Записывает SHA-256 + метаданные.

ftp_get

Скачивает. Требует тот же access_hash. Пересчитывает SHA-256.

ftp_ls

Перечисляет канал этого хэша (содержимое + метаданные).

ftp_stat / ftp_meta

Только метаданные (path или hash).

ftp_verify

Аудит целостности.

ftp_find

Поиск по path, hash, заголовку, kind, колонкам…

ftp_mkdir / ftp_rm / ftp_mv / ftp_cp

Навигация в стиле FTP.

doc_* продолжает использоваться для совместного редактирования (lock + doc_commit) документа, связанного с path.

Ресурсы: fileagent://fs, fileagent://docs, fileagent://blob/{hash}.

Извлечённые метаданные

В ftp_put / ftp_stat / ftp_ls:

  • всегда: hash, size, mime, kind, filename, extension

  • текст / markdown: заголовок, headings, строки, слова, язык (pt/en)

  • JSON: валидность, тип, ключи

  • CSV: колонки и количество строк

  • PNG / JPEG / GIF: ширина и высота

  • PDF: версия, title/author, если присутствуют в header

Администратор и пароль

Только администратор регистрирует access_hash. Пароль в открытом виде хранится только в .venv проекта (вне git):

  • хэш: .venv/fileagent_admin.hash (PBKDF2-SHA256)

  • пароль: .venv/fileagent_admin.password

uv run fileagent --init-admin          # gera se ainda não existir
uv run fileagent --rotate-admin        # nova senha

Панель в браузере: откройте / и войдите с этим паролем, чтобы увидеть все файлы всех каналов. Без входа список не отображается.

# cadastrar um canal para clientes
curl -sS -X POST http://127.0.0.1:8765/v1/admin/register \
  -H "Content-Type: application/json" \
  -d '{"admin_password":"<senha>","label":"equipe-a"}'

Клиенты не регистрируют хэш. Используют access_hash, возвращённый в POST /v1/files или ftp_put.

Развёртывание

uv run fileagent --http --host 0.0.0.0 --port 8765
  • Панель администратора (вход): http://<host>:8765/

  • MCP: http://<host>:8765/mcp

  • REST: POST/GET /v1/files с заголовком X-Access-Hash

  • Здоровье: GET /healthz

Навыки

  • fileagent-send — агенты, которые отправляют

  • fileagent-receive — агенты, которые перечисляют/скачивают

Установка

cd /Users/naubergois/FileAgent
uv sync --extra dev

Cursor (общее хранилище между агентами)

{
  "mcpServers": {
    "fileagent": {
      "command": "uv",
      "args": ["--directory", "/Users/naubergois/FileAgent", "run", "fileagent"],
      "env": {
        "FILEAGENT_DATA_DIR": "/Users/naubergois/.fileagent",
        "FILEAGENT_AGENT_ID": "cursor",
        "FILEAGENT_OPEN_EDIT": "1"
      }
    }
  }
}

Каждый агент: одинаковый FILEAGENT_DATA_DIR, отдельный FILEAGENT_AGENT_ID.

HTTP

uv run fileagent --http --port 8765

Переменные

Переменная

По умолчанию

Назначение

FILEAGENT_DATA_DIR

~/.fileagent

SQLite + blobs. Одинаковый path = одинаковый FTP.

FILEAGENT_AGENT_ID

user@host

Кто отправил / редактировал.

FILEAGENT_OPEN_EDIT

1

Агенты хранилища редактируют paths shared.

FILEAGENT_HOST / PORT

127.0.0.1 / 8765

Режим --http.

Пути private видит только владелец (и grants). agent_id — это координация, а не строгая аутентификация. Безопасность содержимого — это хэш: если байты изменятся, чтение не удастся.

Текущий продакшн (AWS): https://fileagent.54-204-243-102.sslip.io/ — панель с паролем администратора.

Тесты

uv run pytest -q
A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides AI agents with a persistent, PostgreSQL-backed virtual filesystem, supporting session-isolated file operations, cross-session shared stores, and glob/grep search.
    11
    45
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a browsable, mutable SFTP filesystem for AI agents, supporting file operations like listing, uploading, downloading, moving, and deleting.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents file system access: read, write, search, hash, directory trees — 12 tools, zero dependencies, pure Python stdlib.
    MIT

View all related MCP servers

Related MCP Connectors

  • Encrypted A2A object storage for autonomous agent state and artifacts

  • File uploads for AI agents. Upload, list, and manage files. No signup required.

  • Shared long-term memory vault for AI agents with 20 MCP tools.

View all MCP Connectors

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/naubergois/FileAgent'

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