Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XRootD MCP Serverlist the available production campaigns and recent datasets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
XRootD MCP Server
A Model Context Protocol (MCP) server that provides access to XRootD file systems. This server allows LLMs to interact with XRootD servers to list directories, read file metadata, access file contents, and more.
Features
List directories: Browse XRootD file system hierarchy
File metadata: Get detailed information about files (size, modification time, permissions)
Read file contents: Access file data from XRootD servers with byte-range support
File operations: Check file existence, calculate directory sizes
Search & filtering: Find files by pattern (glob/regex), filter by size/date
Statistics & analytics: Comprehensive directory statistics and usage reports
Campaign discovery: List available production campaigns and datasets
Recent changes: Track newly added files and monitor production progress
ROOT file analysis: Inspect ROOT file structure, extract metadata, analyze events and collections
Dataset aggregation: Aggregate event statistics across multiple ROOT files
Protocol support: Connect to XRootD servers via root:// protocol
Installation
Using Docker (Recommended)
See Docker Usage Guide for detailed instructions.
From Source
Configuration
Set the XRootD server URL using the XROOTD_SERVER environment variable:
Optionally, set a base directory to restrict access and simplify paths:
When XROOTD_BASE_DIR is set:
Relative paths are resolved relative to the base directory
Absolute paths must be within the base directory (access control)
For example, with base
/volatile/eic/EPIC, the pathEVGENrefers to/volatile/eic/EPIC/EVGEN
Caching
Directory listing results are cached for improved performance:
The cache uses a time-based expiration strategy (TTL):
Directory listings are cached in memory
Cache entries expire after the configured TTL
Automatic cleanup removes expired entries every 15 minutes
LRU eviction when cache size exceeds 1000 entries
Note: Cached data may be up to TTL minutes old. For production data that changes infrequently, a 60-minute TTL provides good performance with acceptable staleness.
Usage
With MCP Client
Add to your MCP client configuration:
Available Tools
Basic File Operations:
list_directory: List contents of an XRootD directoryget_file_info: Get detailed metadata about a fileread_file: Read contents of a file (with optional byte range)check_file_exists: Check if a file or directory existsget_directory_size: Calculate total size of a directory
Advanced Search & Analysis:
search_files: Search for files by glob pattern or regexlist_directory_filtered: List directory with advanced filtering (size, date, extension, pattern)find_recent_files: Find files modified within a time periodget_statistics: Get comprehensive statistics about files in a directory
Campaign & Dataset Discovery:
list_campaigns: List available production campaignslist_datasets: List datasets within a specific campaignsummarize_recent_changes: Summarize files added in a time period with detailed statistics
Development
Requirements
Node.js 18 or higher
Access to an XRootD server
xrdfs command-line tool installed (from xrootd-client package)
License
MIT