Mengintegrasikan server MCP Pengetahuan Developer dengan agen AI kustom

Tutorial ini menunjukkan cara menghubungkan server MCP Developer Knowledge jarak jauh ke framework agen AI kustom yang dibangun dengan LangChain, LlamaIndex, dan AutoGen.

Dengan menghubungkan agen AI kustom Anda ke server Model Context Protocol (MCP) jarak jauh, agen Anda dapat menelusuri dan mengambil dokumentasi developer Google yang kredibel dan terbaru secara dinamis yang mencakup Google Cloud, Firebase, Android, Google Maps Platform, Chrome, dan lainnya.

Prasyarat

Selesaikan prasyarat berikut sebelum Anda memulai:

  1. Buat kunci API Developer Knowledge API: aktifkan Developer Knowledge API dan buat kunci API di project Google Cloud Anda dengan mengikuti panduan penyiapan kunci API.
  2. Buat kunci Gemini API: buat kunci API di Google AI Studio untuk mengautentikasi model Gemini, atau gunakan kembali kunci Google Cloud API Anda jika Generative Language API diaktifkan di kunci tersebut.
  3. Tetapkan variabel lingkungan Anda: tetapkan kunci API Anda sebagai variabel lingkungan di terminal Anda:

    export DEVELOPERKNOWLEDGE_API_KEY="YOUR_API_KEY"
    export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
    
  4. Instal Python: verifikasi bahwa lingkungan pengembangan Anda menggunakan Python 3.10 atau yang lebih baru.

Menghubungkan menggunakan LangChain

Aplikasi LangChain dapat terhubung ke server MCP HTTP jarak jauh menggunakan paket langchain-mcp-adapters atau transportasi klien MCP standar.

Menginstal dependensi

Instal paket Python yang diperlukan untuk LangChain, Gemini, dan MCP:

pip install langgraph langchain-google-genai langchain-mcp-adapters mcp

Mengonfigurasi agen LangChain

Contoh berikut menghubungkan server MCP Developer Knowledge ke agen ReAct LangChain yang didukung oleh Gemini. Skrip membuat instance MultiServerMCPClient menggunakan transpor streamable_http, melampirkan header HTTP X-Goog-Api-Key, dan memuat alat jarak jauh ke create_react_agent:

import asyncio
import os

from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent

async def run_langchain_agent():
    api_key = os.environ.get("DEVELOPERKNOWLEDGE_API_KEY")
    if not api_key:
        raise ValueError(
            "DEVELOPERKNOWLEDGE_API_KEY environment variable is required."
        )

    gemini_api_key = os.environ.get("GEMINI_API_KEY")
    if not gemini_api_key:
        raise ValueError("GEMINI_API_KEY environment variable is required.")

    # Configure remote MCP connection for Developer Knowledge
    client = MultiServerMCPClient(
        {
            "google-developer-knowledge": {
                "url": "https://developerknowledge.googleapis.com/mcp",
                "transport": "streamable_http",
                "headers": {
                    "X-Goog-Api-Key": api_key,
                },
            }
        }
    )
    tools = await client.get_tools()

    # Initialize Gemini model and ReAct agent
    llm = ChatGoogleGenerativeAI(
        model="gemini-2.5-flash",
        temperature=0,
        google_api_key=gemini_api_key,
    )
    agent = create_react_agent(llm, tools)

    # Run agent query
    response = await agent.ainvoke(
        {
            "messages": [
                (
                    "user",
                    "How do I list Google Cloud Storage buckets in Python?",
                )
            ]
        }
    )
    print("\nAgent Response:\n", response["messages"][-1].content)

if __name__ == "__main__":
    asyncio.run(run_langchain_agent())

Menghubungkan menggunakan LlamaIndex

LlamaIndex mendukung integrasi server MCP melalui spesifikasi alat, sehingga agen pengambilan dapat mengkueri dokumen Developer Knowledge selama penalaran.

Menginstal dependensi

Instal paket inti LlamaIndex, integrasi alat MCP dan LLM Gemini:

pip install llama-index llama-index-tools-mcp llama-index-llms-google-genai

Mengonfigurasi agen LlamaIndex

Contoh berikut terhubung ke server MCP jarak jauh menggunakan BasicMCPClient, membungkusnya dengan McpToolSpec, dan mengikat alat yang diambil ke LlamaIndex FunctionAgent yang didukung oleh Gemini:

import asyncio
import os

from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.google_genai import GoogleGenAI
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec

async def run_llamaindex_agent():
    api_key = os.environ.get("DEVELOPERKNOWLEDGE_API_KEY")
    if not api_key:
        raise ValueError(
            "DEVELOPERKNOWLEDGE_API_KEY environment variable is required."
        )

    gemini_api_key = os.environ.get("GEMINI_API_KEY")
    if not gemini_api_key:
        raise ValueError("GEMINI_API_KEY environment variable is required.")

    # Connect to the remote Developer Knowledge MCP endpoint
    mcp_client = BasicMCPClient(
        "https://developerknowledge.googleapis.com/mcp",
        headers={"X-Goog-Api-Key": api_key},
    )
    mcp_tool_spec = McpToolSpec(client=mcp_client)
    tools = await mcp_tool_spec.to_tool_list_async()

    # Create LlamaIndex FunctionAgent with Gemini
    llm = GoogleGenAI(model="gemini-2.5-flash", api_key=gemini_api_key)
    agent = FunctionAgent(tools=tools, llm=llm)

    # Query the agent
    response = await agent.run(
        "What are the default limits and quotas for the Developer Knowledge"
        " API?"
    )
    print("\nAgent Response:\n", str(response))

if __name__ == "__main__":
    asyncio.run(run_llamaindex_agent())

Menghubungkan menggunakan AutoGen

Agen Microsoft AutoGen dapat berinteraksi dengan server MCP jarak jauh menggunakan ekstensi MCP autogen-ext, sehingga memungkinkan kolaborasi multi-agen dengan akses ke dokumentasi developer Google resmi.

Menginstal dependensi

Instal paket inti AutoGen dan ekstensi MCP:

pip install autogen-agentchat "autogen-ext[mcp,openai]"

Mengonfigurasi agen AutoGen

Contoh berikut terhubung ke server MCP jarak jauh menggunakan StreamableHttpServerParams dan mendaftarkan alat Developer Knowledge dengan AutoGen AssistantAgent yang didukung oleh Gemini:

import asyncio
import os

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import StreamableHttpServerParams, mcp_server_tools

async def run_autogen_agent():
    api_key = os.environ.get("DEVELOPERKNOWLEDGE_API_KEY")
    if not api_key:
        raise ValueError(
            "DEVELOPERKNOWLEDGE_API_KEY environment variable is required."
        )

    gemini_api_key = os.environ.get("GEMINI_API_KEY")
    if not gemini_api_key:
        raise ValueError("GEMINI_API_KEY environment variable is required.")

    # Retrieve remote MCP tools for Developer Knowledge by using Streamable HTTP
    server_params = StreamableHttpServerParams(
        url="https://developerknowledge.googleapis.com/mcp",
        headers={"X-Goog-Api-Key": api_key},
    )
    dk_tools = await mcp_server_tools(server_params)

    # Initialize model client with Gemini and assistant agent
    model_client = OpenAIChatCompletionClient(
        model="gemini-2.5-flash",
        api_key=gemini_api_key,
        base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
    )
    developer_assistant = AssistantAgent(
        name="google_docs_assistant",
        model_client=model_client,
        tools=dk_tools,
        system_message=(
            "You are a developer assistant specializing in Google APIs and"
            " SDKs. Use Developer Knowledge tools to retrieve verified"
            " documentation."
        ),
    )

    # Run query with team runner
    team = RoundRobinGroupChat([developer_assistant], max_turns=5)
    stream = team.run_stream(
        task=(
            "Explain how to configure Firebase Cloud Messaging topic"
            " subscriptions."
        )
    )

    async for message in stream:
        print(message)

if __name__ == "__main__":
    asyncio.run(run_autogen_agent())

Praktik terbaik untuk integrasi agen

Saat membangun agen AI kustom dengan server MCP Pengetahuan Developer, ikuti panduan berikut:

  • Memperbaiki kueri penelusuran: sertakan nama produk tertentu dan kata kunci yang relevan dalam kueri bahasa alami, bukan istilah umum, karena alat search_documents dan answer_query mencocokkan semantik kueri.
  • Kelola token jendela konteks: gunakan answer_query untuk jawaban langsung yang diambil dari korpus dokumentasi, dan hindari permintaan konten halaman lengkap dengan get_documents kecuali jika detail cuplikan dari search_documents tidak memadai.
  • Mengamankan kunci API: simpan kunci Developer Knowledge API dan Gemini API Anda di variabel lingkungan atau sistem pengelolaan secret standar, dan jangan pernah melakukan hardcode kredensial dalam kode.

Langkah berikutnya

Jelajahi referensi berikut untuk mempelajari lebih lanjut server MCP Pengetahuan Developer: