@access-mcp/software-discovery
Version:
ACCESS-CI Software Discovery Service MCP server
193 lines (130 loc) • 4.66 kB
Markdown
# Software Discovery MCP Server
MCP server providing software discovery and search capabilities for ACCESS-CI resources.
## Overview
This server enables searching and discovering software packages available across ACCESS-CI compute resources using the Software Discovery Service (SDS) API.
## Tools
### search_software
Search for software packages across ACCESS-CI resources.
**Parameters:**
- `query` (string): Search query for software names or descriptions
- `resource_filter` (string, optional): Filter results by specific resource ID
### list_software_by_resource
List all available software packages for a specific ACCESS-CI resource.
**Parameters:**
- `resource_id` (string): The resource ID (e.g., "expanse.sdsc.access-ci.org", legacy XSEDE format also supported)
- `limit` (number, optional): Maximum number of results (default: 100)
### get_software_details
Get detailed information about a specific software package on a resource.
**Parameters:**
- `software_name` (string): Name of the software package
- `resource_id` (string): The resource ID where the software is installed
### search_software_by_category
Search for software packages by category or domain.
**Parameters:**
- `category` (string): Software category (e.g., "bioinformatics", "chemistry", "physics")
- `resource_filter` (string, optional): Filter by specific resource
## Resources
- `accessci://software-catalog`: Comprehensive catalog of available software across all resources
## Installation
```bash
npm install -g @access-mcp/software-discovery
```
## Configuration
Add to your Claude Desktop configuration:
```json
{
"mcpServers": {
"access-software-discovery": {
"command": "npx",
"args": ["@access-mcp/software-discovery"],
"env": {
"SDS_API_KEY": "your-api-key-here"
}
}
}
}
```
## Environment Variables
- `SDS_API_KEY`: API key for the Software Discovery Service (required)
## Resource ID Compatibility
This server supports both current ACCESS-CI format and legacy XSEDE format resource IDs:
- **Preferred format**: `anvil.purdue.access-ci.org`
- **Legacy XSEDE format**: `anvil.purdue.xsede.org` (automatically converted)
- **Other legacy formats**: `delta.ncsa.illinois.edu` (automatically converted)
## Usage Examples
### 🔍 **Search for Software**
- "Is TensorFlow available on ACCESS-CI resources?"
- "Find all Python packages on Delta"
- "What versions of GROMACS are available?"
### 📦 **Browse by Resource**
- "What software is available on Expanse?"
- "List all bioinformatics tools on Bridges-2"
- "Show me GPU-optimized software on Delta"
### 🏷️ **Category-Based Discovery**
- "Find all chemistry software packages"
- "What machine learning frameworks are available?"
- "Show me computational fluid dynamics tools"
### 📋 **Software Details**
- "Tell me about the PyTorch installation on Delta"
- "What modules do I need to load for VASP on Expanse?"
- "How do I use MATLAB on Anvil?"
## Detailed Usage Examples
### Searching for Specific Software
**Natural Language**: "Is PyTorch available on any ACCESS resources?"
**Tool Call**:
```typescript
const results = await search_software({
query: "PyTorch"
});
```
**Returns**: List of resources with PyTorch installed, including:
- Available versions
- Module names
- Installation paths
- Dependencies
### Listing Software on a Resource
**Natural Language**: "What software is available on Delta?"
**Tool Call**:
```typescript
const software = await list_software_by_resource({
resource_id: "delta.ncsa.access-ci.org",
limit: 50
});
```
**Returns**: Comprehensive software inventory including:
- Application names and versions
- Module load commands
- Software categories
- License information
### Getting Software Details
**Natural Language**: "How do I use GROMACS on Expanse?"
**Tool Call**:
```typescript
const details = await get_software_details({
software_name: "GROMACS",
resource_id: "expanse.sdsc.access-ci.org"
});
```
**Returns**: Detailed usage information:
- Module load commands
- Environment setup
- Example job scripts
- Documentation links
- Performance tips
### Searching by Category
**Natural Language**: "What bioinformatics tools are available?"
**Tool Call**:
```typescript
const biotools = await search_software_by_category({
category: "bioinformatics"
});
```
**Returns**: Category-specific software across all resources:
- Popular packages in the domain
- Resource availability
- Version compatibility
- Community usage statistics
## API Endpoints
This server connects to the ACCESS-CI Software Discovery Service at `https://ara-db.ccs.uky.edu`
## License
MIT