Skip to main content
Glama
geneontology

Noctua MCP Server

Official
by geneontology

get_guideline_content

Fetch specific GO-CAM guideline content for biological knowledge representation by providing guideline names from the Noctua MCP Server.

Instructions

Fetch specific GO-CAM guideline content.

Args: guideline_name: Name of guideline file (without .md extension). Use list_guidelines() to see available options.

Returns: Dictionary with guideline content or error message

Examples: # Get a specific guideline content = get_guideline_content("E3_ubiquitin_ligases")

# Get transcription factor guidelines
content = get_guideline_content("DNA-binding_transcription_factor_activity_annotation_guidelines")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
guideline_nameYes

Implementation Reference

  • The handler function for the get_guideline_content MCP tool. It retrieves the content of a specific guideline Markdown file from the local guidelines directory, extracts a description from the first non-empty line, and returns structured data. Includes error handling for missing files and read errors.
    @mcp.tool()
    async def get_guideline_content(guideline_name: str) -> Dict[str, Any]:
        """Fetch specific GO-CAM guideline content.
    
        Args:
            guideline_name: Name of guideline file (without .md extension).
                           Use list_guidelines() to see available options.
    
        Returns:
            Dictionary with guideline content or error message
    
        Examples:
            # Get a specific guideline
            content = get_guideline_content("E3_ubiquitin_ligases")
    
            # Get transcription factor guidelines
            content = get_guideline_content("DNA-binding_transcription_factor_activity_annotation_guidelines")
        """
        file_path = GUIDELINES_DIR / f"{guideline_name}.md"
    
        if not file_path.exists():
            available = _get_available_guidelines()
            return {
                "success": False,
                "error": f"Guideline '{guideline_name}' not found",
                "available_guidelines": available,
                "hint": "Use one of the available guideline names listed above"
            }
    
        try:
            with open(file_path) as f:
                content = f.read()
    
            # Extract first heading as description
            lines = content.split('\n')
            description = ""
            for line in lines:
                if line.strip():
                    description = line.strip('#').strip()
                    break
    
            return {
                "success": True,
                "guideline_name": guideline_name,
                "description": description,
                "content": content,
                "length": len(content)
            }
        except Exception as e:
            return {
                "success": False,
                "error": f"Failed to read guideline: {str(e)}",
                "guideline_name": guideline_name
            }
  • Constant defining the path to the guidelines directory, used by get_guideline_content and related functions to locate guideline files.
    GUIDELINES_DIR = Path(__file__).parent / "guidelines"
  • Helper function that lists the names of available guideline Markdown files in the GUIDELINES_DIR, used in error responses of get_guideline_content.
    def _get_available_guidelines() -> List[str]:
        """Get list of available guideline files."""
        if not GUIDELINES_DIR.exists():
            return []
        return sorted([f.stem for f in GUIDELINES_DIR.glob("*.md")])
  • The @mcp.tool() decorator that registers the get_guideline_content function as an MCP tool.
    @mcp.tool()

Latest Blog Posts

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/geneontology/noctua-mcp'

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