MCP Filesystem Assistant
An AI-powered file manager that enables natural language filesystem operations including reading, writing, organizing, and managing files within a secure sandboxed workspace through a web interface.
README
šļø MCP Filesystem Assistant
A beautiful AI-powered file manager built with Model Context Protocol (MCP), featuring a modern web interface, OpenAI integration, and secure filesystem operations.
šÆ What is This?
An AI assistant that can read, write, and manage your files through natural language. Built on the Model Context Protocol (MCP), it demonstrates how to:
- š¤ Connect AI models to real tools
- š Safely manage files in a sandboxed environment
- šØ Build beautiful interfaces with Streamlit
- š ļø Create production-ready MCP servers
Perfect for learning MCP or building your own AI-powered tools!
⨠Features
š¬ Natural Language Interface
Ask the AI to manage files in plain English:
- "List all files in the workspace"
- "Read notes.txt and summarize it"
- "Create a backup folder and organize my files"
- "Show me details about data.json"
šØ Beautiful Web Interface
- Chat Tab - Talk to the AI assistant
- File Browser - Visual workspace explorer
- Quick Actions - Direct file operations without AI
š ļø 8 Powerful Tools
| Tool | What it does |
|---|---|
read_file |
Read file contents |
write_file |
Create or overwrite files |
append_file |
Add to existing files |
delete_file |
Remove files safely |
list_directory |
Browse folders |
create_directory |
Make new folders |
move_file |
Rename or relocate files |
get_file_info |
Show file details |
š Security First
- All operations sandboxed to
workspace/folder - Path traversal protection
- Input validation on every operation
š Project Structure
filesystem-mcp-project/
āāā host/ # Streamlit web app
ā āāā app.py # Main interface
ā āāā mcp_connector.py # Connects to MCP server
ā āāā ui_components.py # UI styling
ā
āāā server/ # MCP server
ā āāā filesystem_mcp_server.py # 8 filesystem tools
ā āāā config.py # Settings
ā
āāā workspace/ # Your files live here
ā āāā notes.txt
ā āāā data.json
ā
āāā requirements.txt # Python packages
āāā .env.example # Config template
āāā README.md # You are here!
š Quick Start
1. Install
# Clone or download the project
cd filesystem-mcp-project
# Create virtual environment
python -m venv venv
# Activate it
source venv/bin/activate # Mac/Linux
# OR
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
2. Configure
Create a .env file:
OPENAI_API_KEY=sk-your-key-here
Get your OpenAI API key from: https://platform.openai.com/api-keys
3. Run
Terminal 1 - Start MCP Server:
python server/filesystem_mcp_server.py
You should see:
š MCP Server starting...
š Workspace directory: /path/to/workspace
š Server running on http://127.0.0.1:8000
ā
Available tools: 8
Terminal 2 - Launch Web Interface:
streamlit run host/app.py
Browser opens at http://localhost:8501 š
š” Usage Examples
Example 1: List Files
You: "What files are in the workspace?"
AI: Uses list_directory tool
š Directory: .
š notes.txt (1.2 KB)
š data.json (856 bytes)
Example 2: Create File
You: "Create a file called hello.txt with 'Hello World!'"
AI: Uses write_file tool
ā
File written successfully: hello.txt (12 characters)
Example 3: Organize Files
You: "Create a backup folder and move old files into it"
AI: Uses create_directory and move_file tools
ā
Directory created: backup
ā
File moved: old_data.txt ā backup/old_data.txt
šļø How It Works
āāāāāāāāāāāāāāāāāāā
ā You (User) ā
ā Ask questions ā
āāāāāāāāāā¬āāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā Streamlit App ā
ā localhost:8501 ā ā Beautiful web interface
āāāāāāāāāā¬āāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā OpenAI API ā
ā GPT-4 ā ā AI decides which tools to use
āāāāāāāāāā¬āāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā MCP Server ā
ā localhost:8000 ā ā Executes file operations
āāāāāāāāāā¬āāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā workspace/ ā
ā Your Files ā ā Safe sandbox folder
āāāāāāāāāāāāāāāāāāā
š§ Configuration
Basic Settings (.env)
# Required
OPENAI_API_KEY=sk-your-key-here
# Optional (defaults shown)
MCP_SERVER_HOST=127.0.0.1
MCP_SERVER_PORT=8000
Advanced Settings (server/config.py)
# Change workspace location
WORKSPACE_DIR = Path("my_custom_folder")
# Change server port
MCP_SERVER_PORT = 9000
š Troubleshooting
"Server Not Connected"
- Check if MCP server is running (Terminal 1)
- Click "Check Connection" button in sidebar
- Restart both server and Streamlit
"OpenAI API Key Error"
- Make sure
.envfile exists - Check your API key is correct
- Restart Streamlit after updating
.env
"Port Already in Use"
# Kill process on port 8000
lsof -i :8000
kill -9 <PID>
# Or change port in .env
MCP_SERVER_PORT=8001
"File Not Found"
Remember: All paths are relative to workspace/
ā
Correct: read_file("notes.txt")
ā Wrong: read_file("workspace/notes.txt")
ā Wrong: read_file("/absolute/path/file.txt")
š ļø Development
Add a New Tool
Edit server/filesystem_mcp_server.py:
@mcp.tool()
def search_files(query: str) -> str:
"""
Search for files containing text.
Args:
query: Text to search for
Returns:
List of matching files
"""
# Your implementation here
return "Found 3 files matching 'query'"
Restart the server - that's it! The tool is automatically available.
š¤ Contributing
Contributions welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing) - Make your changes
- Test everything works
- Submit a pull request
š Workshop Ready
This project is designed for learning and teaching:
- ā Clear, commented code
- ā Step-by-step setup
- ā Real-world example
- ā Production patterns
- ā Security best practices
Perfect for:
- Learning MCP architecture
- Building AI tools
- Teaching modern Python
- Prototyping ideas
Happy building! š
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.