EliteMCP
Analyzes directory structures with .gitignore awareness and executes Python code in secure sandboxed environments. Combines intelligent codebase analysis with safe code execution for development workflows.
README
Directory Intelligence Tool
A comprehensive toolkit for analyzing directory structures and executing code in secure sandboxes. This project combines intelligent directory analysis with a secure execution environment for Programmatic Tool Calling (PTC).
Project Overview
This project consists of three main components:
- Directory Intelligence Tool - Analyzes directory structures and generates XML representations
- FastMCP Server - Exposes the directory tool as a FastMCP service
- Sandbox Execution Engine - Securely executes Python code with Daytona/Docker backends
Components
1. Directory Intelligence Tool (src/directory_tool.py)
A .gitignore-aware directory structure analyzer that generates XML hierarchies with intelligent summarization for large directories.
Key Features:
- Respects
.gitignorepatterns usingpathspeclibrary - Generates structured XML output with
<dir>,<file>, and<summary>tags - Automatically summarizes directories with more than 50 files
- Handles edge cases: symlink loops, permission errors, malformed .gitignore
- Provides both FastMCP tool interface and command-line usage
Main Function:
def get_codebase_structure(root_path: str = ".", expand_large: bool = False) -> str:
"""Analyze directory structure and return XML representation."""
2. FastMCP Server (src/mcp_server.py)
Exposes the Directory Intelligence Tool as a FastMCP service with HTTP transport.
Key Features:
- Configurable server settings via
config/config.json - Automatic Daytona/Docker backend detection
- HTTP transport for network accessibility
- Comprehensive error handling and logging
- Graceful shutdown handling
Usage:
python src/mcp_server.py
3. Sandbox Execution Engine (src/execute_code.py)
Secure Python code execution environment with Daytona primary backend and Docker fallback.
Key Features:
- Sequential execution with threading locks
- Persistent workspace maintains state between calls
- Dependency installation support
- Complete host filesystem isolation
- Comprehensive error handling
Main Function:
def execute_python(script: str, requirements: List[str] = None) -> Dict[str, Any]:
"""Execute Python code in sandboxed environment."""
4. Development Environment (.devcontainer/devcontainer.json)
Pre-configured development environment with:
- Python 3.11 with required dependencies
- Docker-in-Docker support
- VS Code extensions for Python development
- Port forwarding for FastMCP server
- Reproducible environment setup
5. Test Suite (test/test.py)
Comprehensive test suite covering:
- Basic script execution and output capture
- Persistent workspace behavior
- Error handling and edge cases
- Sequential execution verification
- Dependency installation testing
Installation
Prerequisites
- Python 3.11+
- Either Daytona SDK or Docker SDK (for sandbox execution)
- Git (for directory analysis)
Setup Steps
- Clone the repository:
git clone <repository-url>
cd directory-intelligence-tool
- Install dependencies:
pip install -r requirements.txt
- Optional: Install Daytona SDK for primary sandbox backend:
pip install daytona-sdk
# Configure Daytona API key in environment
export DAYTONA_API_KEY="your-api-key"
- Optional: Install Docker SDK for fallback sandbox backend:
pip install docker
# Ensure Docker daemon is running
Usage
Running the FastMCP Server
python src/mcp_server.py
The server will start and print:
FastMCP server running on 127.0.0.1:8000
Using the Directory Intelligence Tool
As a Python module:
from src.directory_tool import get_codebase_structure
# Analyze current directory
xml_result = get_codebase_structure(".")
print(xml_result)
# Analyze with large directories expanded
xml_result = get_codebase_structure(".", expand_large=True)
print(xml_result)
Command line usage:
python src/directory_tool.py /path/to/analyze --expand-large
Using the Sandbox Execution Engine
from src.execute_code import execute_python
# Simple execution
result = execute_python("""
print("Hello from sandbox!")
for i in range(3):
print(f"Count: {i}")
""")
print(f"Exit code: {result['exit_code']}")
print(f"Output: {result['stdout']}")
# With dependencies
result = execute_python("""
import requests
response = requests.get('https://api.example.com')
print(f'Status: {response.status_code}')
""", requirements=["requests"])
Development Environment
Using VS Code DevContainer:
- Open project in VS Code
- Install DevContainer extension
- Click "Reopen in Container" when prompted
- Environment will be set up automatically
Manual development setup:
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install optional backends
pip install daytona-sdk docker
End-to-End Example
Here's a complete example combining both tools:
import os
import tempfile
from src.directory_tool import get_codebase_structure
from src.execute_code import execute_python
# Step 1: Create a test directory structure
test_dir = tempfile.mkdtemp()
os.makedirs(f"{test_dir}/src")
os.makedirs(f"{test_dir}/tests")
with open(f"{test_dir}/README.md", "w") as f:
f.write("# Test Project\n")
with open(f"{test_dir}/src/app.py", "w") as f:
f.write("print('Hello World')\n")
# Step 2: Analyze the directory structure
print("=== Directory Analysis ===")
xml_structure = get_codebase_structure(test_dir)
print(xml_structure)
# Step 3: Process the structure in sandbox
print("\\n=== Processing in Sandbox ===")
result = execute_python(f"""
import xml.etree.ElementTree as ET
import os
# Parse the XML structure
xml_data = """{xml_structure.replace('"', '\\"')}"""
root = ET.fromstring(xml_data)
# Count directories and files
def count_items(element, depth=0):
dirs = 0
files = 0
for child in element:
if child.tag == 'dir':
dirs += 1
d, f = count_items(child, depth + 1)
dirs += d
files += f
elif child.tag == 'file':
files += 1
return dirs, files
total_dirs, total_files = count_items(root)
print(f"Total directories: {{total_dirs}}")
print(f"Total files: {{total_files}}")
print(f"Total items: {{total_dirs + total_files}}")
""")
print(f"Processing result: {{result['stdout']}}")
# Step 4: Clean up
import shutil
shutil.rmtree(test_dir)
Testing
Run the test suite:
# Using unittest
python -m unittest test.test -v
# Using pytest (if installed)
pytest test/test.py -v
Troubleshooting
Common Issues
-
"No sandbox backend available"
- Install Daytona SDK:
pip install daytona-sdk - Or install Docker SDK:
pip install docker - Ensure Docker daemon is running
- Install Daytona SDK:
-
"FastMCP server won't start"
- Check if port 8000 is already in use
- Verify all dependencies are installed
- Check FastMCP version compatibility
-
"Directory analysis fails"
- Ensure you have read permissions for the target directory
- Check that the path exists and is accessible
- Verify .gitignore file format if present
-
"Tests fail with import errors"
- Ensure PYTHONPATH includes the src directory
- Check that all dependencies are installed
- Verify you're running tests from the project root
Debug Mode
Enable debug logging:
import logging
logging.basicConfig(level=logging.DEBUG)
# Run your code - detailed logs will be shown
Project Structure
directory-intelligence-tool/
├── src/
│ ├── directory_tool.py # Directory analysis tool
│ ├── mcp_server.py # FastMCP server
│ └── execute_code.py # Sandbox execution engine
├── config/
│ └── config.json # Server configuration
├── test/
│ └── test.py # Test suite
├── docs/
│ └── execution_README.md # Sandbox engine documentation
├── .devcontainer/
│ └── devcontainer.json # Development environment
├── requirements.txt # Python dependencies
└── README.md # This file
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run the test suite
- Submit a pull request
License
This project is part of the Directory Intelligence Tool suite.
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.
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.
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.
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.