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 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 Connectors
Hosted Google Ads MCP with OAuth, bounded reads, and prepare/confirm writes.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Discover, hire, and verify real-world physical capability through MCP.
Public MCP server for discovering open jobs. Search, filter, and get application links.
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.
- FlicenseNot gradedqualityDmaintenanceEnables accessing and managing files from configured folders with filtering and size limits, allowing listing, reading, and searching files via MCP tools and resources.
- FlicenseNot gradedqualityBmaintenanceProvides sandboxed file system tools (read, write, search, list, watch) over the Model Context Protocol, enabling resume matching and analysis workflows via an agent.
- FlicenseNot gradedqualityCmaintenanceEnables 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.
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/Sanket08kumbhare/MCP_Recruitment_Project'
If you have feedback or need assistance with the MCP directory API, please join our Discord server