این آموزش نشان میدهد چگونه سرور MCP «دانش توسعهدهنده» از دور را به چارچوبهای عامل هوش مصنوعی سفارشی که با LangChain، LlamaIndex، و AutoGen ساخته شدهاند متصل کنید.
با متصل کردن عاملهای هوشوارای سفارشیتان به سرور راه دور «پروتکل بافت مدل» (MCP)، عاملهایتان میتوانند بهصورت پویا اسناد توسعهدهندگان Google را که شامل Google Cloud، Firebase، Android، Google Maps Platform، Chrome، و غیره میشود جستجو و بازیابی کنند.
پیشنیازها
پیشنیازهای زیر را قبلاز شروع تکمیل کنید:
- تولید کلید Developer Knowledge API: با دنبال کردن راهنمای راهاندازی کلید API، در پروژه Google Cloud خود، Developer Knowledge API را فعال کنید و کلید API بسازید.
- تولید کلید Gemini API: در Google AI Studio کلید API ایجاد کنید تا مدلهای Gemini را اصالتسنجی کنید، یا اگر Generative Language API در آن فعال است، از کلید Google Cloud API خود مجدداً استفاده کنید.
متغیرهای محیطی خود را تنظیم کنید: کلیدهای API خود را بهعنوان متغیرهای محیطی در ترمینال خود تنظیم کنید:
export DEVELOPERKNOWLEDGE_API_KEY="YOUR_API_KEY" export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"نصب Python: مطمئن شوید که محیط توسعه شما از Python 3.10 یا بالاتر استفاده میکند.
اتصال بااستفاده از LangChain
برنامههای LangChain میتوانند بااستفاده از بسته langchain-mcp-adapters یا انتقالهای استاندارد کارخواه MCP به سرورهای MCP از دور HTTP متصل شوند.
نصب وابستگیها
بستههای Python موردنیاز را برای LangChain، Gemini، و MCP نصب کنید:
pip install langgraph langchain-google-genai langchain-mcp-adapters mcp
پیکربندی عامل LangChain
مثال زیر سرور MCP «دانش توسعهدهنده» را به عامل LangChain ReAct
با پشتیبانی Gemini متصل میکند. دستورگان MultiServerMCPClient را بااستفاده از
حملونقل streamable_http نمونهسازی میکند، سرصفحه HTTP X-Goog-Api-Key را پیوست میکند، و
ابزارهای از دور را در 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())
اتصال بااستفاده از LlamaIndex
LlamaIndex از ادغام سرور MCP ازطریق مشخصات ابزار پشتیبانی میکند و به عاملان بازیابی اجازه میدهد درطول استدلال، اسناد «دانش توسعهدهنده» را پُرسمان کنند.
نصب وابستگیها
بستههای اصلی LlamaIndex، مدل زبانی بزرگ Gemini، و یکپارچهسازی ابزارهای MCP را نصب کنید:
pip install llama-index llama-index-tools-mcp llama-index-llms-google-genai
پیکربندی عامل LlamaIndex
مثال زیر بااستفاده از BasicMCPClient به سرور MCP از دور متصل میشود،
آن را با McpToolSpec میپیچد، و ابزارهای بازیابیشده را به LlamaIndex
FunctionAgent با پشتیبانی 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())
اتصال بااستفاده از AutoGen
کارگزاران Microsoft AutoGen میتوانند بااستفاده از
autogen-ext افزونه MCP با سرورهای MCP از دور ارتباط برقرار کنند و امکان مشارکت چندعاملی با دسترسی
به اسناد رسمی توسعهدهندگان Google را فراهم کنند.
نصب وابستگیها
بستههای افزونه MCP و هسته AutoGen را نصب کنید:
pip install autogen-agentchat "autogen-ext[mcp,openai]"
پیکربندی عامل AutoGen
مثال زیر بااستفاده از
StreamableHttpServerParams به سرور MCP از دور متصل میشود و ابزارهای «دانش توسعهدهنده» را با AutoGen
AssistantAgent با پشتیبانی 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())
روالهای مطلوب برای ادغام کارگزار
هنگام ساختن عاملهای هوش مصنوعی سفارشی با سرور MCP «دانش توسعهدهنده»، این دستورالعملها را دنبال کنید:
- پالایش پرسمانهای جستجو: بهجای اصطلاحات کلی، نامهای محصول خاص و کلیدواژههای مرتبط را در پرسمان زبان طبیعی بگنجانید، زیرا ابزارهای
search_documentsوanswer_queryبراساس معناشناسی پرسمان مطابقت میدهند. - مدیریت نشانههای پنجره زمینهای: از
answer_queryبرای پاسخهای مستقیمی که از مجموعه اسناد استخراج شدهاند استفاده کنید و از درخواست محتوای صفحه کامل باget_documentsخودداری کنید، مگر اینکه جزئیات گزیده ازsearch_documentsکافی نباشد. - ایمن کردن کلیدهای میانای برنامهسازی کاربردی: کلیدهای «میانای برنامهسازی کاربردی دانش توسعهدهندگان» و «میانای برنامهسازی کاربردی Gemini» را در متغیرهای محیطی یا سیستمهای استاندارد مدیریت رمز ذخیره کنید و هرگز اطلاعات اعتباری را در کد سختکد نکنید.
قدم بعدی چیست
برای کسب اطلاعات بیشتر درباره سرور MCP «دانش توسعهدهندگان»، منابع زیر را کاوش کنید:
- راهنمای کامل نصب سرور MCP «دانش توسعهدهندگان» را بخوانید.
- دامنههای پیکره دردسترس را مرور کنید.
- با نحوه تولید پاسخ از مستندات آشنا شوید.