Skip to content
MCP server for XDMoD Charts and Visualizations
MCP server providing charts and visualizations from XDMoD (XD Metrics on Demand) Usage Analytics API endpoints for ACCESS-CI infrastructure. Generate SVG, PNG, and PDF charts, portal links, and advanced research visualizations with NSF Awards integration for comprehensive funding context.
Usage Examples
Explore Available Metrics
"What dimensions are available in XDMoD?"
"Show me all statistics for the Jobs dimension"
"What metrics can I track for Cloud resources?"
Get Usage Data
"Show me total CPU hours for January 2024"
"What was the job count last month?"
"Get me the average wait time data for Q1 2024"
Generate Charts
"Create an SVG chart of CPU hours for the last 30 days"
"Generate a high-resolution PNG chart of job counts for March 2024"
"Show me a PDF chart of resource utilization trends"
Portal Integration
"Give me a direct link to the CPU hours chart in XDMoD"
"Generate a link to view GPU usage by resource in the portal"
"How can I view this data interactively in the portal?"
NSF Integration & Research Analysis
"Show me Dr. Smith's computational usage with their NSF funding context"
"Analyze how NSF award 2138259's funding correlates with actual usage"
"Generate a research profile for University of Illinois combining usage and NSF funding"
"Compare funding allocation versus computational resource consumption"
Installation
bash
npm install -g @access-mcp/xdmod-charts
Add to your Claude Desktop configuration:
json
{
"mcpServers": {
"xdmod-charts": {
"command": "npx",
"args": ["@access-mcp/xdmod-charts"]
}
}
}
Tools
get_dimensions
Get all available dimensions from the XDMoD Usage Tab.
Parameters: None
Returns: List of all dimensions with their IDs, categories, and group-by fields.
get_statistics
Get available statistics for a specific dimension.
Parameters:
dimension_id
(string): The dimension ID (e.g., "Jobs_none")category
(string): The realm/category (e.g., "Jobs")group_by
(string): The group by field (e.g., "none")
Returns: List of statistics available for the specified dimension.
get_chart_data
Get chart data and metadata for a specific statistic.
Parameters:
realm
(string): The realm (e.g., "Jobs")group_by
(string): The group by field (e.g., "none")statistic
(string): The statistic name (e.g., "total_cpu_hours")start_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD formatdataset_type
(string, optional): Dataset type (default: "timeseries")
Returns: Raw chart data including descriptions and metadata.
get_chart_image
Get chart image (SVG, PNG, or PDF) for a specific statistic.
Parameters:
realm
(string): The realm (e.g., "Jobs")group_by
(string): The group by field (e.g., "none")statistic
(string): The statistic name (e.g., "total_cpu_hours")start_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD formatformat
(string, optional): Image format - "svg", "png", or "pdf" (default: "svg"). Note: PNG displays directly in Claude Desktop, SVG returns as data URL and code, PDF returns as downloadable datawidth
(number, optional): Image width in pixels (default: 916)height
(number, optional): Image height in pixels (default: 484)dataset_type
(string, optional): Dataset type (default: "timeseries")
Returns: Chart image data in the requested format.
get_chart_link
Generate a direct link to view the chart in the XDMoD portal.
Parameters:
realm
(string): The realm (e.g., "Jobs", "SUPREMM")group_by
(string): The group by field (e.g., "none", "resource")statistic
(string): The statistic name (e.g., "total_cpu_hours", "gpu_time")
Returns: Direct URL to view the interactive chart in XDMoD. Use the portal's filtering options to narrow down to specific resources, users, or other criteria.
get_nsf_award
Get NSF award details for a specific award number.
Parameters:
award_number
(string): NSF award number (e.g., '2138259')
find_nsf_awards_by_pi
Find NSF awards for a specific Principal Investigator.
Parameters:
pi_name
(string): Principal Investigator name to search forlimit
(number, optional): Maximum number of awards to return (default: 10)
find_nsf_awards_by_personnel
Search NSF awards by Principal Investigator name.
Note: Co-PI and Program Officer searches are not reliable in the NSF API and have been removed.
Parameters:
person_name
(string): Principal Investigator name to search forlimit
(number, optional): Maximum number of awards to return (default: 10)
get_usage_with_nsf_context
Get XDMoD usage data enriched with NSF funding context for a researcher or institution.
Parameters:
researcher_name
(string, optional): Name of researcher to analyzeinstitution_name
(string, optional): Institution to analyzestart_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD formatlimit
(number, optional): Maximum NSF awards to include (default: 10)
Returns: Combined analysis including XDMoD usage metrics and associated NSF funding portfolio
analyze_funding_vs_usage
Compare NSF funding amounts with actual XDMoD computational usage patterns.
Parameters:
nsf_award_number
(string): Specific NSF award number to analyzestart_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD format
Returns: Comparative analysis of funding allocation versus computational resource consumption
institutional_research_profile
Generate a comprehensive research profile combining XDMoD usage patterns with NSF funding for an institution.
Parameters:
institution_name
(string): Institution name to profilestart_date
(string): Start date in YYYY-MM-DD formatend_date
(string): End date in YYYY-MM-DD formatlimit
(number, optional): Maximum NSF awards to include (default: 20)
Returns: Comprehensive institutional profile with funding and usage correlation analysis
debug_auth_status
Check authentication status and debug information.
Parameters: None
Returns: Comprehensive debugging information including:
- API token status and configuration
- Available tools and their authentication requirements
- Troubleshooting guidance for authentication issues
- Environment variable and command-line argument detection
Understanding Realms
XDMoD organizes metrics into different realms that provide different types of data:
Jobs Realm
Basic job accounting and resource usage metrics:
total_cpu_hours
- Total CPU Hoursjob_count
- Number of Jobs Endedavg_cpu_hours
- Average CPU Hours per Jobtotal_waitduration_hours
- Total Wait Duration Hoursavg_waitduration_hours
- Average Wait Duration Hoursmax_processors
- Maximum Processor Counttotal_ace
- ACCESS Credit Equivalents Charged: Totalutilization
- ACCESS CPU Utilization
SUPREMM Realm
Detailed performance analytics and system metrics:
gpu_time
- GPU Hours: Total 🎯avg_percent_gpu_usage
- Avg GPU usage: weighted by GPU hour 🎯wall_time
- CPU Hours: Totalcpu_time_user
- CPU Hours: User: Totalavg_percent_cpu_user
- Avg CPU %: User: weighted by core-houravg_flops_per_core
- Avg: FLOPS: Per Core weighted by core-houravg_memory_per_core
- Avg: Memory: Per Core weighted by core-houravg_ib_rx_bytes
- Avg: InfiniBand rate: Per Node weighted by node-hour
Note: For GPU metrics, always use the SUPREMM realm.
Authentication
No authentication required. The server accesses publicly available system-wide metrics data from XDMoD.
Package: @access-mcp/xdmod-charts
Version: v0.4.0
Main: dist/index.js