Filesystem MCP Server
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., "@Filesystem MCP Serverbatch process all resumes to compute word counts"
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.
MCP-Based Recruitment Matching System
Converts the Milestone-1 filesystem tools into a real MCP (Model Context Protocol) server and refactors the LangGraph matching agent to consume it (plus a second MCP server) as a client, instead of calling local Python functions directly.
Project layout
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
Part A — filesystem_mcp_server.py
Built on Anthropic's official
mcpPython SDK — a real JSON-RPC 2.0 server over stdio, not a hand-rolled protocol.Exposes the Milestone-1 operations as MCP tools:
list_resumes,read_resume,read_job_description,save_report.Exposes resumes/JDs as MCP resources (
resources/list,resources/read) withresume://<file>andjd://<file>URIs, so any MCP client can browse the pool without knowing tool names.New MCP-specific capabilities:
watch_directory(seconds, target)— polls a folder for up to 120s and reports any files that appeared, for detecting freshly-uploaded resumes.batch_process(candidate_ids, operation)— runsread/word_count/validateacross up to 50 files in one round trip instead of one call per file, and stays resilient (per-file errors collected in anerrors{}map instead of failing the whole batch).
Error handling uses distinct JSON-RPC error codes (
ERR_NOT_FOUND,ERR_INVALID_PARAMS,ERR_FORBIDDEN,ERR_BATCH_TOO_LARGE, plus the SDK's own-32603internal-error fallback) — seedocs/workflow_diagram.md§5.ServerConfigdataclass centralizes directories, allowed extensions, batch limits, and watch timing; every path is overridable viaFS_MCP_RESUME_DIR/FS_MCP_JD_DIR/FS_MCP_REPORT_DIRenv vars, and every file access is sandboxed with_safe_join()against path traversal.
Smoke-test the handlers directly (no client needed):
python mcp_servers/filesystem_mcp_server.py --selftestPart B — matching_agent.py
All direct
os.listdir/open()calls are gone. On startup the agent creates aMultiServerMCPClientpointed at two MCP servers and discovers their tools at runtime — no tool is hard-imported.Each LangGraph node calls MCP tools instead of local functions:
Node
MCP tool used
parse_jdfilesystem.list_resumesextract_requirements(LLM, or heuristic fallback if no API key)
search_resumesrag.search_resumesrank_candidatesfilesystem.batch_process(1 call, not N)generate_reportfilesystem.save_reportBonus multi-MCP:
search_resumesand everything filesystem-related come from two independent stdio server processes/sessions, proving the agent isn't tied to a single MCP server.If
ANTHROPIC_API_KEYisn't set,extract_requirementsfalls back to a regex-based JD parser so the whole pipeline still runs end-to-end without network access (useful for grading/CI).
Run it:
export ANTHROPIC_API_KEY=sk-... # optional; heuristic fallback works without it
python matching_agent.py --jd sample_jd.txtDiagrams
See docs/workflow_diagram.md for:
System architecture (agent + 2 MCP servers)
Agent state machine
JSON-RPC 2.0 sequence diagram for
batch_processError-path sequence diagram
Error code reference table
Tests
tests/test_scenarios.py — 7 scenarios, run directly or via pytest:
python tests/test_scenarios.py
# or
python -m pytest tests/test_scenarios.py -vtest_discovery— JSON-RPC handshake +tools/list+resources/listtest_resource_read—resources/readonresume://cand_001.txttest_error_handling_not_found— reading a missing resume returns a properisError=trueJSON-RPC resulttest_error_handling_invalid_batch— emptycandidate_idsrejectedtest_batch_process_efficiency— all resumes processed in 1 calltest_watch_directory_detects_new_file— a file created mid-watch is detected and reportedtest_multi_mcp_via_agent— full LangGraph run pulling tools from both MCP servers, producing a saved report
All 7 currently pass in this environment.
Setup
pip install -r requirements.txtDemo video
I can't record or render an actual video file in this environment. The
tests/test_scenarios.py run and the matching_agent.py run above are the
exact sequences to capture — screen-record python tests/test_scenarios.py
followed by python matching_agent.py --jd sample_jd.txt with e.g. OBS,
QuickTime, or Loom for the 5–6 minute submission video. Suggested narration
beats: (1) show filesystem_mcp_server.py --selftest, (2) show the raw
stdio JSON-RPC round trip, (3) walk through docs/workflow_diagram.md,
(4) run matching_agent.py and narrate each MCP call in the reasoning log,
(5) open the generated 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