Filesystem MCP Server
Sistema de emparejamiento de reclutamiento basado en MCP
Convierte las herramientas de sistema de archivos del Hito 1 en un servidor MCP (Model Context Protocol) real y refactoriza el agente de emparejamiento LangGraph para consumirlo (más un segundo servidor MCP) como cliente, en lugar de llamar directamente a funciones locales de Python.
Estructura del proyecto
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
Parte A — filesystem_mcp_server.py
Construido sobre el SDK oficial de Python
mcpde Anthropic: un servidor JSON-RPC 2.0 real sobre stdio, no un protocolo hecho a mano.Expone las operaciones del Hito 1 como herramientas MCP:
list_resumes,read_resume,read_job_description,save_report.Expone currículums/descripciones de trabajo como recursos MCP (
resources/list,resources/read) con URIsresume://<file>yjd://<file>, para que cualquier cliente MCP pueda explorar el conjunto sin conocer los nombres de las herramientas.Nuevas capacidades específicas de MCP:
watch_directory(seconds, target)— sondea una carpeta durante hasta 120 s e informa de cualquier archivo que aparezca, para detectar currículums recién subidos.batch_process(candidate_ids, operation)— ejecutaread/word_count/validateen hasta 50 archivos en una sola ida y vuelta en lugar de una llamada por archivo, y permanece resiliente (los errores por archivo se recogen en un mapaerrors{}en lugar de fallar todo el lote).
El manejo de errores utiliza códigos de error JSON-RPC distintos (
ERR_NOT_FOUND,ERR_INVALID_PARAMS,ERR_FORBIDDEN,ERR_BATCH_TOO_LARGE, además del respaldo de error interno-32603del propio SDK); consultedocs/workflow_diagram.md§5.La dataclass
ServerConfigcentraliza directorios, extensiones permitidas, límites de lote y temporización de vigilancia; cada ruta se puede sobrescribir mediante las variables de entornoFS_MCP_RESUME_DIR/FS_MCP_JD_DIR/FS_MCP_REPORT_DIR, y cada acceso a archivos está aislado con_safe_join()contra el recorrido de rutas.
Pruebe los manejadores directamente (sin necesidad de cliente):
python mcp_servers/filesystem_mcp_server.py --selftestParte B — matching_agent.py
Todas las llamadas directas a
os.listdir/open()han desaparecido. Al iniciarse, el agente crea unMultiServerMCPClientapuntando a dos servidores MCP y descubre sus herramientas en tiempo de ejecución; ninguna herramienta se importa de forma fija.Cada nodo de LangGraph llama a herramientas MCP en lugar de funciones locales:
Nodo | Herramienta MCP utilizada |
|
|
| (LLM, o respaldo heurístico si no hay clave API) |
|
|
|
|
|
|
Bonus multi-MCP:
search_resumesy todo lo relacionado con el sistema de archivos provienen de dos procesos/sesiones de servidor stdio independientes, lo que demuestra que el agente no está atado a un único servidor MCP.Si
ANTHROPIC_API_KEYno está configurada,extract_requirementsrecurre a un analizador de descripciones de trabajo basado en expresiones regulares para que todo el flujo siga ejecutándose de extremo a extremo sin acceso a la red (útil para calificación/CI).
Ejecútelo:
export ANTHROPIC_API_KEY=sk-... # optional; heuristic fallback works without it
python matching_agent.py --jd sample_jd.txtDiagramas
Consulte docs/workflow_diagram.md para:
Arquitectura del sistema (agente + 2 servidores MCP)
Máquina de estados del agente
Diagrama de secuencia JSON-RPC 2.0 para
batch_processDiagrama de secuencia de la ruta de errores
Tabla de referencia de códigos de error
Pruebas
tests/test_scenarios.py — 7 escenarios, ejecutar directamente o mediante pytest:
python tests/test_scenarios.py
# or
python -m pytest tests/test_scenarios.py -vtest_discovery— protocolo de enlace JSON-RPC +tools/list+resources/listtest_resource_read—resources/readenresume://cand_001.txttest_error_handling_not_found— leer un currículum inexistente devuelve un resultado JSON-RPC adecuado conisError=truetest_error_handling_invalid_batch— se rechazacandidate_idsvacíotest_batch_process_efficiency— todos los currículums procesados en 1 llamadatest_watch_directory_detects_new_file— se detecta e informa un archivo creado durante la vigilanciatest_multi_mcp_via_agent— ejecución completa de LangGraph que extrae herramientas de ambos servidores MCP y produce un informe guardado
Los 7 pasan actualmente en este entorno.
Configuración
pip install -r requirements.txtVideo de demostración
No puedo grabar ni renderizar un archivo de video real en este entorno. La ejecución de tests/test_scenarios.py y la ejecución de matching_agent.py anteriores son las secuencias exactas a capturar: grabe la pantalla de python tests/test_scenarios.py seguido de python matching_agent.py --jd sample_jd.txt con, por ejemplo, OBS, QuickTime o Loom para el video de entrega de 5 a 6 minutos. Sugerencias para la narración: (1) mostrar filesystem_mcp_server.py --selftest, (2) mostrar el intercambio JSON-RPC sin procesar por stdio, (3) recorrer docs/workflow_diagram.md, (4) ejecutar matching_agent.py y narrar cada llamada MCP en el registro de razonamiento, (5) abrir el informe generado 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