TealFlowMCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tealflow_agent_guidanceA | Get comprehensive guidance for assisting users with Teal application development. ⚠️ IMPORTANT: This tool MUST be called FIRST whenever a user requests:
This tool provides the complete agent usage guide that includes:
The guidance ensures you:
Usage: Always retrieve this guidance at the start of any Teal-related conversation to ensure you have the latest best practices, workflows, and constraints. Returns: str: Complete agent guidance document in markdown format with all necessary context, workflows, and best practices for assisting with Teal development. Examples: User: "I need to create a survival analysis app" → First action: Call this tool to get guidance → Then follow the workflow in the guidance to assist the user |
| tealflow_list_modulesA | List all available Teal modules with their descriptions and dataset requirements. This tool helps discover what analysis modules are available in the Teal framework. Modules can be filtered by package (clinical vs general) and optionally by category. Clinical modules are designed for clinical trial reporting and work with ADaM datasets. General modules are for general-purpose data exploration and work with any data.frame. Args: package (str, optional): Filter by package - 'clinical', 'general', or 'all'. Defaults to 'all'. category (str, optional): Filter by category like 'graphics', 'tables', 'analysis'. Defaults to None. response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: List of modules with names, descriptions, and required datasets Examples: - List all clinical modules: package="clinical" - List graphics modules: category="graphics" - Get machine-readable list: response_format="json" Note: Use tealflow_get_module_details to see typical datasets and detailed requirements for modules with flexible dataset types. |
| tealflow_get_module_detailsA | Get comprehensive details about a specific Teal module including all parameters and R help documentation. This tool provides complete information about a module's required and optional parameters, their types, default values, descriptions, and official R help documentation. Use this after discovering a module to understand how to configure it properly. Args: module_name (str, required): Name of the module (e.g., 'tm_g_km', 'tm_t_coxreg', 'tm_g_scatterplot'). response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Detailed module information including parameters, datasets, R help, and usage Flexible Dataset Types: - BDS_DATASET: Any BDS-structured dataset (ADLB, ADVS, ADQS, ADEG, ADEX) - BDS_CONTINUOUS: BDS dataset with continuous AVAL (typically ADLB, ADVS, ADQS) - BDS_BINARY: BDS dataset with binary AVAL 0/1 (typically ADRS) - Specific names (ADSL, ADTTE, ADAE): Require exact dataset match Error Handling: - Returns error if module not found - Suggests similar module names for typos - Provides guidance on correct module names - Falls back gracefully if R help is unavailable Examples: - Get details for KM plot: module_name="tm_g_km" - Get Cox regression info: module_name="tm_t_coxreg" - Get ANCOVA details (shows BDS_CONTINUOUS): module_name="tm_t_ancova" - Get JSON format: response_format="json" |
| tealflow_search_modules_by_analysisA | Search for Teal modules that perform a specific type of analysis. This tool helps find appropriate modules when you know what analysis you need but don't know which module to use. It uses structured analysis type categories combined with text search for comprehensive results. Args: analysis_type (str, required): Type of analysis to search for (e.g., 'survival', 'safety', 'efficacy', 'data exploration', 'visualization', 'kaplan-meier', 'forest plot', 'cox regression', 'scatter plot'). response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: List of matching modules organized by relevance Predefined Analysis Categories: Clinical: survival_analysis, safety_analysis, efficacy_analysis, descriptive_analysis, laboratory_analysis, patient_profiles General: data_exploration, statistical_analysis, visualization, data_quality, multivariate_analysis Examples: - Find survival analysis modules: analysis_type="survival" - Find safety modules: analysis_type="safety" - Find visualization modules: analysis_type="visualization" - Find efficacy modules: analysis_type="efficacy" |
| tealflow_check_dataset_requirementsA | Check if required datasets are available for a specific module. This tool validates whether you have all necessary datasets before attempting to use a module. It compares the module's dataset requirements against your available datasets and provides clear feedback. Supports flexible dataset types that match multiple dataset names. IMPORTANT: Before checking compatibility, use tealflow_get_dataset_info to verify that your datasets have the correct structure and data types for the module:
Args: module_name (str, required): Name of the module to check dataset requirements for. available_datasets (list[str], required): List of available dataset names (e.g., ['ADSL', 'ADLB', 'ADVS']). response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Compatibility report with status and missing/matched datasets Flexible Dataset Type Matching: - BDS_DATASET: Matches ADLB, ADVS, ADQS, ADEG, ADEX (any BDS structure) - BDS_CONTINUOUS: Matches ADLB, ADVS, ADQS (BDS with continuous data) - BDS_BINARY: Matches ADRS (BDS with binary outcomes) - Specific names: Must match exactly (ADSL matches ADSL, ADTTE matches ADTTE) Examples: - Check KM plot (specific dataset): module_name="tm_g_km", available_datasets=["ADSL", "ADTTE"] - Check ANCOVA (flexible BDS_CONTINUOUS): module_name="tm_t_ancova", available_datasets=["ADSL", "ADLB"] - Check with custom datasets: module_name="tm_g_km", available_datasets=["ADSL", "ADTTE", "ADLB"] Recommended Workflow: 1. Call tealflow_discover_datasets to find available datasets 2. Call tealflow_get_dataset_info to verify structure and data types 3. Call this tool to check compatibility 4. If compatible and data types verified, proceed with module generation |
| tealflow_list_datasetsA | List available clinical trial datasets in the project. This tool provides information about the standard ADaM datasets available for use with Teal clinical modules. These datasets follow CDISC standards for clinical trial data. Args: response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: List of datasets with descriptions and relationships Examples: - List all datasets: (no parameters needed) - Get JSON format: response_format="json" |
| tealflow_discover_datasetsA | Discover ADaM datasets in a directory. This tool scans a directory for ADaM dataset files, identifies the dataset names, and collects metadata about each dataset. It handles complex filenames with project names, dates, and drug names, and normalizes dataset names to uppercase. IMPORTANT: This tool requires an absolute path to the dataset directory. Relative paths will not work correctly due to MCP server/client working directory differences. Args: data_directory (str): Absolute path to the directory containing dataset files. Example: '/home/user/project/data/' or 'C:\Users\user\project\data'. file_formats (list[str], optional): List of file formats to include (e.g., ['Rds', 'csv']). If None, all supported formats are included. Defaults to None. pattern (str, optional): File pattern to match (default: 'AD*' for ADaM datasets). Defaults to 'AD*'. response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Discovery results with information about found datasets Examples: - Discover datasets with absolute path: data_directory="/home/user/project/workspace/" - Discover with specific format: data_directory="/home/user/data/", file_formats=["Rds"] - Get JSON format: data_directory="/home/user/data/", response_format="json" Common Errors: - FileNotFoundError: Directory not found. Ensure you provide the full absolute path. - Relative paths like "data/" or "workspace/" will not work - use absolute paths. Note: This tool extracts ADaM dataset names from filenames, handling: - Complex filenames (e.g., "project123_ADSL_2024-01-15.Rds" → "ADSL") - Case variations (e.g., "adsl.Rds", "AdTtE.csv" → "ADSL", "ADTTE") - Multiple formats (.Rds, .csv, case-insensitive extensions) |
| tealflow_get_dataset_infoA | Get detailed information about a dataset file including columns, types, and row count. This tool reads a dataset file (.rds or .csv) and returns comprehensive metadata about its structure without loading the entire dataset into memory. It's useful for understanding the contents of a dataset before using it in a Teal application. IMPORTANT: This tool requires an absolute path to the dataset file. Relative paths will not work correctly due to MCP server/client working directory differences. Args: file_path (str): Absolute path to the dataset file (.rds or .csv). Example: '/home/user/data/ADSL.Rds' or 'C:\Users\user\data\ADSL.csv'. include_sample_values (bool, optional): Whether to include sample values (first 5 unique values) for each column. Useful for understanding data content. Defaults to True. response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Dataset information with columns, types, and metadata Column Type Mapping: - For RDS files: R types (integer, numeric, character, logical, category, POSIXct) - For CSV files: Pandas-derived types (integer, numeric, character, logical, datetime) - category: R factors or categorical data - character: String/text data - integer: Whole numbers - numeric: Decimal numbers - logical: Boolean values - POSIXct/datetime: Date and time values Examples: - Get basic info: file_path="/home/user/data/ADSL.Rds" - Get with samples: file_path="/home/user/data/ADSL.Rds", include_sample_values=True - Get JSON format: file_path="/home/user/data/ADSL.csv", response_format="json" Common Errors: - FileNotFoundError: File not found at the specified path - ValueError: Unsupported file format (only .rds and .csv are supported) - ValueError: Invalid or corrupted dataset file Use Cases: - Verify dataset structure before creating Teal app - Understand available columns for module configuration - Check data types to ensure compatibility with module requirements - Inspect sample values to understand data content - Validate dataset after loading from external sources Note: This tool reads only the dataset structure, not the full data, making it efficient even for large datasets. For RDS files, it uses pyreadr. For CSV files, it uses pandas. |
| tealflow_generate_data_loadingA | Generate R code for loading discovered datasets and creating a teal_data object. This tool generates complete R code that loads ADaM datasets from files and creates a teal_data object with appropriate join keys. It's designed to work seamlessly with the output from tealflow_discover_datasets. IMPORTANT: This tool requires the datasets list from tealflow_discover_datasets. Pass the 'datasets_found' array directly to this tool. Path Handling: If datasets are in the project directory, provide project_directory to generate relative paths. Otherwise, absolute paths will be used. Args: datasets (list[dict[str, Any]]): List of dataset dictionaries from discovery. Each dictionary must contain: - name: Dataset name (e.g., "ADSL") - path: Absolute path to dataset file - format: File format ("Rds" or "csv") - is_standard_adam: Whether it's a standard ADaM dataset project_directory (str, optional): Absolute path to the project directory. If provided, dataset paths within this directory will use relative paths. If None or datasets are outside, absolute paths will be used. Defaults to None. response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Generated R code for loading datasets Generated Code Structure: 1. Library import (library(teal)) 2. Dataset loading (readRDS() for .Rds, read.csv() for .csv) 3. teal_data() object creation with all datasets 4. Join keys configuration: - For standard ADaM datasets: Uses default_cdisc_join_keys - For non-standard datasets: Includes warning comments Workflow Integration: 1. Use tealflow_discover_datasets to find datasets 2. Pass the datasets_found array to this tool 3. Save the generated code as data.R in the project root 4. The app template will source this file Examples: - Generate loading code: datasets=[...from discovery...] - Get JSON format: datasets=[...], response_format="json" Note: - Datasets are sorted alphabetically for consistent output - Paths must be absolute (from discovery tool) - Currently supports Rds and csv formats - Extensible design for future format support |
| tealflow_get_app_templateA | Get the Teal application template as a starting point for building apps. This tool returns the base R code template that should be used to start any Teal app. The template includes data loading, configuration variables, and the basic structure for adding Teal modules. Args: response_format (str, optional): Output format - 'markdown' for human-readable or 'json' for machine-readable. Defaults to 'markdown'. Returns: str: Complete R code for the Teal app template Usage: 1. Get the template using this tool 2. Use tealflow_search_modules_by_analysis to find modules for your analysis 3. Use tealflow_generate_module_code to generate code for each module 4. Add generated modules to the modules() section (line 78) 5. Run the app Examples: - Get template in markdown: response_format="markdown" - Get template as JSON: response_format="json" Note: The template uses Flow's standard ADaM datasets (ADSL, ADTTE, ADRS, ADQS, ADAE). Modify the data source if using different datasets. |
| tealflow_generate_module_codeA | Generate R code for adding a module to a Teal application. This tool generates ready-to-use R code for adding a Teal module to your app. It includes all required parameters with sensible defaults based on the module's specifications and Flow's available datasets. IMPORTANT - Check data compatibility first: Before generating code, use tealflow_get_dataset_info to verify: - Required variables exist in datasets (ARM, PARAMCD, AVAL, etc.) - Data types match module requirements (binary vs continuous, numeric vs categorical) - Variable names match expected configuration (ACTARM vs ARM, AVISITN vs AVISIT) - Value ranges are appropriate for the module (0/1 binary vs continuous scale) Args: module_name (str, required): Name of the module to generate code for (e.g., 'tm_g_km', 'tm_t_coxreg', 'tm_g_scatterplot'). parameters (dict[str, Any], optional): Optional parameter overrides as JSON object. Defaults to None. (Not yet implemented) include_comments (bool, optional): Whether to include explanatory comments in the generated code. Defaults to True. Returns: str: Complete R code snippet ready to paste into a Teal app Examples: - Generate KM plot code: module_name="tm_g_km" - Generate Cox regression code: module_name="tm_t_coxreg" - Generate without comments: module_name="tm_g_km", include_comments=False Recommended workflow: 1. Use tealflow_get_dataset_info on relevant datasets 2. Verify variable availability and data types 3. Generate module code with this tool 4. Adjust configuration variables based on dataset inspection results 5. Validate with tealflow_check_shiny_startup Note: Generated code uses Flow's standard dataset configuration. You may need to adjust parameters for your specific use case based on actual dataset structure discovered through tealflow_get_dataset_info. |
| tealflow_check_shiny_startupA | Check if a Shiny app starts without errors. This tool runs the Shiny app file using shiny::runApp() to detect startup errors without keeping the app running or waiting for user interaction. It's useful for validating that a Teal application has been correctly configured before attempting to run it interactively. Args: app_path (str, optional): Path to the Shiny app directory. Defaults to ".". app_filename (str, optional): Name of the app file to run (e.g., 'app.R', 'server.R'). Defaults to "app.R". timeout_seconds (int, optional): Maximum time in seconds to allow the app to start (1-120). Defaults to 15. Returns: str: JSON object with startup validation results Error Types: - missing_package: Required R package is not installed - syntax_error: R syntax error in app.R - object_not_found: Referenced R object does not exist - timeout: App did not start within the specified timeout - file_not_found: app.R file not found at specified path - rscript_not_found: Rscript command not available (R not installed) - connection_error: Network or file connection error - execution_error: Other R execution error Examples: - Check app in current directory: (no parameters needed) - Check app in specific directory: app_path="/path/to/app" - Check specific app file: app_filename="server.R" - Use longer timeout: timeout_seconds=30 Note: This tool does not launch an interactive Shiny session. It only validates that the app can start without immediate errors. The process is terminated once startup is confirmed or an error is detected. |
| tealflow_setup_renv_environmentA | Prepare an R project directory so it is ready to run Teal Shiny applications. This tool initializes an renv environment and installs required packages (shiny, teal, teal.modules.general, teal.modules.clinical). Behavior:
Steps performed:
Args: project_path (str, optional): ABSOLUTE path to the R project directory. MUST be an absolute path (e.g., "/home/user/project" or "C:\Users\user\project"). Relative paths like "." will resolve to the MCP server's directory, not the user's project. Defaults to "." but should always be explicitly provided as an absolute path. response_format (str, optional): Output format - 'json' or 'markdown'. Defaults to 'json'. Returns: str: JSON/markdown with status, steps_completed, message, and logs_excerpt. Error Types: - filesystem_error: Project path does not exist - rscript_not_found: R is not installed or not in PATH - renv_install_failed: Failed to install or initialize renv - package_install_failed: Failed to install required packages Examples: - Setup current directory: (no parameters needed) - Setup specific project: project_path="/path/to/project" |
| tealflow_snapshot_renv_environmentA | Create an renv snapshot of the current R project environment. This tool captures the current state of installed R packages and records them in renv.lock. This creates a reproducible record of your project's dependencies that can be restored later or shared with others. When to use this tool:
Requirements:
Args: project_path (str, optional): ABSOLUTE path to the R project directory. MUST be an absolute path (e.g., "/home/user/project" or "C:\Users\user\project"). Relative paths like "." will resolve to the MCP server's directory, not the user's project. Defaults to "." but should always be explicitly provided as an absolute path. response_format (str, optional): Output format - 'json' or 'markdown'. Defaults to 'json'. Returns: str: JSON/markdown with status, message, and logs_excerpt. Error Types: - filesystem_error: Project path does not exist - rscript_not_found: R is not installed or not in PATH - renv_not_initialized: renv has not been initialized in this project - snapshot_failed: Failed to create renv snapshot - execution_error: Unexpected error during snapshot Examples: - Snapshot current directory: (no parameters needed) - Snapshot specific project: project_path="/path/to/project" - Get markdown output: response_format="markdown" Note: This tool only snapshots packages that are used in your project code. Make sure you have library() calls in global.R or your R scripts for packages you want to include in the snapshot. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Appsilon/TealFlowMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server