Skip to main content
Glama
naubergois

FileAgent

by naubergois

FileAgent

エージェント向けFTP: 共有仮想ファイルシステム。各ファイルはSHA-256でアドレス指定・検証され、アップロード時にメタデータが抽出されます。

同じFILEAGENT_DATA_DIR(stdio)または同じHTTPサーバー上のエージェントは、同じコレクションを参照します。登録されたハッシュなしでは、何も出入りできません(ftp_register)。このaccess_hashがチャネルであり、ファイルのSHA-256が完全性の証明です。

モデル

概念

説明

Access hash

ftp_registerで登録された資格情報。これがないとput/getは失敗します。各ハッシュは独立したチャネルです。

Path

access_hashのFTPパス(/inbox/nota.md)。

Blob

不変のバイト列。アドレス = sha256(bytes)。読み取りのたびにハッシュを再計算します。

メタデータ

コンテンツから抽出: mime、kind、タイトル、言語、見出し、CSV列、JSONキー、画像寸法、PDFヒント。

ドキュメント

パスの背後にある可変ポインタ。エージェント間のチェックアウト/コミットに使用します。

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)-|

ftp_registerで同じsecretを持つ2つのエージェントは、同じ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)に引き続き使用されます。

リソース: 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/filesまたはftp_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 + ブロブ。同じパス = 同じFTP。

FILEAGENT_AGENT_ID

user@host

送信者 / 編集者。

FILEAGENT_OPEN_EDIT

1

ストアのエージェントはsharedパスを編集します。

FILEAGENT_HOST / PORT

127.0.0.1 / 8765

--httpモード。

privateパスは所有者(およびgrant)のみが参照できます。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