Skip to main content
Glama

Домашній файловий агент (Home File Agent)

Повністю самостійно написаний MCP-сервер — з нуля, без стартер-кітів і готових шаблонів. Навчальний курсовий проєкт: агент, який працює з файлами в одній заданій локальній папці — шукає за змістом (RAG), читає кілька форматів, звітує про власний стан. Клієнт — Claude Desktop (MCP-конектор) або власний agent_loop.py (окремо написаний call cycle — доказ розуміння механіки tool-use циклу, а не готова агентна бібліотека).

Відео-демонстрація

Демонстрація функціоналу на YouTube

Related MCP server: vectorise-mcp

Архітектура одним абзацом

Claude (LLM) ↔ MCP-сервер (server.py, FastMCP) ↔ локальна папка (файли) + Voyage AI (ембединги) + Chroma (векторна БД, локальна). Усі операції з файлами проходять через sandbox-перевірку кореневої папки. Повна архітектурна схема — окремо, у Draw.io (додається до захисту).

Джерела даних

Джерело

Роль

Де живе

Локальна папка (AGENT_ROOT_DIR)

Основні дані користувача (txt, md, pdf, docx, xml, xlsx, xls)

На диску користувача

Voyage AI (voyage-4-lite)

Ембединги для семантичного пошуку

Зовнішній API

Chroma

Векторна БД для RAG-пошуку

Локально, .chroma_index/

Встановлення

cd C:\Home_agen_LLM
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt

Налаштування оточення

Створи .env:

ANTHROPIC_API_KEY=<потрібен лише для agent_loop.py, не для Claude Desktop> VOYAGE_API_KEY=<з voyageai.com> AGENT_ROOT_DIR=C:\Home_agen_LLM\test_data

Локальний запуск через Claude Desktop (основний спосіб)

  1. Settings → Developer → Edit Config у Claude Desktop.

  2. Додай у claude_desktop_config.json:

   {
     "mcpServers": {
       "home-file-agent": {
         "command": "C:\\Home_agen_LLM\\venv\\Scripts\\python.exe",
         "args": ["C:\\Home_agen_LLM\\server.py"],
         "env": {
           "AGENT_ROOT_DIR": "C:\\Home_agen_LLM\\test_data",
           "VOYAGE_API_KEY": "<ключ>"
         }
       }
     }
   }
  1. Повний вихід із Claude Desktop і повторний запуск.

  2. У чаті: "Проіндексуй мою папку", потім будь-яке питання по вмісту.

Локальний запуск через власний цикл (agent_loop.py, ДЗ1-доказ)

python agent_loop.py

Потребує ANTHROPIC_API_KEY в .env.

Доступні tools

  • list_folder(path="") — список файлів/підпапок

  • read_file(path) — вміст файлу (txt, md, pdf, docx, xml, xlsx, xls)

  • reindex() — перебудова RAG-індексу (запускати після зміни файлів)

  • search_files(query, top_k=5) — семантичний пошук

  • status() — стан індексу (для моніторингу)

Тести

pip install pytest pytest-asyncio ruff
pytest tests/ -v
ruff check .

Docker / хмарний варіант

docker build -t home-file-agent .
docker run -i -p 8080:8080 `
  -e VOYAGE_API_KEY=<ключ> `
  -e AGENT_ROOT_DIR=/data `
  -v C:\Home_agen_LLM\test_data:/data `
  home-file-agent

Моніторинг

  • agent.log — структуровані логи (без вмісту файлів)

  • python check_health.py — перевірка свіжості індексу й аномалій у логах (exit code 0/1)

  • tool status() — те саме, але прямо з чату

Безпека

Детально — у PROMPT_BOOK.md. Коротко: read-only, sandbox на кореневу папку, allowlist розширень, ліміт розміру файлу, rate limiting, приховані файли недоступні, логи без вмісту.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/nfedunwork-code/home_mcp'

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