MCP NMAP Server

# MATLAB MCP Server This Model Context Protocol (MCP) server provides integration with MATLAB, allowing you to create and execute MATLAB scripts and functions through Claude or other MCP clients. ## Setup Requirements - Python 3.11 (Python 3.13 and 3.12 are not currently supported by MATLAB Engine) - MATLAB R2024a (or compatible version) - uv package manager ## Installation 1. Create and set up the Python environment: ```bash # Pin Python version uv python pin 3.11 # Create virtual environment uv venv # Activate virtual environment source .venv/bin/activate # Install MCP uv add "mcp[cli]" ``` 2. Install MATLAB Engine The MATLAB Engine will be installed automatically when the server first runs, using the MATLAB installation specified in the `MATLAB_PATH` environment variable. ## Directory Structure - `matlab_server.py`: The main MCP server implementation - `matlab_scripts/`: Directory where all MATLAB scripts and functions are saved (created automatically) - `pyproject.toml`: Python project configuration - `.python-version`: Specifies Python version for uv ## Claude Desktop Integration 1. Open your Claude Desktop configuration: ```bash # On macOS code ~/Library/Application\ Support/Claude/claude_desktop_config.json ``` 2. Add the MATLAB server configuration: ```json { "mcpServers": { "matlab": { "command": "uv", "args": [ "--directory", "/absolute/path/to/matlab-mcp", "run", "matlab_server.py" ], "env": { "MATLAB_PATH": "/Applications/MATLAB_R2024a.app" } } } } ``` Make sure to: - Replace `/absolute/path/to/matlab-mcp` with the actual path to your project directory - Verify the `MATLAB_PATH` points to your MATLAB installation - Use absolute paths (not relative) ## Features The server provides several tools: 1. `create_matlab_script`: Create a new MATLAB script file - Scripts are saved in the `matlab_scripts` directory - File names must be valid MATLAB identifiers 2. `create_matlab_function`: Create a new MATLAB function file - Functions are saved in the `matlab_scripts` directory - Must include valid function definition 3. `execute_matlab_script`: Run a MATLAB script and get results - Returns output text, generated figures, and workspace variables - Can pass arguments to scripts 4. `call_matlab_function`: Call a MATLAB function with arguments - Returns function output and any generated figures ## Testing You can test the server using the MCP Inspector: ```bash # Make sure you're in your virtual environment source .venv/bin/activate # Run the inspector MATLAB_PATH=/Applications/MATLAB_R2024a.app mcp dev matlab_server.py ``` Example test script: ```matlab t = 0:0.01:2*pi; y = sin(t); plot(t, y); title('Test Plot'); xlabel('Time'); ylabel('Amplitude'); ``` ## Script Storage - All MATLAB scripts and functions are saved in the `matlab_scripts` directory - This directory is created automatically when the server starts - Files are named `<script_name>.m` or `<function_name>.m` - The directory is in the same location as `matlab_server.py` ## Environment Variables - `MATLAB_PATH`: Path to your MATLAB installation - Default: `/Applications/MATLAB_R2024a.app` - Set in Claude Desktop config or when running directly ## Troubleshooting 1. **MATLAB Engine Installation Fails** - Verify MATLAB_PATH is correct - Try installing engine manually: ```bash cd $MATLAB_PATH/extern/engines/python python setup.py install ``` 2. **Python Version Issues** - Make sure you're using Python 3.11 - Check with: `python --version` - Use `uv python pin 3.11` if needed 3. **Script Execution Errors** - Check the `matlab_scripts` directory exists - Verify script syntax is valid - Look for error messages in MATLAB output ## Updates and Maintenance - Keep your MATLAB installation updated - Update Python packages as needed: `uv pip install --upgrade mcp[cli]` - Check MATLAB engine compatibility when updating Python