filesystem_mcp_server
Provides tools for persisting candidate screening results and querying past candidate history in a SQLite database via the multi-MCP integration.
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_serverList all PDF files in the resumes directory."
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 Integration
Converts the file system tools from the LLM-Powered File System Assistant milestone into a standards-compliant MCP server, and refactors the Agentic Profile Matching LangGraph agent to use those tools through an MCP client instead of a direct Python import.
See state_diagram.md for the full process topology and
LangGraph flow.
Part A — filesystem_mcp_server.py
Built on the official MCP Python SDK (FastMCP), so JSON-RPC 2.0 framing,
capability negotiation, and request/response dispatch come from the SDK; this
file supplies the tool logic, validation, and error semantics.
Tools (the original four, ported from fs_tools.py, plus two new ones):
Tool | Purpose |
| Extract text from |
| List files, optional extension filter |
| Write text, creating parent directories |
| Case-insensitive keyword search with line context |
| New. Polls a directory; first call baselines it, every later call reports files new/modified since the previous call |
| New. Runs |
Resources (discoverable without invoking a tool first):
Resource URI | Returns |
| Every directory the server is allowed to touch |
| Files inside one allowed root |
| One file's content |
Error handling: every tool returns {"success": false, "error_code": "...", "error": "..."} on failure (NOT_FOUND, PERMISSION_DENIED, EMPTY_FILE, FILE_TOO_LARGE, UNSUPPORTED_TYPE, MISSING_DEPENDENCY, INVALID_PATH, INTERNAL_ERROR) instead of a bare exception, so a client can branch on failure type.
Configuration (mcp_config.py, overridable via env vars):
MCP_MAX_FILE_SIZE_BYTES (100 KB), MCP_CONTENT_CHAR_LIMIT (3000),
MCP_SEARCH_MATCH_CAP (10), MCP_BATCH_MAX_FILES (50). Every path a tool
touches is resolved and confined to CONFIG.allowed_roots (this project's
resumes//data/ plus the sibling milestone projects' resume folders) —
new relative to the original fs_tools.py, which trusted its caller; it
matters more once any MCP client can reach the server.
Related MCP server: llm-file-operations-agent
Part B — matching_agent.py
Same LangGraph pipeline as the earlier milestone
(parse_jd → extract_requirements → search_resumes → rank_candidates → generate_report → human_feedback),
but it no longer imports file tools directly. It opens a MultiServerMCPClient
(mcp_client.py) that spawns filesystem_mcp_server.py as a stdio subprocess
and calls its tools for every file operation — loading the resume corpus via
list_files + batch_process, and saving reports via write_file.
Everything else — skill/requirement extraction, scoring, comparison, explanation, interview questions, multi-round screening — is unchanged in-memory logic and needed no MCP involvement.
Bonus: multi-MCP integration
The agent also connects to candidate_db_mcp_server.py, a second MCP server
(SQLite-backed) that persists every ranked candidate's verdict after each
report. Ask the agent history for <candidate name> to query it back through
get_candidate_history. This is deliberately a separate server rather than
more tools on the filesystem server — it owns a different kind of resource
(database rows, not files), and in a real deployment could run on a different
host entirely.
Setup
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txtOptional environment variables (same as the earlier milestone):
$env:USE_EXTERNAL_RAG = "1" # use the ChromaDB index from RAG-Based-Profile-Matching instead of the built-in fallback
$env:USE_GROQ = "1" # Groq-generated interview questions
$env:GROQ_API_KEY = "your_key_here"Running
python matching_agent.pyPaste a job description (blank line to submit). Follow-up queries: compare
candidates, explain rankings, generate interview questions, history for <name>, add must-haves, next round.
You can also run either MCP server standalone for manual inspection:
python filesystem_mcp_server.py
python candidate_db_mcp_server.py
# or, with the MCP Inspector:
mcp dev filesystem_mcp_server.pyTests
python test_scenarios.py9/9 scenarios: the original 7 conversation flows (basic match, natural
language skill filter, compare, explain, refine requirements, multi-round,
interview questions) plus 2 new ones exercising MCP resource discovery /
watch_directory(), and batch_process() combined with the multi-MCP
screening-history round trip.
Project structure
MCP Integration/
├── filesystem_mcp_server.py # Part A — MCP server
├── mcp_config.py # Server configuration (allowed roots, limits)
├── candidate_db_mcp_server.py # Bonus — second MCP server (SQLite)
├── mcp_client.py # MultiServerMCPClient used by the agent
├── matching_agent.py # Part B — LangGraph agent, MCP client
├── test_scenarios.py # 9 test scenarios
├── state_diagram.md # Process topology + LangGraph flow
├── resumes/ # Sample resumes for standalone server testing
├── data/ # Generated: latest_match_report.txt, screening_history.db
└── requirements.txtThis 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 Servers
- AlicenseNot gradedqualityDmaintenanceProvides file system operations (list, read, write, search) via MCP, enabling an AI agent to manage files through natural language.2,013MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language file operations and intelligent file analysis via MCP, supporting CRUD actions and multi-step reasoning for directory management.1
- AlicenseAqualityBmaintenanceProvides LLMs with local filesystem operations (read/write files, list directories) and command execution via MCP, enabling file management and task automation within AI clients.717ISC
- AlicenseNot gradedqualityDmaintenanceExposes file system operations to AI clients via MCP, enabling secure read, write, and management of files and folders.12MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Securely search and manage workspace context files for AI agents and teams.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
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/RAJPUTDEE/MCP-Intergration'
If you have feedback or need assistance with the MCP directory API, please join our Discord server