FileAgent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FileAgentupload report.pdf to the shared inbox"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FileAgent
FTP for agents: a shared virtual filesystem, each file addressed and verified by SHA-256, with metadata extracted on upload.
Agents on the same FILEAGENT_DATA_DIR (stdio) or on the same HTTP server see the same collection. Nothing enters or leaves without a registered hash (ftp_register). That access_hash is the channel; the file's SHA-256 is the proof of integrity.
Model
Concept | What it is |
Access hash | Credential registered with |
Path | FTP path ( |
Blob | Immutable bytes. Address = |
Metadata | Extracted from content: mime, kind, title, language, headings, CSV columns, JSON keys, image dimensions, PDF hints. |
Document | Mutable pointer behind the path. Serves checkout/commit between agents. |
CAS |
|
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)-|Two agents with the same secret in ftp_register get the same access_hash.
Related MCP server: MEFS MCP Server
FTP Tools
Tool | Usage |
| Registers the hash. Without it, put/get are refused. |
| Revokes or lists hashes from this agent. |
| Sends. Requires |
| Downloads. Requires the same |
| Lists this hash's channel (content + metadata). |
| Metadata only (path or hash). |
| Integrity audit. |
| Search by path, hash, title, kind, columns… |
| FTP-style navigation. |
doc_* continues for collaborative editing (lock + doc_commit) of the document linked to the path.
Resources: fileagent://fs, fileagent://docs, fileagent://blob/{hash}.
Extracted Metadata
On ftp_put / ftp_stat / ftp_ls:
always:
hash,size,mime,kind,filename,extensiontext / markdown: title, headings, lines, words, language (
pt/en)JSON: validity, type, keys
CSV: columns and number of rows
PNG / JPEG / GIF: width and height
PDF: version, title/author if present in the header
Admin and Password
Only the admin registers access_hash. The plaintext password stays only in the project's .venv (outside git):
hash:
.venv/fileagent_admin.hash(PBKDF2-SHA256)password:
.venv/fileagent_admin.password
uv run fileagent --init-admin # gera se ainda não existir
uv run fileagent --rotate-admin # nova senhaBrowser panel: open / and enter that password to see all files from all channels. Without login, the list does not appear.
# 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"}'Clients do not register hashes. They use the access_hash returned in POST /v1/files or ftp_put.
Going Live
uv run fileagent --http --host 0.0.0.0 --port 8765Admin panel (login):
http://<host>:8765/MCP:
http://<host>:8765/mcpREST:
POST/GET /v1/fileswith headerX-Access-HashHealth:
GET /healthz
Skills
fileagent-send— agents that sendfileagent-receive— agents that list/download
Installation
cd /Users/naubergois/FileAgent
uv sync --extra devCursor (same store between agents)
{
"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"
}
}
}
}Each agent: same FILEAGENT_DATA_DIR, distinct FILEAGENT_AGENT_ID.
HTTP
uv run fileagent --http --port 8765Variables
Variable | Default | Function |
|
| SQLite + blobs. Same path = same FTP. |
|
| Who sent / edited. |
|
| Store agents edit |
|
|
|
private paths are only visible to the owner (and grants). agent_id is coordination, not strong authentication. Content security is the hash: if the bytes change, the read fails.
Current production (AWS): https://fileagent.54-204-243-102.sslip.io/ — panel with admin password.
Tests
uv run pytest -qThis server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceAn 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.11453MIT

MEFS MCP Serverofficial
AlicenseAqualityDmaintenanceProvides decentralized storage for AI agents, enabling them to save generated content to MEFS and retrieve data via content identifiers.2151MIT- AlicenseNot gradedqualityBmaintenanceProvides a browsable, mutable SFTP filesystem for AI agents, supporting file operations like listing, uploading, downloading, moving, and deleting.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI agents file system access: read, write, search, hash, directory trees — 12 tools, zero dependencies, pure Python stdlib.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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