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 失败。每个哈希都是一个隔离的通道。

路径

access_hash 的 FTP 路径(/inbox/nota.md)。

Blob

不可变的字节。地址 = sha256(bytes)。每次读取都会重新计算哈希。

元数据

从内容中提取:MIME 类型、kind、标题、语言、标题结构、CSV 列、JSON 键、图像尺寸、PDF 提示。

文档

路径后面的可变指针。用于代理之间的 checkout/commit。

CAS

get/put 中的 expected_hash。磁盘被篡改 → 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 工具

工具

用途

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

仅元数据(路径或哈希)。

ftp_verify

完整性审计。

ftp_find

按路径、哈希、标题、kind、列等搜索。

ftp_mkdir / ftp_rm / ftp_mv / ftp_cp

类似 FTP 的导航。

doc_* 仍然用于协作编辑(锁 + doc_commit)路径关联的文档。

资源:fileagent://fsfileagent://docsfileagent://blob/{hash}

提取的元数据

ftp_put / ftp_stat / ftp_ls 中:

  • 始终: hashsizemimekindfilenameextension

  • 文本 / Markdown: 标题、标题结构、行数、字数、语言(pt/en

  • JSON: 有效性、类型、键

  • CSV: 列数和行数

  • PNG / JPEG / GIF: 宽度和高度

  • PDF: 版本、title/author(如果存在)

管理员和密码

只有管理员才能注册 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"}'

客户端注册哈希。他们使用 POST /v1/filesftp_put 返回的 access_hash

上线

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 + blob。相同路径 = 相同 FTP。

FILEAGENT_AGENT_ID

user@host

谁发送 / 编辑。

FILEAGENT_OPEN_EDIT

1

存储中的代理编辑 shared 路径。

FILEAGENT_HOST / PORT

127.0.0.1 / 8765

--http 模式。

private 路径只有所有者(和授权者)可见。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