Filesystem MCP Server
Система подбора кандидатов на основе MCP
Преобразует файловые инструменты из Milestone-1 в настоящий MCP-сервер (Model Context Protocol) и рефакторит агента сопоставления LangGraph, чтобы он использовал его (плюс второй MCP-сервер) в качестве клиента, вместо прямого вызова локальных функций Python.
Структура проекта
mcp_recruitment_project/
├── mcp_servers/
│ ├── filesystem_mcp_server.py # Part A — main deliverable
│ └── rag_mcp_server.py # Part B.2 bonus — 2nd MCP server
├── matching_agent.py # Part B — refactored LangGraph agent
├── state.py # LangGraph agent state schema
├── data/
│ ├── resumes/ # cand_001.txt ... cand_005.txt
│ └── job_descriptions/ # sample_jd.txt
├── reports/ # generate_report() output lands here
├── docs/
│ └── workflow_diagram.md # state machine / sequence diagrams
├── tests/
│ └── test_scenarios.py # 7 automated test scenarios
└── requirements.txtRelated MCP server: File Server MCP
Часть A — filesystem_mcp_server.py
Построен на официальном Python SDK
mcpот Anthropic — настоящий JSON-RPC 2.0 сервер через stdio, а не самодельный протокол.Предоставляет операции Milestone-1 как MCP-инструменты:
list_resumes,read_resume,read_job_description,save_report.Предоставляет резюме и описания вакансий как MCP-ресурсы (
resources/list,resources/read) с URIresume://<file>иjd://<file>, чтобы любой MCP-клиент мог просматривать пул, не зная имён инструментов.Новые возможности, специфичные для MCP:
watch_directory(seconds, target)— опрашивает папку до 120 секунд и сообщает о появившихся файлах, чтобы обнаруживать только что загруженные резюме.batch_process(candidate_ids, operation)— выполняетread/word_count/validateдля до 50 файлов за один цикл вместо одного вызова на файл и остаётся устойчивым (ошибки по каждому файлу собираются в картуerrors{}, а не приводят к сбою всего пакета).
Обработка ошибок использует отдельные коды ошибок JSON-RPC (
ERR_NOT_FOUND,ERR_INVALID_PARAMS,ERR_FORBIDDEN,ERR_BATCH_TOO_LARGE, а также собственный запасной вариант SDK-32603для внутренних ошибок) — см.docs/workflow_diagram.md§5.Датакласс
ServerConfigцентрализует каталоги, разрешённые расширения, лимиты пакетов и тайминги наблюдения; каждый путь можно переопределить через переменные окруженияFS_MCP_RESUME_DIR/FS_MCP_JD_DIR/FS_MCP_REPORT_DIR, а каждый доступ к файлу изолируется с помощью_safe_join()от обхода пути.
Проверьте обработчики напрямую (клиент не нужен):
python mcp_servers/filesystem_mcp_server.py --selftestЧасть B — matching_agent.py
Все прямые вызовы
os.listdir/open()удалены. При запуске агент создаётMultiServerMCPClient, указывающий на два MCP-сервера, и обнаруживает их инструменты во время выполнения — ни один инструмент не импортируется жёстко.Каждый узел LangGraph вызывает MCP-инструменты вместо локальных функций:
Узел
Используемый MCP-инструмент
parse_jdfilesystem.list_resumesextract_requirements(LLM или эвристический запасной вариант, если нет API-ключа)
search_resumesrag.search_resumesrank_candidatesfilesystem.batch_process(1 вызов, а не N)generate_reportfilesystem.save_reportБонус multi-MCP:
search_resumesи всё, что связано с файловой системой, поступают из двух независимых процессов/сессий stdio-сервера, что доказывает: агент не привязан к одному MCP-серверу.Если
ANTHROPIC_API_KEYне задан,extract_requirementsиспользует запасной парсер описаний вакансий на основе регулярных выражений, так что весь конвейер по-прежнему работает от начала до конца без доступа к сети (полезно для оценки/CI).
Запуск:
export ANTHROPIC_API_KEY=sk-... # optional; heuristic fallback works without it
python matching_agent.py --jd sample_jd.txtДиаграммы
См. docs/workflow_diagram.md для:
Системная архитектура (агент + 2 MCP-сервера)
Конечный автомат агента
Диаграмма последовательности JSON-RPC 2.0 для
batch_processДиаграмма последовательности для пути ошибок
Таблица справочника кодов ошибок
Тесты
tests/test_scenarios.py — 7 сценариев, запускаются напрямую или через pytest:
python tests/test_scenarios.py
# or
python -m pytest tests/test_scenarios.py -vtest_discovery— рукопожатие JSON-RPC +tools/list+resources/listtest_resource_read—resources/readдляresume://cand_001.txttest_error_handling_not_found— чтение отсутствующего резюме возвращает корректный результат JSON-RPC сisError=truetest_error_handling_invalid_batch— пустойcandidate_idsотклоняетсяtest_batch_process_efficiency— все резюме обрабатываются за 1 вызовtest_watch_directory_detects_new_file— файл, созданный во время наблюдения, обнаруживается и сообщаетсяtest_multi_mcp_via_agent— полный запуск LangGraph, извлекающий инструменты с обоих MCP-серверов и создающий сохранённый отчёт
Все 7 в настоящее время проходят в этом окружении.
Настройка
pip install -r requirements.txtДемонстрационное видео
Я не могу записать или отрендерить реальный видеофайл в этом окружении. Запуск tests/test_scenarios.py и matching_agent.py выше — это точные последовательности для записи: запишите экран python tests/test_scenarios.py, а затем python matching_agent.py --jd sample_jd.txt с помощью, например, OBS, QuickTime или Loom для 5–6-минутного видео для сдачи. Предлагаемые моменты для озвучки: (1) покажите filesystem_mcp_server.py --selftest, (2) покажите необработанный цикл JSON-RPC через stdio, (3) пройдитесь по docs/workflow_diagram.md, (4) запустите matching_agent.py и прокомментируйте каждый вызов MCP в журнале рассуждений, (5) откройте сгенерированный reports/match_report.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browse and manage files in your Moxt AI workspace from any MCP client.
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Document processing over MCP: merge, split and compress PDFs, run OCR, extract document text.
Sandboxes, storage, secrets, queues, timers, locks, inboxes and run ledger for AI bots. One MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables file system operations (read, write, list, search, watch, batch process) via MCP over JSON-RPC 2.0, used by a resume matching agent.-
- FlicenseAqualityDmaintenanceEnables accessing and managing files from configured folders with filtering and size limits, allowing listing, reading, and searching files via MCP tools and resources.3-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with a sandboxed filesystem via MCP tools for reading, writing, searching, and monitoring files, including batch processing and resource discovery for resume management.-
- FlicenseNot gradedqualityCmaintenanceProvides MCP tools for reading, listing, writing, searching, watching, and batch-processing files, enabling automated file management and resume matching workflows.-