jschroeder-mips/gyrfalcon_mcp_server
If you are the rightful owner of gyrfalcon_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Gyrfalcon MCP Server for ATLAS Explorer enables seamless integration between Claude Desktop and ATLAS Explorer for AI-powered analysis of processor simulation experiments.
Gyrfalcon MCP Server for ATLAS Explorer
A Model Context Protocol (MCP) server that provides seamless integration between Claude Desktop and ATLAS Explorer, enabling AI-powered analysis of processor simulation experiments.
š Overview
This MCP server allows you to:
- Run ATLAS Explorer experiments directly from Claude Desktop conversations
- Analyze performance data with AI-powered insights
- Compare multiple experiments to identify optimization opportunities
- Get expert recommendations based on processor simulation results
The server wraps the AtlasExplorer Python library and provides structured access to experiment management and performance analysis capabilities.
š Prerequisites
Before getting started, ensure you have:
- Python 3.12+ installed
- UV package manager (recommended) or pip
- ATLAS Explorer API access with valid credentials
- Claude Desktop installed
- ELF files for your workloads (typically in
resources/
directory)
š ļø Installation
Step 1: Clone the Repository
git clone <repository-url>
cd gyrfalcon_mcp_server
Step 2: Set Up Python Environment
Using UV (recommended):
# Install UV if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
Using pip:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Step 3: Configure ATLAS Explorer Credentials
You have two options for configuration:
Option A: Environment Variable (Recommended)
-
Copy the example environment file:
cp env-example .env
-
Edit
.env
and add your ATLAS Explorer credentials:# Required: Your ATLAS Explorer configuration MIPS_ATLAS_CONFIG=your_api_key:your_channel:your_region # Optional: API version override API_EXT_VERSION=0.0.97
Format:
MIPS_ATLAS_CONFIG=apikey:channel:region
apikey
: Your ATLAS Explorer API keychannel
: Usually "development" or "production"region
: AWS region (e.g., "us-west-2")
Option B: ATLAS Explorer Configuration File
Run the interactive configuration:
uv run atlasexplorer/atlasexplorer.py configure
This will create a configuration file at ~/.config/mips/atlaspy/config.json
.
š§ Claude Desktop Configuration
Step 1: Locate Claude Desktop Configuration
Find your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Step 2: Add MCP Server Configuration
Add the Gyrfalcon MCP server to your Claude Desktop configuration:
Option 1: Python Direct (Recommended - Most Reliable)
{
"mcpServers": {
"gyrfalcon": {
"command": "/Users/yourusername/path/to/gyrfalcon_mcp_server/run_mcp_server_python.sh",
"env": {
"MIPS_ATLAS_CONFIG": "your_api_key:your_channel:your_region"
}
}
}
}
Option 2: UV with Path Detection
{
"mcpServers": {
"gyrfalcon": {
"command": "/Users/yourusername/path/to/gyrfalcon_mcp_server/run_mcp_server.sh",
"env": {
"MIPS_ATLAS_CONFIG": "your_api_key:your_channel:your_region"
}
}
}
}
Option 3: Direct UV execution (if UV is in system PATH)
{
"mcpServers": {
"gyrfalcon": {
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/Users/yourusername/path/to/gyrfalcon_mcp_server",
"env": {
"MIPS_ATLAS_CONFIG": "your_api_key:your_channel:your_region"
}
}
}
}
Option 4: Direct Python path (ultimate fallback)
{
"mcpServers": {
"gyrfalcon": {
"command": "/Users/yourusername/path/to/gyrfalcon_mcp_server/.venv/bin/python",
"args": ["server.py"],
"cwd": "/Users/yourusername/path/to/gyrfalcon_mcp_server",
"env": {
"MIPS_ATLAS_CONFIG": "your_api_key:your_channel:your_region"
}
}
}
}
Important:
- Replace
/Users/yourusername/path/to/gyrfalcon_mcp_server/
with the actual path to your installation - Replace
your_api_key:your_channel:your_region
with your actual ATLAS Explorer credentials - Use Option 1 (
run_mcp_server_python.sh
) for the most reliable setup - it bypasses UV path issues entirely
š” Why Python script is recommended: Claude Desktop runs in a restricted environment where UV may not be found in PATH. The Python script uses the virtual environment directly, ensuring reliable startup.
Step 4: Restart Claude Desktop
After saving the configuration, restart Claude Desktop completely for the changes to take effect.
š Directory Structure
Organize your project files as follows:
gyrfalcon_mcp_server/
āāā server.py # Main MCP server
āāā run_mcp_server.sh # Server startup script
āāā pyproject.toml # UV project configuration
āāā requirements.txt # Python dependencies
āāā .env # Environment variables (create from env-example)
āāā README.md # This file
āāā resources/ # ELF workload files
ā āāā mandelbrot_rv64_O0.elf
ā āāā mandelbrot_rv64_O3.elf
ā āāā memcpy_rv64.elf
āāā myexperiments/ # Experiment results (auto-created)
āāā examples/ # Example scripts
āāā ae_singlecore.py
āāā ae_multicore.py
šÆ Usage with Claude Desktop
Once configured, you can use the following capabilities in your Claude Desktop conversations:
Running Experiments
Single-core experiment:
Please run a single-core experiment with the mandelbrot_rv64_O0.elf workload using the I8500_(1_thread) core type.
ā±ļø Timing Note: ATLAS Explorer experiments run on remote simulation hardware and typically take 2-5 minutes to complete. Claude will wait for the experiment to finish before responding with results.
Multi-core experiment:
Run a multi-core experiment with mandelbrot_rv64_O0.elf and memcpy_rv64.elf using the I8500_(2_threads) core.
Analyzing Results
Performance analysis:
Analyze the performance results from my latest experiment and provide insights on the IPC, cache performance, and potential optimizations.
Comparing experiments:
Compare the performance between experiment ABC123 and experiment XYZ789. Which one performed better and why?
Getting Information
List available resources:
What ELF files do I have available for experiments?
List experiments:
Show me all my previous experiments and their status.
š§ Available MCP Tools
The server provides these tools to Claude:
Experiment Execution
run_single_core_experiment()
- Execute single-core experimentsrun_multi_core_experiment()
- Execute multi-core experiments
Analysis & Insights
analyze_experiment_performance()
- Detailed performance analysiscompare_experiments()
- Compare multiple experimentsget_available_resources()
- List available ELF files and experiments
Data Access
atlas-experiments/list
- List all experimentsatlas-experiments/{id}/summary
- Get specific experiment summary
š Troubleshooting
Common Issues
1. "Atlas Explorer configuration not found"
Solution: Ensure MIPS_ATLAS_CONFIG is set in your environment or .env file
Format: export MIPS_ATLAS_CONFIG=apikey:channel:region
2. "ELF file not found"
Solution:
- Check that ELF files are in the resources/ directory
- Use absolute paths or relative paths from the server directory
- Verify file permissions
3. "Command not found: uv"
Solution:
- Install UV: curl -LsSf https://astral.sh/uv/install.sh | sh
- Or use pip installation method instead
- Ensure UV is in your PATH
4. Claude Desktop can't connect to server
Solution:
- Verify the path in claude_desktop_config.json is correct and absolute
- Ensure run_mcp_server.sh is executable (chmod +x run_mcp_server.sh)
- Check that all dependencies are installed (uv sync)
- Restart Claude Desktop after configuration changes
- Check Claude Desktop logs for specific error messages
5. "exec: uv: not found" error
Solution:
- Use Option 1 (Python direct script) to bypass UV path issues entirely
- Or ensure UV is in system PATH: curl -LsSf https://astral.sh/uv/install.sh | sh
- Verify UV installation and path: which uv
- Check UV works: uv --version
6. Permission errors
Solution:
- Ensure write permissions in myexperiments/ directory
- Check file permissions on ELF files
- Run with appropriate user permissions
Debug Mode
Enable verbose logging by setting verbose: true
when calling experiment functions, or by adding debug environment variables:
export ATLAS_DEBUG=1
export MCP_DEBUG=1
Testing the Server
Test the server independently:
# Test server startup
uv run server.py
# Test with example workloads
uv run examples/ae_singlecore.py --elf resources/mandelbrot_rv64_O0.elf
š Example Workflow
Here's a complete example workflow:
-
Start a conversation with Claude Desktop
-
Check available resources:
What ELF files do I have available for experiments?
-
Run an experiment:
Please run a single-core experiment with mandelbrot_rv64_O0.elf using the I8500_(1_thread) core type.
-
Analyze the results:
Analyze the performance of my latest experiment. Focus on IPC, cache hit rates, and any performance bottlenecks you can identify.
-
Compare with optimized version:
Now run the same experiment with mandelbrot_rv64_O3.elf and compare the results. Which optimization level performed better?
-
Get recommendations:
Based on these results, what optimizations would you recommend for improving performance on this workload?
š Security Considerations
- API Keys: Never commit API keys to version control. Use environment variables or configuration files.
- File Access: The server only accesses files in the project directory and subdirectories.
- Network: All communication with ATLAS Explorer uses HTTPS/secure channels.
š¤ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
š License
This project is licensed under the terms specified in the LICENSE file.
š Support
For issues and questions:
- Check the troubleshooting section above
- Review ATLAS Explorer documentation
- Open an issue on the repository
- Contact the development team
š Updates
To update the server:
git pull origin main
uv sync # Update dependencies
# Restart Claude Desktop
Happy experimenting with ATLAS Explorer and Claude! š
MCP Server for AtlasExplorer