Skip to main content
Glama
aserper

RTFD (Read The F*****g Docs)

by aserper

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RTFD_FETCHNoEnable/disable content fetching tools. Set to 'false' to only allow metadata lookups.true
GITHUB_AUTHNoGitHub authentication method: 'token' (use GITHUB_TOKEN only), 'cli' (use gh CLI auth only), 'auto' (try GITHUB_TOKEN, then gh CLI), or 'disabled' (no GitHub access).token
GITHUB_TOKENNoGitHub API token. Highly recommended to increase rate limits (60 -> 5000 requests/hour).
RTFD_CACHE_TTLNoCache time-to-live in seconds (default: 1 week).604800
VERIFIED_BY_PYPINoIf 'true', only allows fetching documentation for packages verified by PyPI.false
RTFD_TRACK_TOKENSNoEnable/disable token usage statistics in tool response metadata.false
RTFD_CACHE_ENABLEDNoEnable/disable caching. Set to 'false' to disable.true

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
search_library_docs

Find docs for a library using PyPI metadata and GitHub repos combined. Returns data in JSON format with token statistics.

get_cache_info

Get information about the current cache usage.

get_cache_entries

Get detailed information about all cached entries.

github_repo_search
        Search for GitHub repositories by keyword or topic.

        USE THIS WHEN: You need to find repositories for a library, framework, or topic.

        BEST FOR: Discovering which repository contains a specific project.
        Returns repository names, descriptions, stars, and URLs - but NOT the code itself.

        To explore code after finding a repo, use:
        - get_repo_tree() to see all files
        - list_repo_contents() to browse directories
        - get_file_content() to read specific files

        Args:
            query: Search keywords (e.g., "machine learning", "web framework")
            limit: Maximum number of results (default 5)
            language: Filter by programming language (default "Python")

        Example: github_repo_search("requests") → Finds psf/requests repository
        
github_code_search
        Search for code snippets across GitHub or within a specific repository.

        USE THIS WHEN: You need to find code examples, function definitions, or usage patterns.

        RETURNS: File paths and locations where code was found - NOT the actual file contents.
        To read the files, use get_file_content() with the returned paths.

        NOTE: Requires authentication - rate limited without GITHUB_TOKEN.

        Args:
            query: Code search query (e.g., "def parse_args", "class HTTPClient")
            repo: Optional repository filter in "owner/repo" format
            limit: Maximum number of results (default 5)

        Example: github_code_search("async def fetch", repo="psf/requests")
        
list_github_packages
        List packages (including GHCR images) for a GitHub user or organization.

        USE THIS WHEN: You want to find Docker images or other packages hosted on GitHub for a specific user/org.
        Note: GitHub does not support global package search; you must provide an owner.

        Args:
            owner: GitHub username or organization name (e.g. "github", "octocat")
            package_type: Type of package to list. Defaults to "container" (GHCR).
                          Options: "container", "npm", "maven", "rubygems", "nuget", "docker" (legacy)

        Returns:
            JSON list of packages with metadata (name, repository, version count, etc.)
        
get_package_versions
        Get versions for a specific GitHub package.

        USE THIS WHEN: You found a package using list_github_packages and want to see available tags/versions.

        Args:
            owner: GitHub username or organization name
            package_type: Type of package (e.g., "container")
            package_name: Name of the package (e.g., "rtfd")

        Returns:
            JSON list of versions/tags.
        
fetch_github_readme
        Fetch README file from a GitHub repository.

        USE THIS WHEN: You need the project overview, quick start, or basic documentation.

        BEST FOR: Getting a high-level understanding of a project.
        The README typically contains installation, usage examples, and project description.

        For deeper code exploration, use:
        - get_repo_tree() to see the complete file structure
        - get_file_content() to read specific source files

        Args:
            repo: Repository in "owner/repo" format (e.g., "psf/requests")
            max_bytes: Maximum content size, default 20KB

        Returns: JSON with README content, size, and metadata

        Example: fetch_github_readme("psf/requests") → Returns the requests README
        
list_repo_contents
        List contents of a directory in a GitHub repository.

        USE THIS WHEN: You need to browse or explore the structure of a repository directory.

        BEST FOR: Discovering what files and folders exist in a specific location.
        Returns names, paths, types (file/dir), sizes for each item.

        Common workflow:
        1. Use github_repo_search() to find the repository
        2. Use get_repo_tree() to see the overall structure
        3. Use list_repo_contents() to browse specific directories
        4. Use get_file_content() to read individual files

        Args:
            repo: Repository in format "owner/repo" (e.g., "psf/requests")
            path: Path to directory (empty string for root, e.g., "src/utils")

        Returns:
            JSON with list of files and directories with metadata

        Example: list_repo_contents("psf/requests", "requests") → Lists files in requests/ directory
        
get_file_content
        Get content of a specific file from a GitHub repository.

        USE THIS WHEN: You need to read the actual source code or contents of a specific file.

        BEST FOR: Examining implementation details, understanding how code works, or reading configuration files.
        Returns the full file content (UTF-8 text only, binary files are rejected).

        Automatically handles:
        - Base64 decoding from GitHub API
        - UTF-8 conversion with safe truncation
        - Binary file detection

        Args:
            repo: Repository in format "owner/repo" (e.g., "psf/requests")
            path: Path to file (e.g., "requests/api.py")
            max_bytes: Maximum content size (default 100KB, increase for large files)

        Returns:
            JSON with file content, size, truncation status, and metadata

        Example: get_file_content("psf/requests", "requests/api.py") → Returns source code of api.py
        
get_repo_tree
        Get the full file tree of a GitHub repository.

        USE THIS WHEN: You need to see the overall structure and organization of a repository.

        BEST FOR: Understanding project layout, finding specific files, or getting a complete directory listing.
        Returns all file paths, types (file/directory), and sizes in a single call.

        Use recursive=True for complete tree (all files in all subdirectories).
        Use recursive=False for just top-level overview (faster, less data).

        After getting the tree, use:
        - get_file_content() to read specific files you identified
        - list_repo_contents() to browse specific directories in detail

        Args:
            repo: Repository in format "owner/repo" (e.g., "psf/requests")
            recursive: Whether to get full tree recursively (default False)
            max_items: Maximum number of items to return (default 1000)

        Returns:
            JSON with complete file tree structure, branch, and count

        Example: get_repo_tree("psf/requests", recursive=True) → Returns complete file listing
        
get_commit_diff
        Get the diff between two commits, branches, or tags in a GitHub repository.

        USE THIS WHEN: You need to see what changed between two versions of code.

        BEST FOR: Analyzing changes, reviewing pull requests (by comparing branches), or checking version differences.
        Returns the raw git diff output.

        Args:
            repo: Repository in format "owner/repo" (e.g., "psf/requests")
            base: Base commit SHA, branch name, or tag (e.g., "main", "v1.0.0", "a1b2c3d")
            head: Head commit SHA, branch name, or tag (e.g., "feature-branch", "v1.1.0", "e5f6g7h")

        Returns:
            JSON with the raw git diff content.

        Example: get_commit_diff("psf/requests", "v2.28.0", "v2.28.1") → Returns diff between versions
        
search_crates
        Search for Rust crates on crates.io by name or keywords.

        USE THIS WHEN: You need to find Rust packages/crates for a specific purpose or library.

        BEST FOR: Discovering which Rust crates exist for a topic or functionality.
        Returns multiple matching crates with names, versions, descriptions, download counts, and URLs.

        After finding a crate, use:
        - crates_metadata() to get detailed information about a specific crate
        - The documentation URL to read full docs (use WebFetch)

        Args:
            query: Search keywords (e.g., "http client", "web framework", "serde")
            limit: Maximum number of results (default 5, max 100)

        Returns:
            JSON with list of matching crates, total results, and metadata

        Example: search_crates("web framework") → Finds actix-web, rocket, axum, etc.
        
crates_metadata
        Get detailed metadata for a specific Rust crate from crates.io.

        USE THIS WHEN: You need comprehensive information about a specific Rust crate.

        RETURNS: Detailed crate metadata including version, URLs, downloads, and license.
        Does NOT include full documentation content.

        The response includes:
        - Crate name, version, description
        - Documentation URL (docs.rs) - can be passed to WebFetch for full API docs
        - Repository URL (usually GitHub) - can be used with GitHub provider
        - Homepage, license, categories, keywords
        - Download statistics, creation/update dates
        - Minimum Rust version required

        Args:
            crate: Crate name (e.g., "serde", "tokio", "actix-web")

        Returns:
            JSON with comprehensive crate metadata

        Example: crates_metadata("serde") → Returns metadata with docs.rs link and GitHub repo
        
npm_metadata
        Get npm package metadata (name, version, URLs, maintainers).

        USE THIS WHEN: You need basic package info, version numbers, or links to external documentation.

        RETURNS: Package metadata ONLY - does NOT include actual documentation content.
        For full documentation, use fetch_npm_docs instead.

        The response includes:
        - Package name, version, description
        - Documentation URL (docs_url/homepage) - can be passed to WebFetch for external docs
        - Repository URL (usually GitHub)
        - License, keywords, maintainers

        Args:
            package: npm package name (e.g., "express", "react", "lodash")

        Example: npm_metadata("express") → Returns metadata with links to expressjs.com
        
fetch_npm_docs
        Fetch actual npm package documentation from npm registry README.

        USE THIS WHEN: You need installation instructions, usage examples, API reference, or quickstart guides.

        BEST FOR: Getting complete, formatted documentation for JavaScript/Node.js packages.
        Better than using curl or WebFetch because it:
        - Automatically extracts relevant sections (Installation, Usage, Examples, API)
        - Prioritizes most useful content sections
        - Already in Markdown format (npm requires Markdown READMEs)

        NOT SUITABLE FOR: External documentation sites (use docs_url from npm_metadata + WebFetch)

        Args:
            package: npm package name (e.g., "express", "react", "axios")
            max_bytes: Maximum content size, default 20KB (increase for large packages)

        Returns:
            JSON with actual documentation content, size, truncation status, version

        Example: fetch_npm_docs("express") → Returns formatted README with installation and usage
        
search_gcp_services
        Search for GCP (Google Cloud Platform) services and documentation.

        USE THIS WHEN: You need to find Google Cloud services, APIs, or documentation for a specific GCP topic.

        BEST FOR: Discovering which GCP services exist for a use case or finding service documentation.
        Returns multiple matching services with names, descriptions, API endpoints, and docs URLs.

        Searches:
        1. Local service mapping (exact and partial matches)
        2. cloud.google.com website (fallback for specific queries)
        3. googleapis GitHub repository (API definitions)

        After finding a service, use:
        - fetch_gcp_service_docs() to get full documentation content
        - The docs_url with WebFetch for external documentation

        Note: GitHub API search (fallback) is limited to 60 requests/hour without GITHUB_TOKEN.

        Args:
            query: Service name or keywords (e.g., "storage", "vertex ai", "gke audit", "bigquery")
            limit: Maximum number of results (default 5)

        Returns:
            JSON with list of matching services including name, description, API endpoint, docs URL

        Example: search_gcp_services("vertex ai") → Finds Vertex AI service with docs links
        
fetch_gcp_service_docs
        Fetch actual documentation content for a GCP (Google Cloud Platform) service.

        USE THIS WHEN: You need detailed documentation, guides, tutorials, or API reference for a GCP service.

        BEST FOR: Getting complete documentation with setup instructions, usage examples, and API details.
        Better than using curl or WebFetch because it:
        - Automatically extracts relevant content from cloud.google.com
        - Converts HTML to clean Markdown format
        - Prioritizes important sections (Overview, Quickstart, API Reference)
        - Removes navigation, ads, and other non-content elements
        - Handles multi-word service names (e.g., "gke audit policy")

        Works with:
        - Exact service names (e.g., "Cloud Storage", "Compute Engine")
        - Common abbreviations (e.g., "GCS", "GKE", "BigQuery")
        - Multi-word queries (e.g., "gke audit policy configuration")

        Args:
            service: Service name or topic (e.g., "Cloud Storage", "vertex ai", "gke audit")
            max_bytes: Maximum content size, default 20KB (increase for comprehensive docs)

        Returns:
            JSON with documentation content, size, source URL, truncation status

        Example: fetch_gcp_service_docs("vertex ai") → Returns formatted documentation from cloud.google.com
        
pypi_metadata
        Get Python package metadata from PyPI (name, version, URLs, summary).

        USE THIS WHEN: You need basic package info, version numbers, or links to external documentation.

        RETURNS: Package metadata ONLY - does NOT include actual documentation content.
        For full documentation, use fetch_pypi_docs instead.

        The response includes:
        - Package name, version, summary
        - Documentation URL (docs_url) - can be passed to WebFetch for external docs
        - Project URLs (homepage, repository, etc.)

        Args:
            package: PyPI package name (e.g., "requests", "flask", "django")
            ignore_verification: Skip PyPI verification check if VERIFIED_BY_PYPI is enabled

        Example: pypi_metadata("requests") → Returns metadata with docs_url pointing to readthedocs
        
fetch_pypi_docs
        Fetch actual Python package documentation from PyPI README/description.

        USE THIS WHEN: You need installation instructions, usage examples, API reference, or quickstart guides.

        BEST FOR: Getting complete, formatted documentation for Python packages.
        Better than using curl or WebFetch because it:
        - Automatically extracts relevant sections (Installation, Usage, Examples)
        - Converts reStructuredText to Markdown
        - Prioritizes most useful content sections
        - Falls back to GitHub README if PyPI description is minimal

        NOT SUITABLE FOR: External documentation sites (use docs_url from pypi_metadata + WebFetch)

        Args:
            package: PyPI package name (e.g., "requests", "numpy", "pandas")
            max_bytes: Maximum content size, default 20KB (increase for large packages)
            ignore_verification: Skip PyPI verification check if VERIFIED_BY_PYPI is enabled

        Returns: JSON with actual documentation content, size, truncation status

        Example: fetch_pypi_docs("requests") → Returns formatted README with installation and usage
        
zig_docs
        Search Zig programming language documentation.

        USE THIS WHEN: You need information about Zig language features, syntax, stdlib, or concepts.

        BEST FOR: Learning Zig language specifics and finding relevant documentation sections.
        Searches the official Zig documentation (ziglang.org/documentation/master/) and returns
        matching sections with titles, summaries, and relevance scores.

        Good for queries about:
        - Language features (e.g., "comptime", "async", "optionals")
        - Standard library (e.g., "ArrayList", "HashMap", "allocators")
        - Memory management (e.g., "allocator", "defer", "errdefer")
        - Error handling (e.g., "error sets", "try", "catch")
        - Build system (e.g., "build.zig", "zig build")

        NOT SUITABLE FOR: Third-party Zig packages (use GitHub provider for that)

        Args:
            query: Search keywords (e.g., "comptime", "async", "ArrayList", "error handling")

        Returns:
            JSON with matching documentation sections, relevance scores, and source URL

        Example: zig_docs("comptime") → Returns sections about compile-time code execution
        
godocs_metadata
        Get Go package metadata from godocs.io (name, summary, URLs).

        USE THIS WHEN: You need basic package info or links to documentation sites.

        RETURNS: Package metadata ONLY - does NOT include actual documentation content.
        For full documentation, use fetch_godocs_docs instead.

        The response includes:
        - Package name and summary/description
        - godocs.io URL
        - pkg.go.dev source URL

        Args:
            package: Go package path (e.g., "github.com/gin-gonic/gin", "golang.org/x/tools")

        Example: godocs_metadata("github.com/gin-gonic/gin") → Returns metadata with summary
        
fetch_godocs_docs
        Fetch actual Go package documentation from godocs.io.

        USE THIS WHEN: You need package overview, function signatures, type definitions, or API reference.

        BEST FOR: Getting complete documentation for Go packages.
        Better than using curl or WebFetch because it:
        - Extracts package overview and descriptions
        - Includes function and type documentation
        - Formats content in readable text format
        - Limits output to avoid overwhelming context

        NOT SUITABLE FOR: Source code (use GitHub provider for that)

        Args:
            package: Go package path (e.g., "github.com/gin-gonic/gin", "golang.org/x/sync")
            max_bytes: Maximum content size, default 20KB (increase for large packages)

        Returns:
            JSON with documentation content, size, truncation status, and source info

        Example: fetch_godocs_docs("github.com/gin-gonic/gin") → Returns overview and API docs
        
search_docker_images
        Search for Docker images on DockerHub by name or keywords.

        USE THIS WHEN: You need to find Docker container images for a specific service, application, or technology.

        BEST FOR: Discovering official and community Docker images.
        Returns multiple matching images with names, descriptions, star counts, pull counts, and whether they're official.

        After finding an image, use:
        - docker_image_metadata() for detailed information
        - fetch_docker_image_docs() for README and usage instructions
        - fetch_dockerfile() to see how the image is built

        Args:
            query: Search query (e.g., "nginx", "postgres", "machine learning", "python")
            limit: Maximum number of results (default 5)

        Returns:
            JSON with list of matching images including name, description, stars, pulls, official status

        Example: search_docker_images("postgres") → Finds official postgres image and alternatives
        
docker_image_metadata
        Get detailed metadata for a specific Docker image from DockerHub.

        USE THIS WHEN: You need comprehensive information about a Docker image (stats, description, tags).

        RETURNS: Image metadata including popularity metrics and description.
        Does NOT include full README documentation.

        The response includes:
        - Image name, namespace, description
        - Star count (popularity)
        - Pull count (total downloads)
        - Last updated timestamp
        - Official/community status

        Args:
            image: Docker image name (e.g., "nginx", "postgres", "username/custom-image")

        Returns:
            JSON with comprehensive image metadata

        Example: docker_image_metadata("nginx") → Returns stars, pulls, description for nginx image
        
fetch_docker_image_docs
        Fetch actual Docker image documentation and README from DockerHub.

        USE THIS WHEN: You need usage instructions, environment variables, volume mounts, or examples.

        BEST FOR: Understanding how to use a Docker image and configure it properly.
        Better than using curl or WebFetch because it:
        - Extracts README content from DockerHub
        - Includes image description and key details
        - Formats content in readable Markdown
        - Prioritizes important sections (Usage, Environment Variables, Examples)

        Typical content includes:
        - How to run the container
        - Available environment variables
        - Volume mount points
        - Port configurations
        - Usage examples and docker-compose snippets

        Args:
            image: Docker image name (e.g., "nginx", "postgres", "redis")
            max_bytes: Maximum content size, default 20KB (increase for detailed docs)

        Returns:
            JSON with README content, size, and source info

        Example: fetch_docker_image_docs("nginx") → Returns README with usage instructions
        
fetch_dockerfile
        Fetch the actual Dockerfile used to build a Docker image.

        USE THIS WHEN: You need to see exactly how an image is built (base image, installed packages, configuration).

        BEST FOR: Understanding image composition, security analysis, or learning how to build similar images.
        Attempts to find Dockerfile link in DockerHub description and fetches from source (usually GitHub).

        Useful for:
        - Seeing what base image is used
        - Identifying installed packages and dependencies
        - Understanding build process and optimizations
        - Security auditing (what's included in the image)
        - Learning Dockerfile best practices from official images

        Note: Not all images have publicly accessible Dockerfiles. Many official images do.

        Args:
            image: Docker image name (e.g., "nginx", "python", "postgres")

        Returns:
            JSON with Dockerfile content, source URL, and metadata (or error if not found)

        Example: fetch_dockerfile("nginx") → Returns Dockerfile from nginx GitHub repository
        

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/aserper/RTFD'

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