mech.app
Dev Tools

Google Skills: Packaging Product Docs as MCP-Callable Agent Tools

How Google's Skills repo turns Cloud, Firebase, and BigQuery docs into MCP servers. Manifest structure, tool boundaries, and deployment trade-offs.

Source: github.com
Google Skills: Packaging Product Docs as MCP-Callable Agent Tools

Google just open-sourced a repository that shows how a cloud vendor packages domain knowledge for agent consumption. The Skills repo contains MCP servers for Google Cloud, Firebase, BigQuery, and other products. Each skill wraps documentation and best practices into a callable interface that agents can invoke without custom SDK integration.

This is not a new API. It is a structured way to expose existing product knowledge so agents can reason about Google Cloud without hallucinating or requiring developers to manually embed docs in prompts.

What Skills Actually Are

A skill is an MCP server that exposes product documentation, recipes, and architectural guidance as tools. Each skill lives in its own directory with:

  • A Markdown file containing the knowledge base (product features, CLI commands, configuration patterns)
  • A manifest that declares what the skill does and how agents should invoke it
  • Optional code to transform queries into structured responses

The repository includes skills for:

  • Product basics: Gemini API, AlloyDB, BigQuery, Cloud Run, Cloud SQL, Firebase, GKE
  • Recipes: Onboarding flows, authentication patterns, network observability
  • Well-Architected Framework: Security, reliability, cost optimization, operational excellence, performance, sustainability

Each skill is a separate MCP server. You install them via npx skills add google/skills, which suggests a registry-based distribution model where skills are versioned artifacts, not just cloned files.

Manifest Structure and Tool Boundaries

The key design question is what gets exposed as a callable tool versus what stays in context. MCP servers can:

  1. Provide context: Inject documentation into the agent’s prompt so it can reason about the product
  2. Expose tools: Offer callable functions that return structured data or perform actions

Google’s Skills lean toward the first model. The Markdown files are knowledge bases, not imperative APIs. When an agent asks “How do I set up Cloud Run?”, the skill returns relevant sections of the documentation rather than executing a gcloud run deploy command.

This is a deliberate trade-off:

ApproachProsCons
Context injectionNo execution risk, agent retains control, easy to auditToken-heavy, requires agent to parse and synthesize, no validation
Callable toolsStructured output, can validate inputs, lower token costRequires execution boundary, harder to version, security surface

Google chose context injection for most skills because the goal is to help agents reason about Google Cloud, not to automate it. The Well-Architected Framework skills are pure guidance: they return checklists and design principles, not API calls.

Deployment Model

The npx skills add command installs skills locally. This means:

  • Client-side execution: The MCP server runs in the same environment as the agent (your laptop, a CI runner, a cloud function)
  • No hosted service: Google is not running a centralized skill registry or execution layer
  • Agent framework integration: The agent framework (Claude Desktop, LangChain, custom orchestrator) manages the MCP connection

This is a pull model, not a push model. You declare which skills your agent needs, and the framework loads them at runtime. The skills themselves are stateless: they read Markdown files and return text.

The registry-based installation suggests a versioning story, but the repository does not yet expose a schema evolution mechanism. If Google updates the BigQuery Basics skill to add new features, agents that depend on the old schema will see new content without warning. MCP does not have a built-in version negotiation protocol, so you must handle this in your agent’s prompt or tool selection logic.

Example: BigQuery Basics Skill

The BigQuery Basics skill is a single Markdown file with sections on:

  • What BigQuery is and when to use it
  • How to create datasets and tables
  • Query syntax and optimization patterns
  • Cost management and slot allocation

When an agent invokes this skill, the MCP server returns the full Markdown or a filtered subset based on the query. The agent then synthesizes the response into an answer.

Here is how you would wire this into a custom agent:

from mcp import MCPClient

client = MCPClient()
client.add_skill("google/skills/cloud/bigquery-basics")

# Agent asks: "How do I partition a BigQuery table?"
response = client.query_skill(
    skill="bigquery-basics",
    query="table partitioning"
)

# response contains Markdown sections on partitioning strategies
# Agent synthesizes this into a user-facing answer

The skill does not execute queries or create tables. It provides the knowledge an agent needs to generate correct bq commands or SQL statements.

Recipes vs. Product Skills

The repository distinguishes between product skills (BigQuery, Cloud Run) and recipes (onboarding, authentication). Recipes are multi-product workflows that combine several skills.

For example, the Onboarding recipe covers:

  1. Creating a Google Cloud project
  2. Enabling billing
  3. Setting up IAM roles
  4. Installing the gcloud CLI

This is not a single API call. It is a sequence of steps that an agent must orchestrate. The recipe skill provides the checklist and decision tree, but the agent must decide which steps to execute and in what order.

This is where MCP’s statelessness becomes a constraint. The skill cannot track which steps the user has completed or maintain session state across invocations. The agent must handle that in its own state machine.

Security and Observability Gaps

Because skills run client-side, there is no centralized audit log. If an agent queries the Security Well-Architected Framework skill and then misconfigures a firewall rule, you cannot trace the decision back to the skill invocation unless your agent framework logs MCP calls.

You also cannot enforce access control at the skill level. If a skill is installed, any agent in that environment can invoke it. This is fine for documentation skills but risky if skills evolve to include executable tools (e.g., a skill that provisions Cloud Run services).

Google has not yet published guidance on:

  • How to version skills without breaking agents
  • How to audit skill invocations in production
  • How to sandbox skills that perform actions vs. return context

These are open questions for the MCP ecosystem, not just Google’s implementation.

When Skills Make Sense

Skills work well when:

  • Documentation is stable: Product APIs change slowly, so the knowledge base does not churn
  • Agents need broad context: You want the agent to reason about trade-offs, not just execute commands
  • You control the agent environment: You can install skills locally and manage versions

Skills are a poor fit when:

  • You need real-time data: Skills are static Markdown files, not live API wrappers
  • You want execution guarantees: Skills do not validate inputs or enforce constraints
  • You need centralized governance: Client-side execution makes it hard to audit or revoke access

Technical Verdict

Google Skills is a pragmatic way to package product documentation for agent consumption without building custom SDKs. The MCP server model keeps the implementation simple (Markdown files, no execution layer), but it pushes complexity to the agent framework (state management, version handling, observability).

Use this pattern when:

  • You have stable documentation that agents need to reference frequently
  • You want agents to reason about your product, not automate it
  • You can tolerate client-side execution and local skill management

Avoid this pattern when:

  • You need real-time API integration or stateful workflows
  • You require centralized audit logs or access control
  • Your documentation changes frequently and agents need schema evolution guarantees

The repository is under active development, so expect the manifest structure and distribution model to evolve. Watch for how Google handles versioning, observability, and the transition from context injection to callable tools.