Skip to main content
Glama

UAB Research Computing Documentation MCP Server

by jgordini

UAB Research Computing Documentation MCP Server

An MCP (Model Context Protocol) server that provides AI assistants with access to the University of Alabama at Birmingham's Research Computing documentation.

Overview

This MCP server allows AI applications like Claude to search and retrieve information from UAB's Research Computing documentation (https://docs.rc.uab.edu), including:

  • Cheaha HPC cluster documentation - High-performance computing resources and usage guides

  • Getting support - Office hours, contact information, and support channels

  • Software and tools - Available applications, modules, and installation guides

  • Storage and data management - Data storage systems, quotas, and best practices

  • Job scheduling (SLURM) - Submitting and managing computational jobs

  • Contributing - How to improve the documentation

Features

The server provides the following tools:

1. search_documentation

Search the UAB Research Computing documentation for relevant content.

Parameters:

  • query (string): Search term or phrase

  • max_results (integer, optional): Maximum results to return (default: 5, max: 10)

Example:

search_documentation("slurm tutorial") search_documentation("gpu computing", max_results=10)

2. get_documentation_page

Retrieve the full content of a specific documentation page.

Parameters:

  • page_path (string): Path to the page (e.g., "getting-started/intro") or full URL

Example:

get_documentation_page("getting-started/intro") get_documentation_page("https://docs.rc.uab.edu/storage/data-management")

3. get_support_info

Get comprehensive support information including office hours, contact methods, and support channels.

Example:

get_support_info()

4. list_documentation_sections

List all main sections and categories in the documentation with descriptions.

Example:

list_documentation_sections()

5. get_cheaha_quick_start

Get quick start information for accessing and using the Cheaha HPC cluster.

Example:

get_cheaha_quick_start()

Installation

Prerequisites

  • Python 3.10 or higher

  • uv package manager (recommended)

Setup

  1. Install uv (if not already installed):

    macOS/Linux:

    curl -LsSf https://astral.sh/uv/install.sh | sh

    Windows:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

    Restart your terminal after installation.

  2. Clone or download this repository:

    cd /path/to/uab-rc-docs-mcp-server
  3. Create virtual environment and install dependencies:

    macOS/Linux:

    uv venv source .venv/bin/activate uv pip install -e .

    Windows:

    uv venv .venv\Scripts\activate uv pip install -e .

Usage

Testing the Server Directly

Run the server directly to test it:

uv run uab_docs_server.py

The server will start and listen for MCP protocol messages on standard input/output.

Using with Claude Desktop

  1. Install Claude Desktop from https://claude.ai/download

  2. Configure Claude Desktop to use this MCP server:

    macOS/Linux: Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

    { "mcpServers": { "uab-research-computing": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/uab-rc-docs-mcp-server", "run", "uab_docs_server.py" ] } } }

    Windows: Edit %APPDATA%\Claude\claude_desktop_config.json:

    { "mcpServers": { "uab-research-computing": { "command": "uv", "args": [ "--directory", "C:\\ABSOLUTE\\PATH\\TO\\uab-rc-docs-mcp-server", "run", "uab_docs_server.py" ] } } }

    Important: Replace /ABSOLUTE/PATH/TO/uab-rc-docs-mcp-server with the actual absolute path to this directory.

  3. Restart Claude Desktop to load the new configuration.

  4. Verify the connection in Claude Desktop:

    • Look for the šŸ”Œ icon in the bottom right

    • Click it to see connected MCP servers

    • "uab-research-computing" should appear in the list

Using with Other MCP Clients

This server follows the standard MCP protocol and can be used with any compatible MCP client. Refer to your client's documentation for configuration instructions.

Popular MCP clients include:

Example Queries

Once connected, you can ask Claude questions like:

  • "Search the UAB Research Computing docs for information about GPU computing"

  • "How do I submit a SLURM job on Cheaha?"

  • "What storage systems are available at UAB Research Computing?"

  • "Show me the quick start guide for Cheaha"

  • "What are the office hours for UAB Research Computing support?"

  • "Find documentation about using Python on Cheaha"

Architecture

This MCP server:

  1. Uses FastMCP - A Python framework that simplifies MCP server development

  2. Searches via GitHub API - Searches the documentation repository on GitHub

  3. Fetches content via HTTP - Retrieves documentation pages directly from the website

  4. Follows MCP best practices:

    • Uses stderr for logging (not stdout, which would corrupt STDIO transport)

    • Provides clear tool descriptions and parameter documentation

    • Handles errors gracefully with informative messages

Development

Running Tests

uv run pytest

Project Structure

uab-rc-docs-mcp-server/ ā”œā”€ā”€ uab_docs_server.py # Main MCP server implementation ā”œā”€ā”€ pyproject.toml # Project configuration and dependencies ā”œā”€ā”€ README.md # This file └── .venv/ # Virtual environment (created during setup)

Adding New Tools

To add a new tool to the server:

  1. Add a new function decorated with @mcp.tool()

  2. Include a comprehensive docstring describing the tool's purpose

  3. Use type hints for all parameters

  4. Return formatted string results

  5. Handle errors gracefully

Example:

@mcp.tool() async def my_new_tool(param1: str, param2: int = 10) -> str: """ Description of what this tool does. Args: param1: Description of param1 param2: Description of param2 (default: 10) Returns: Description of what is returned """ # Implementation here return "Result"

Troubleshooting

Server Not Appearing in Claude Desktop

  1. Check that the path in claude_desktop_config.json is absolute and correct

  2. Ensure uv is in your PATH (run which uv on macOS/Linux or where uv on Windows)

  3. Restart Claude Desktop completely

  4. Check Claude Desktop's logs for errors:

    • macOS: ~/Library/Logs/Claude/

    • Windows: %APPDATA%\Claude\logs\

Connection Errors

  1. Ensure all dependencies are installed: uv pip install -e .

  2. Test the server directly: uv run uab_docs_server.py

  3. Check for firewall or network restrictions

Search Returns No Results

The search tool queries the GitHub API, which has rate limits:

  • Unauthenticated: 60 requests per hour

  • Authenticated: 5,000 requests per hour

For production use, consider adding GitHub API authentication.

Resources

Contributing

To contribute to this MCP server:

  1. Follow the UAB Research Computing documentation contributor guide: https://docs.rc.uab.edu/contributing/contributor_guide/

  2. Submit issues or pull requests to the appropriate repository

  3. Follow Python best practices and maintain compatibility with MCP standards

License

This MCP server is provided for use with UAB Research Computing resources. Please refer to UAB's policies regarding research computing usage.

Support

For questions about:

Acknowledgments

Built by the UAB Research Computing community to make research computing resources more accessible through AI assistance.

-
security - not tested
A
license - permissive license
-
quality - not tested

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/jgordini/rcmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server