VSCode Setup
Configure SkyFi MCP Server with Visual Studio Code for extensible development workflows with satellite imagery integration.
Overview
Visual Studio Code is a popular, extensible code editor with rich ecosystem support. With SkyFi MCP integration, you can access satellite imagery and geospatial tools directly within your familiar VSCode development environment.
What You'll Get
- Rich Extension Ecosystem - Integrate with geospatial extensions
- 21 Satellite & Geo Tools - Full SkyFi + OpenStreetMap toolkit
- Customizable Interface - Adapt to your development workflow
- Debugging Support - Debug geospatial applications with satellite context
Prerequisites
- Visual Studio Code installed (Download here)
- SkyFi MCP Server installed (Installation Guide)
- SkyFi API credentials from your account
- MCP Extension for VSCode (available in marketplace)
Step-by-Step Setup
1. Install MCP Extension
- Open VSCode
- Open Extensions view (
Ctrl/Cmd + Shift + X) - Search for "MCP" or "Model Context Protocol"
- Install the official MCP extension
- Reload VSCode to activate the extension
If the MCP extension isn't available yet in the marketplace, you can install it manually from a .vsix file or use the development version from the MCP repository.
2. Configuration Methods
Choose your preferred configuration approach:
- Global Configuration
- Workspace Configuration
- Dev Container
Global User Settings
Configure SkyFi MCP for all projects globally:
- Open Settings (
Ctrl/Cmd + ,) - Search for "mcp"
- Edit in settings.json:
{
"mcp.servers": {
"skyfi": {
"command": "/full/path/to/your/venv/bin/python",
"args": ["-m", "mcp_skyfi"],
"cwd": "/full/path/to/your/project",
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing",
"OPENWEATHER_API_KEY": "your-openweather-key"
}
}
},
"mcp.trace.server": "verbose",
"mcp.autoStart": true
}
Workspace Settings
Configure SkyFi MCP for specific workspaces:
- Open your project in VSCode
- Create
.vscode/settings.jsonin project root - Add MCP configuration:
{
"mcp.servers": {
"skyfi": {
"command": "python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing",
"OPENWEATHER_API_KEY": "your-openweather-key"
}
}
}
}
With workspace configuration, you can use "command": "python" if your virtual environment is activated in the integrated terminal.
Development Container Setup
Configure SkyFi MCP for containerized development:
{
"name": "SkyFi Geospatial Development",
"image": "python:3.12-slim",
"features": {
"ghcr.io/devcontainers/features/python:1": {
"version": "3.12"
},
"ghcr.io/devcontainers/features/git:1": {}
},
"postCreateCommand": "pip install -e .",
"customizations": {
"vscode": {
"settings": {
"mcp.servers": {
"skyfi": {
"command": "python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "${containerEnv:SKYFI_API_KEY}",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
}
},
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-vscode.mcp-extension"
]
}
},
"containerEnv": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash"
}
}
3. Find Your Python Path
Determine the correct Python executable path:
- macOS/Linux
- Windows
# Virtual environment (recommended)
which python
# System Python
which python3
# From within VSCode integrated terminal
python -c "import sys; print(sys.executable)"
# Using VSCode Python extension
# Open Command Palette (Ctrl/Cmd + Shift + P)
# Type: "Python: Select Interpreter"
# Copy the selected interpreter path
# Find Python executable
where python
# From within VSCode integrated terminal
python -c "import sys; print(sys.executable)"
# Using VSCode Python extension
# Open Command Palette (Ctrl + Shift + P)
# Type: "Python: Select Interpreter"
# Copy the selected interpreter path
4. VSCode Integration Features
Python Extension Integration
{
"mcp.servers": {
"skyfi": {
"command": "${config:python.pythonPath}",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
},
"python.defaultInterpreterPath": "/path/to/your/venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.linting.enabled": true,
"python.formatting.provider": "black"
}
Jupyter Integration
{
"mcp.servers": {
"skyfi": {
"command": "${config:python.pythonPath}",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
},
"jupyter.jupyterServerType": "local",
"jupyter.notebookFileRoot": "${workspaceFolder}",
"mcp.jupyterIntegration": true
}
5. Configuration Examples
Example 1: Data Science Project
{
"mcp.servers": {
"skyfi": {
"command": "/Users/scientist/anaconda3/envs/geoai/bin/python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "researcher@university.edu:research-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing",
"OPENWEATHER_API_KEY": "weather-research-key",
"MCP_LOG_LEVEL": "DEBUG"
}
}
},
"python.defaultInterpreterPath": "/Users/scientist/anaconda3/envs/geoai/bin/python",
"jupyter.jupyterServerType": "local",
"files.associations": {
"*.geojson": "json"
}
}
Example 2: Web Development Project
{
"mcp.servers": {
"skyfi": {
"command": "/home/developer/projects/webapp/venv/bin/python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "webapp@company.com:webapp-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
},
"python.defaultInterpreterPath": "./venv/bin/python",
"typescript.suggest.autoImports": true,
"javascript.suggest.autoImports": true
}
Example 3: Multi-Language Project
{
"mcp.servers": {
"skyfi": {
"command": "python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "multidev@company.com:multi-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
},
"files.associations": {
"*.geojson": "json",
"*.gpx": "xml",
"*.kml": "xml"
},
"emmet.includeLanguages": {
"javascript": "javascriptreact"
}
}
Verification
Test MCP Integration
- Open Command Palette (
Ctrl/Cmd + Shift + P) - Search for "MCP" commands
- Run "MCP: List Tools" or equivalent command
Expected Result: Should show 21 tools (13 SkyFi + 8 OpenStreetMap tools).
Test with VSCode Chat/AI
If you have GitHub Copilot or another AI extension:
Ask your AI assistant: "List all available MCP tools and their categories"
Test in Integrated Terminal
# Test server directly
python -m mcp_skyfi --config-check
# Test tool discovery
python -c "
from mcp_skyfi.servers.main import main_mcp
tools = main_mcp.list_tools()
print(f'Found {len(tools)} tools')
for tool in tools[:5]:
print(f' - {tool.name}')
"
Development Features
Code Completion
With geospatial libraries installed, you'll get enhanced IntelliSense for:
- Geospatial data structures (GeoJSON, Shapely geometries)
- Coordinate systems and projections (EPSG codes)
- Satellite imagery formats (GeoTIFF, COG)
- API integration patterns
Debugging Support
Debug Configuration
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug SkyFi Script",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing",
"MCP_LOG_LEVEL": "DEBUG"
}
},
{
"name": "Debug MCP Server",
"type": "python",
"request": "launch",
"module": "mcp_skyfi",
"console": "integratedTerminal",
"env": {
"SKYFI_API_KEY": "your-email@example.com:your-api-key-hash",
"MCP_LOG_LEVEL": "DEBUG"
}
}
]
}
Task Integration
{
"version": "2.0.0",
"tasks": [
{
"label": "Test SkyFi MCP",
"type": "shell",
"command": "python",
"args": ["-m", "mcp_skyfi", "--config-check"],
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
}
},
{
"label": "Start MCP Server",
"type": "shell",
"command": "python",
"args": ["-m", "mcp_skyfi", "--transport", "stdio"],
"group": "build",
"isBackground": true
}
]
}
Snippets
Create custom snippets for geospatial development:
{
"SkyFi Archive Search": {
"prefix": "skyfi-search",
"body": [
"# Search for satellite imagery",
"result = await mcp_client.call_tool('skyfi_archive_search', {",
" 'aoi': $1,",
" 'start_date': '$2',",
" 'end_date': '$3',",
" 'cloud_cover_max': $4",
"})",
"print(f'Found {len(result)} images')"
],
"description": "SkyFi archive search template"
},
"OSM Geocoding": {
"prefix": "osm-geocode",
"body": [
"# Geocode address",
"result = await mcp_client.call_tool('osm_forward_geocode', {",
" 'query': '$1'",
"})",
"lat, lon = result['latitude'], result['longitude']",
"print(f'Coordinates: {lat}, {lon}')"
],
"description": "OSM geocoding template"
}
}
Extensions Integration
Recommended Extensions
For optimal geospatial development with SkyFi MCP:
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-vscode.mcp-extension",
"ms-vscode.hexeditor",
"randomfractalsinc.geo-data-viewer",
"ms-vscode-remote.remote-containers",
"github.copilot",
"ms-vscode.vscode-json"
]
}
Extension-Specific Configuration
Geo Data Viewer Extension
{
"geoDataViewer.maxFileSize": "100MB",
"geoDataViewer.defaultMap": "satellite",
"mcp.geoDataIntegration": true
}
Jupyter Extension
{
"jupyter.askForKernelRestart": false,
"jupyter.interactiveWindowMode": "perFile",
"mcp.jupyter.autoInjectTools": true,
"mcp.jupyter.showToolsInAutocomplete": true
}
Advanced Configuration
Multi-Root Workspace
{
"folders": [
{
"name": "Frontend",
"path": "./frontend"
},
{
"name": "Backend",
"path": "./backend"
},
{
"name": "Data Analysis",
"path": "./analysis"
}
],
"settings": {
"mcp.servers": {
"skyfi": {
"command": "python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "multiproject@company.com:key-hash",
"SKYFI_URL": "https://app.skyfi.com/platform-api/pricing"
}
}
}
}
}
Performance Optimization
{
"mcp.servers": {
"skyfi": {
"command": "python",
"args": ["-m", "mcp_skyfi"],
"env": {
"SKYFI_API_KEY": "your-key",
"MCP_POOL_SIZE": "10",
"MCP_TIMEOUT": "60",
"MCP_CACHE_ENABLED": "true"
}
}
},
"mcp.maxConcurrentRequests": 5,
"mcp.requestTimeout": 30000,
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true,
"**/.venv/**": true
}
}
Troubleshooting
Common Issues
MCP Extension Not Loading
Problem: MCP extension doesn't appear in extensions list Solutions:
- Update VSCode to latest version
- Check if extension is available in marketplace
- Try installing from VSIX file
- Restart VSCode completely
Python Interpreter Issues
Problem: Wrong Python interpreter or environment Solutions:
- Use Command Palette: "Python: Select Interpreter"
- Check
python.defaultInterpreterPathsetting - Verify virtual environment activation
- Use absolute paths in configuration
Tools Not Available
Problem: MCP tools don't appear in IntelliSense or chat Solutions:
- Check MCP server status in status bar
- Verify Python path and working directory
- Test server with
python -m mcp_skyfi --config-check - Check output panel for MCP logs
Slow Performance
Problem: VSCode becomes slow with MCP enabled Solutions:
- Reduce
mcp.maxConcurrentRequests - Increase
mcp.requestTimeout - Enable file watcher exclusions
- Use workspace settings instead of global
Debug Commands
# Test MCP server
python -m mcp_skyfi --config-check
# Test tool discovery
python -c "
from mcp_skyfi.servers.main import main_mcp
tools = main_mcp.list_tools()
print(f'Tools: {len(tools)}')
"
# Check VSCode Python path
code --list-extensions | grep python
VSCode Output Panel
Check the VSCode Output panel for MCP-related logs:
- Open Output panel (
Ctrl/Cmd + Shift + U) - Select "MCP" from dropdown
- Look for connection and error messages
- Check "Python" output for interpreter issues
Development Workflows
Geospatial Data Analysis
- Setup: Create Python environment with geospatial libraries
- Configuration: Configure SkyFi MCP for the project
- Development: Use Jupyter notebooks with MCP integration
- Visualization: Use geo data viewer extensions
- Debugging: Debug scripts with satellite data context
Web Application Development
- Backend: Python/Flask API with SkyFi MCP integration
- Frontend: JavaScript/React with map visualization
- Testing: Test API endpoints with real satellite data
- Deployment: Deploy with environment-specific configurations
Data Science Pipeline
- Data Collection: Use MCP tools to gather satellite imagery
- Processing: Analyze imagery with Python/NumPy/Pandas
- Visualization: Create maps and charts in Jupyter
- Modeling: Build ML models with geospatial features
- Deployment: Deploy models with VSCode Azure extensions
Next Steps
Once VSCode is configured and working:
Start Developing
- Verification Guide - Test your setup
- API Examples (coming soon) - Development patterns
- Best Practices (coming soon) - VSCode optimization
Advanced Features
- Environment Variables (coming soon) - Configuration management
- Authentication Methods (coming soon) - Secure integration
- Performance Tuning (coming soon) - Optimization tips
Resources
- Architecture Overview (coming soon) - System design
- Contributing (coming soon) - Help improve the project
- Tools Reference (coming soon) - Explore all 21 tools
Support
Need help with VSCode setup?
- Troubleshooting Guide (coming soon) - Detailed solutions
- GitHub Issues - Report problems
- Community Discussions - Get help
VSCode with SkyFi MCP gives you the perfect blend of familiar development tools and powerful satellite imagery capabilities. Ideal for developers who want maximum customization and extension integration!