Skip to main content
Glama
longngo192

Google Cloud Docs MCP Server

by longngo192

get_api_reference

Retrieve REST API documentation for Google Cloud services to access endpoints, methods, and parameters for integration development.

Instructions

Get REST API reference documentation for a specific Google Cloud service.

WHEN TO USE: Use this tool when:

  • User needs API endpoints, methods, or parameters

  • User is developing integrations with GCP APIs

  • User asks about REST API for a specific GCP service

  • User needs to know available API resources for a service

INPUT:

  • service (required): GCP service name (compute, storage, bigquery, pubsub, sql, kubernetes, functions, run, iam)

  • resource (optional): Specific API resource (instances, buckets, datasets, topics, etc.)

SUPPORTED SERVICES & RESOURCES:

  • compute: instances, disks, networks, firewalls, images, machineTypes

  • storage: buckets, objects, notifications

  • bigquery: datasets, tables, jobs, routines

  • pubsub: topics, subscriptions, snapshots

  • sql: instances, databases, users, backupRuns

  • kubernetes: clusters, nodePools, operations

  • functions: functions, operations, locations

  • run: services, configurations, routes, revisions

  • iam: roles, serviceAccounts, policies

OUTPUT: Returns JSON with:

  • service: Service name

  • description: Service description

  • apiReferenceUrl: Full URL to API reference

  • availableResources: List of available resources for this service

  • documentation: Actual API documentation content (if available)

EXAMPLE USAGE:

  • Get Compute Engine API overview: service="compute"

  • Get Storage buckets API: service="storage", resource="buckets"

  • Get BigQuery datasets API: service="bigquery", resource="datasets"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serviceYesThe Google Cloud service name (e.g., 'compute', 'storage', 'bigquery', 'pubsub', 'sql', 'kubernetes', 'functions', 'run', 'iam')
resourceNoOptional: Specific API resource (e.g., 'instances', 'buckets', 'datasets', 'topics')

Implementation Reference

  • The handler function that executes the get_api_reference tool. It maps services to API reference paths, fetches documentation using fetchGoogleCloudDoc, and returns structured JSON with API details, resources, and content.
    async function getApiReference(
      service: string,
      resource?: string
    ): Promise<string> {
      const serviceLower = service.toLowerCase();
      const product = GOOGLE_CLOUD_PRODUCTS[serviceLower];
    
      if (!product) {
        return JSON.stringify({
          error: `Unknown service: ${service}`,
          availableServices: Object.keys(GOOGLE_CLOUD_PRODUCTS),
          suggestion:
            'Use "list_google_cloud_products" to see all available services.',
        });
      }
    
      // API reference paths for common services
      const apiPaths: Record<string, { rest: string; resources: string[] }> = {
        compute: {
          rest: "compute/docs/reference/rest/v1",
          resources: [
            "instances",
            "disks",
            "networks",
            "firewalls",
            "images",
            "machineTypes",
          ],
        },
        storage: {
          rest: "storage/docs/json_api/v1",
          resources: ["buckets", "objects", "notifications"],
        },
        bigquery: {
          rest: "bigquery/docs/reference/rest",
          resources: ["datasets", "tables", "jobs", "routines"],
        },
        pubsub: {
          rest: "pubsub/docs/reference/rest",
          resources: ["topics", "subscriptions", "snapshots"],
        },
        sql: {
          rest: "sql/docs/mysql/admin-api/rest/v1",
          resources: ["instances", "databases", "users", "backupRuns"],
        },
        kubernetes: {
          rest: "kubernetes-engine/docs/reference/rest",
          resources: ["clusters", "nodePools", "operations"],
        },
        functions: {
          rest: "functions/docs/reference/rest/v2",
          resources: ["functions", "operations", "locations"],
        },
        run: {
          rest: "run/docs/reference/rest",
          resources: ["services", "configurations", "routes", "revisions"],
        },
        iam: {
          rest: "iam/docs/reference/rest",
          resources: ["roles", "serviceAccounts", "policies"],
        },
      };
    
      const apiInfo = apiPaths[serviceLower];
    
      if (!apiInfo) {
        return JSON.stringify({
          service: product.name,
          docsUrl: `https://cloud.google.com/${product.docsPath}`,
          apiReference: `https://cloud.google.com/${product.docsPath}/reference`,
          note: "API reference path not pre-configured. Try fetching the docs URL directly.",
        });
      }
    
      const apiUrl = resource
        ? `https://cloud.google.com/${apiInfo.rest}/${resource}`
        : `https://cloud.google.com/${apiInfo.rest}`;
    
      // Fetch the actual API reference page
      try {
        const docContent = await fetchGoogleCloudDoc(apiInfo.rest);
        const parsedContent = JSON.parse(docContent);
    
        return JSON.stringify({
          service: product.name,
          description: product.description,
          apiReferenceUrl: apiUrl,
          availableResources: apiInfo.resources,
          selectedResource: resource || "overview",
          documentation: parsedContent,
          usage: resource
            ? `Viewing API reference for ${resource}`
            : `Use "get_api_reference" with a resource parameter to get specific resource documentation. Available: ${apiInfo.resources.join(", ")}`,
        });
      } catch {
        return JSON.stringify({
          service: product.name,
          description: product.description,
          apiReferenceUrl: apiUrl,
          availableResources: apiInfo.resources,
          selectedResource: resource || "overview",
          fetchCommand: `Use fetch_google_cloud_doc with path: "${resource ? `${apiInfo.rest}/${resource}` : apiInfo.rest}"`,
        });
      }
    }
  • The tool registration including name, detailed description, and input schema definition (service required, resource optional) used by the MCP server for listing and validating tool calls.
        name: "get_api_reference",
        description: `Get REST API reference documentation for a specific Google Cloud service.
    
    **WHEN TO USE**: Use this tool when:
    - User needs API endpoints, methods, or parameters
    - User is developing integrations with GCP APIs
    - User asks about REST API for a specific GCP service
    - User needs to know available API resources for a service
    
    **INPUT**:
    - service (required): GCP service name (compute, storage, bigquery, pubsub, sql, kubernetes, functions, run, iam)
    - resource (optional): Specific API resource (instances, buckets, datasets, topics, etc.)
    
    **SUPPORTED SERVICES & RESOURCES**:
    - compute: instances, disks, networks, firewalls, images, machineTypes
    - storage: buckets, objects, notifications
    - bigquery: datasets, tables, jobs, routines
    - pubsub: topics, subscriptions, snapshots
    - sql: instances, databases, users, backupRuns
    - kubernetes: clusters, nodePools, operations
    - functions: functions, operations, locations
    - run: services, configurations, routes, revisions
    - iam: roles, serviceAccounts, policies
    
    **OUTPUT**: Returns JSON with:
    - service: Service name
    - description: Service description
    - apiReferenceUrl: Full URL to API reference
    - availableResources: List of available resources for this service
    - documentation: Actual API documentation content (if available)
    
    **EXAMPLE USAGE**:
    - Get Compute Engine API overview: service="compute"
    - Get Storage buckets API: service="storage", resource="buckets"
    - Get BigQuery datasets API: service="bigquery", resource="datasets"`,
        inputSchema: {
          type: "object" as const,
          properties: {
            service: {
              type: "string",
              description:
                "The Google Cloud service name (e.g., 'compute', 'storage', 'bigquery', 'pubsub', 'sql', 'kubernetes', 'functions', 'run', 'iam')",
            },
            resource: {
              type: "string",
              description:
                "Optional: Specific API resource (e.g., 'instances', 'buckets', 'datasets', 'topics')",
            },
          },
          required: ["service"],
        },
      },
  • src/index.ts:1065-1074 (registration)
    The switch case that handles incoming 'get_api_reference' tool calls, extracts parameters, invokes the handler, and returns the result as MCP content.
    case "get_api_reference": {
      const { service, resource } = args as {
        service: string;
        resource?: string;
      };
      const result = await getApiReference(service, resource);
      return {
        content: [{ type: "text", text: result }],
      };
    }

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/longngo192/gcpdoc-mcp'

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