Files
Ivan Cheung 8834593806 [ADK Go] Merging all Go docs from the private repo (#885)
* docs: Add Go language quickstart

* updates based on review comments

* fix tab stops

* update based on review comments

* sync with main

* update to tested version

* Added google_search snippet

* Fix: Address Go style guide issues in google_search.go

* Migrated to new API

* Fixed tool info in md file

* Added partial check

* Added function-tools sample

* Migrated to new API

* Added partial check

* Ran linter

* feat: add go fmt check

* Run go fmt only on changed files

* Added google_search snippet

* Fix: Address Go style guide issues in google_search.go

* Migrated to new API

* Added partial check

* Added function-tools sample

* Migrated to new API

* Added partial check

* Ran linter

* feat: add go fmt check

* Run go fmt only on changed files

* Feat: Add Golang example for LLM agents

* Added schema agent

* Added session support

* Migrated to new API

* Added back OutputKey

* Added missing snippets

* Moved snipped to its own package

* Minor cleanup

* Reverted llm-agents.md

* Added back correct changes to llm-agents.md

* Updated to newest API

* Ran linter

* WIP

* WIP: Added the rest of the agents

* Added sequential agent

* Migrated agents to new API

* Fixed snippet tags

* Updated parallel and sequential with OutputKey

* Updated loop agent

* Cleanup

* Fixed and ran linter

* Removed comment

* Ran linter

* Added custom agent snippets

* Migrated to new API

* Fixed incorrect info about channels since run returns an Iterator, not Channel

* Cleanup and renaming

* Ran linter

* Fixed md

* Added multi-agent docs

* Updated to use AgentTool

* Split snippets

* Added missing file

* Ran linter and fixed API

* Added Models snippets

* Migrated to new API

* Embedded imports

* Ran linter

* Added long running tool

* Ran linter and fixed API

* Switched to two-turn style

* Ran linter

* Added callback snippets

* Added back imports

* Added types of callbacks snippets

* feat(go): align callback snippets with other languages

* Ran linter and updated API

* Added tool callbacks

* Added artifact snippets

* Use story.pdf instead of random bytes

* Fixed issue with artifact loading

* Cleanup unneeded fixes

* Added back inadvertently removed GCS section

* Addressed PR comments

* Ran linter

* feat: Added context snippets

* Fixed callback signature

* Fixed additional callbacks

* Added remaining snippets

* Added conceptual runner example

* Removed duplicate code

* Clean up tags and imports

* Updated API

* Twaked text

* Ran linter

* Fixed broken API issues

* Updated to latest Go ADK API

* Added func param info

* Interleaved Py and Go

* Revert mistakes

* Removed extra newline

* Added example cloud run code and update md with Go (#41)

* Added example cloud run code and update md with Go

* Added a2a_agent_url and fixed future tense

* Moved Go before Java

---------

Co-authored-by: ivanmkc <ivanmkc@google.com>

* adding go snippets to runconfig docs

* realigning runconfig go examples with current state of adk-go.

* adding language support tags to individual runtime config fields

* removing unsupported supportcfc go examples

* removing unsupported streamingmode.bidi go snippets

* Added AgentTool examples (#31)

* Added AgentTool example

* Ran formatter

---------

Co-authored-by: ivanmkc <ivanmkc@google.com>

* adding initial go sessions.sessions snippets

* updating go session docs + session examples

* update go session snippets

* updating DatabaseSessionService language support tag

* cleaning up go vertex ai comments

* removing go.mod for session_management_example

* docs: add language support tags for Go

* initial go runtime sample updates

* fixing runtime go snippet formatting

* formatting updates to runtime go snippets

* updating runtime go examples to streamline to newer go features

* adding go snippets for events

* updating go snippets for events

* adding artifactdelta snippet for go

* minor java fixes, cleaning up go event.content

* Custom tools: Merging again  (#44)

* Added missing custom-tools snippets

* Split user_preference runner code

* Split more files

* Tweaks

* Split session into 1 and 2 and added artifact saving

* Fixed conflict

---------

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Fixed tab issue with cloud-run md (#45)

Co-authored-by: ivanmkc <ivanmkc@google.com>

* adding initial go snippets for memory services

* updating go memory sample, adding python formatting in docs to clarify current support.

* removing go replace for memory example

* removing go.sum from memory_example

* fixing go formatting for memory example

* fixing go memory snippets to streamline examples in docs

* removing unnecessary go.mod for memory_example.go and snippet cleanup

* adding go session state snippets."

* adding additional go state examples for state injection

* fixing go formatting

* fixing language ordering on session/state.md; removing unnecessary go.mod files

* reworking error functions in go session state samples

* fixing go formatting on session state samples

* initial go snippets for safety tools

* fixing go snippet formatting in safety/index.md

* temp storing safety example

* cleaning up go snippets in safety docs; deferring safety go full example

* cleaning up go safety snippets

* Added link to Go API docs (#47)

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Added a2a_basic sample (#46)

* Added a2a_basic sample

* Removed dummy LLMs

* Added md

Fix inaccuracies in md

Ran formatter

* Cleaned up index

---------

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Reverted to proper ToC and added missing links (#48)

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Added missing get-started/go.md (#50)

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Added missing JSON tags for Go structs (#51)

* Added json tags

* Added jsonschema and json tags

---------

Co-authored-by: ivanmkc <ivanmkc@google.com>

* Renamed Golang to Go (#52)

Co-authored-by: ivanmkc <ivanmkc@google.com>

---------

Co-authored-by: Joe Fernandez <joefernandez@google.com>
Co-authored-by: ivanmkc <ivanmkc@google.com>
Co-authored-by: Toni Klopfenstein <tklopfenstein@google.com>
2025-11-06 14:13:13 -05:00

7.5 KiB

Model Context Protocol (MCP)

Supported in ADKPythonJavaGo

The Model Context Protocol (MCP) is an open standard designed to standardize how Large Language Models (LLMs) like Gemini and Claude communicate with external applications, data sources, and tools. Think of it as a universal connection mechanism that simplifies how LLMs obtain context, execute actions, and interact with various systems.

How does MCP work?

MCP follows a client-server architecture, defining how data (resources), interactive templates (prompts), and actionable functions (tools) are exposed by an MCP server and consumed by an MCP client (which could be an LLM host application or an AI agent).

MCP Tools in ADK

ADK helps you both use and consume MCP tools in your agents, whether you're trying to build a tool to call an MCP service, or exposing an MCP server for other developers or agents to interact with your tools.

Refer to the MCP Tools documentation for code samples and design patterns that help you use ADK together with MCP servers, including:

  • Using Existing MCP Servers within ADK: An ADK agent can act as an MCP client and use tools provided by external MCP servers.
  • Exposing ADK Tools via an MCP Server: How to build an MCP server that wraps ADK tools, making them accessible to any MCP client.

MCP Toolbox for Databases

MCP Toolbox for Databases is an open-source MCP server that securely exposes your backend data sources as a set of pre-built, production-ready tools for Gen AI agents. It functions as a universal abstraction layer, allowing your ADK agent to securely query, analyze, and retrieve information from a wide array of databases with built-in support.

The MCP Toolbox server includes a comprehensive library of connectors, ensuring that agents can safely interact with your complex data estate.

Supported Data Sources

MCP Toolbox provides out-of-the-box toolsets for the following databases and data platforms:

Google Cloud

Relational & SQL Databases

NoSQL & Key-Value Stores

Graph Databases

  • Neo4j (with tools for Cypher queries and schema inspection)
  • Dgraph

Data Platforms & Federation

  • Looker (for running Looks, queries, and building dashboards via the Looker API)
  • Trino (for running federated queries across multiple sources)

Other

Documentation

Refer to the MCP Toolbox for Databases documentation on how you can use ADK together with the MCP Toolbox for Databases. For getting started with the MCP Toolbox for Databases, a blog post Tutorial : MCP Toolbox for Databases - Exposing Big Query Datasets and Codelab MCP Toolbox for Databases:Making BigQuery datasets available to MCP clients are also available.

GenAI Toolbox

ADK Agent and FastMCP server

FastMCP handles all the complex MCP protocol details and server management, so you can focus on building great tools. It's designed to be high-level and Pythonic; in most cases, decorating a function is all you need.

Refer to the MCP Tools documentation documentation on how you can use ADK together with the FastMCP server running on Cloud Run.

MCP Servers for Google Cloud Genmedia

MCP Tools for Genmedia Services is a set of open-source MCP servers that enable you to integrate Google Cloud generative media services—such as Imagen, Veo, Chirp 3 HD voices, and Lyria—into your AI applications.

Agent Development Kit (ADK) and Genkit provide built-in support for these MCP tools, allowing your AI agents to effectively orchestrate generative media workflows. For implementation guidance, refer to the ADK example agent and the Genkit example.