MCP Server¶
The Immunopipe MCP Server is a Model Context Protocol (MCP) server that provides intelligent configuration generation for immunopipe pipelines. It allows AI assistants like Claude to understand and generate complex TOML configuration files for single-cell RNA-seq and TCR/BCR analysis workflows.
Overview¶
The MCP server exposes a comprehensive set of tools for:
- Discovery: List available pipeline options, processes, and Google Batch configurations
- Generation: Create TOML configuration files, templates, and process-specific configs
- Manipulation: Merge, validate, and format configuration files
- AI-Assisted Configuration: Generate configurations from natural language descriptions
Installation¶
The MCP server is included with immunopipe. You can run it directly using:
# Run with stdio transport (for VSCode/Claude integration)
immunopipe mcp --transport stdio
# Run with HTTP transport (for testing)
immunopipe mcp --transport http --port 8000
VSCode Integration¶
To integrate with VSCode and Claude, add the following to your VSCode settings:
{
"mcp": {
"servers": {
"immunopipe": {
"command": "python",
"args": ["-m", "immunopipe.mcp", "--transport", "stdio"]
}
}
}
}
Available Tools¶
Discovery Tools¶
list_pipeline_options
¶
Lists all available pipeline-level configuration options.
Parameters: None
Returns: Dictionary of pipeline options with descriptions, types, defaults, and requirements.
list_processes
¶
Lists all available immunopipe processes.
Parameters: None
Returns: Dictionary of processes with descriptions, environment variables, and requirements.
list_gbatch_options
¶
Lists all Google Batch configuration options.
Parameters: None
Returns: Dictionary of Google Batch options with descriptions, types, and defaults.
get_process_details
¶
Gets detailed information about a specific process.
Parameters:
- process_name
(string): Name of the process to get details for
Returns: Detailed process information including configuration options.
Generation Tools¶
generate_full_config
¶
Generates a complete immunopipe TOML configuration file.
Parameters:
- pipeline_options
(object, optional): Pipeline-level options
- processes
(object, optional): Process configurations
- gbatch_options
(object, optional): Google Batch options
- description
(string, optional): Description for the configuration file
Returns: Complete TOML configuration as a string.
generate_pipeline_config
¶
Generates pipeline-level configuration section.
Parameters:
- options
(object): Pipeline options to include
Returns: Pipeline configuration TOML section.
generate_process_config
¶
Generates configuration for a specific process.
Parameters:
- process_name
(string): Name of the process
- config
(object): Process configuration options
Returns: Process configuration TOML section.
generate_gbatch_config
¶
Generates Google Batch configuration section.
Parameters:
- options
(object): Google Batch options
Returns: Google Batch configuration TOML section.
Template Tools¶
generate_basic_template
¶
Generates a basic immunopipe configuration template.
Parameters: None
Returns: Basic TOML template suitable for standard scRNA-seq analysis.
generate_tcr_template
¶
Generates a template optimized for TCR analysis.
Parameters: None
Returns: TOML template configured for single-cell TCR/BCR analysis.
generate_gbatch_template
¶
Generates a template for Google Batch execution.
Parameters: None
Returns: TOML template configured for cloud execution via Google Batch.
Manipulation Tools¶
merge_configs
¶
Merges two TOML configuration files or strings.
Parameters:
- base_config
(string): Base configuration (TOML string)
- new_config
(string): New configuration to merge (TOML string)
Returns: Merged TOML configuration.
validate_config
¶
Validates a TOML configuration file.
Parameters:
- config_content
(string): TOML configuration content to validate
Returns: Validation results with success status and error messages.
format_config
¶
Formats and enhances a TOML configuration.
Parameters:
- config_content
(string): TOML configuration content to format
- add_comments
(boolean, optional): Whether to add helpful comments
Returns: Formatted TOML configuration with optional comments.
AI-Assisted Tools¶
configure_immunopipe
¶
Generates immunopipe configuration from natural language requirements. This is the most intelligent tool that can understand complex analysis requirements and automatically select appropriate processes.
Parameters:
- requirements
(string): Natural language description of analysis needs
- specific_processes
(array, optional): Specific process names to configure
- parameters
(object, optional): Specific parameter values to set
Examples: - "clustering with resolution 0.5" - "TCR analysis with clustering" - "set SeuratPreparing QC parameters"
Returns: Complete TOML configuration tailored to the requirements.
help_generate_config
¶
Provides configuration suggestions based on natural language descriptions.
Parameters:
- description
(string): Natural language description of analysis goals
Returns: Suggestions and recommended tools for the analysis.
suggest_processes
¶
Suggests processes based on analysis type.
Parameters:
- analysis_type
(string): Type of analysis (e.g., 'tcr', 'bcr', 'clustering', 'differential')
Returns: List of recommended processes for the analysis type.
Usage Examples¶
Basic Usage¶
from immunopipe.mcp.tools import ImmunopipeConfigTools
# Initialize the tools
tools = ImmunopipeConfigTools()
# Generate a basic template
result = await tools.generate_basic_template()
print(result.content)
Natural Language Configuration¶
# Configure immunopipe using natural language
result = await tools.configure_immunopipe(
requirements="I want to analyze single-cell TCR data with clustering resolution 0.8"
)
print(result.content) # Complete TOML configuration
Process Discovery¶
# List available processes
processes = await tools.list_processes()
print(f"Found {len(processes.content)} processes")
# Get details for a specific process
details = await tools.get_process_details("SeuratClustering")
print(details.content)
Configuration Manipulation¶
# Generate base config
base = await tools.generate_basic_template()
# Generate TCR-specific additions
tcr_config = await tools.generate_tcr_template()
# Merge configurations
merged = await tools.merge_configs(base.content, tcr_config.content)
print(merged.content)
Integration with Claude/AI Assistants¶
The MCP server is designed to work seamlessly with AI assistants. With immunopipe
installed,
you can add the MCP server to your Claude or VSCode setup to enable intelligent configuration generation:
claude mcp add --transport http immunopipe-mcp http://localhost:80000
{
"mcp": {
"servers": {
"immunopipe": {
"command": "python",
"args": ["-m", "immunopipe", "mcp", "--transport", "stdio"]
}
}
}
Here are some example prompts that work well:
Configuration Generation¶
- "Generate an immunopipe configuration for TCR analysis"
- "Create a config for single-cell clustering with resolution 0.5"
- "Set up immunopipe for differential expression analysis"
Process Selection¶
- "What processes do I need for BCR analysis?"
- "Suggest processes for clustering analysis"
- "Show me options for Google Batch execution"
Configuration Management¶
- "Validate this immunopipe configuration"
- "Format and add comments to my config file"
- "Merge these two immunopipe configurations"
Architecture¶
The MCP server consists of several key components:
McpServer
: Main server implementation with JSON-RPC over HTTPMCPServer
: Standards-compliant MCP server for VSCode integrationImmunopipeConfigTools
: Core tool collection with hierarchical capabilitiesOptionsDiscovery
: Discovers available configuration options and processesTOMLGenerator
: Generates and manipulates TOML configuration filesProcessDocumentationExtractor
: Extracts process documentation for intelligent configuration
Error Handling¶
The MCP server provides comprehensive error handling:
- Tool Validation: Validates tool parameters and provides helpful error messages
- Configuration Validation: Checks TOML syntax and immunopipe-specific requirements
- Process Discovery: Handles missing or unavailable processes gracefully
- Natural Language Processing: Provides fallback configurations when analysis fails
Development and Testing¶
To test the MCP server locally:
# Run the example demonstration
python -m immunopipe.mcp.example
# Run interactive demo
python -m immunopipe.mcp.example interactive
# Test with HTTP transport
immunopipe mcp --transport http --port 8000
The server includes comprehensive test coverage and example usage patterns to help with development and integration.
Performance¶
The MCP server is optimized for:
- Fast Discovery: Efficient caching of process and option information
- Incremental Configuration: Tools can be chained for complex configurations
- Memory Efficiency: Lazy loading of process documentation
- Scalability: Async/await support for concurrent tool execution
Support and Troubleshooting¶
Common issues and solutions:
- Process Not Found: Ensure immunopipe is properly installed and processes are available
- Configuration Validation Errors: Check TOML syntax and parameter validity
- Natural Language Analysis Failures: Use more specific descriptions or explicit process names
- VSCode Integration Issues: Verify MCP server configuration in VSCode settings
For additional help, open an issue on the GitHub repository.