diff --git a/python/samples/getting_started/agents/azure_ai/README.md b/python/samples/getting_started/agents/azure_ai/README.md index 17a944524a..437094795b 100644 --- a/python/samples/getting_started/agents/azure_ai/README.md +++ b/python/samples/getting_started/agents/azure_ai/README.md @@ -20,6 +20,7 @@ This folder contains examples demonstrating different ways to create and use age | [`azure_ai_with_explicit_settings.py`](azure_ai_with_explicit_settings.py) | Shows how to create an agent with explicitly configured `AzureAIClient` settings, including project endpoint, model deployment, and credentials rather than relying on environment variable defaults. | | [`azure_ai_with_file_search.py`](azure_ai_with_file_search.py) | Shows how to use the `HostedFileSearchTool` with Azure AI agents to upload files, create vector stores, and enable agents to search through uploaded documents to answer user questions. | | [`azure_ai_with_hosted_mcp.py`](azure_ai_with_hosted_mcp.py) | Shows how to integrate hosted Model Context Protocol (MCP) tools with Azure AI Agent. | +| [`azure_ai_with_local_mcp.py`](azure_ai_with_local_mcp.py) | Shows how to integrate local Model Context Protocol (MCP) tools with Azure AI agents. | | [`azure_ai_with_response_format.py`](azure_ai_with_response_format.py) | Shows how to use structured outputs (response format) with Azure AI agents using Pydantic models to enforce specific response schemas. | | [`azure_ai_with_runtime_json_schema.py`](azure_ai_with_runtime_json_schema.py) | Shows how to use structured outputs (response format) with Azure AI agents using a JSON schema to enforce specific response schemas. | | [`azure_ai_with_search_context_agentic.py`](../../context_providers/azure_ai_search/azure_ai_with_search_context_agentic.py) | Shows how to use AzureAISearchContextProvider with agentic mode. Uses Knowledge Bases for multi-hop reasoning across documents with query planning. Recommended for most scenarios - slightly slower with more token consumption for query planning, but more accurate results. | diff --git a/python/samples/getting_started/agents/azure_ai/azure_ai_with_local_mcp.py b/python/samples/getting_started/agents/azure_ai/azure_ai_with_local_mcp.py new file mode 100644 index 0000000000..dd8cb0abab --- /dev/null +++ b/python/samples/getting_started/agents/azure_ai/azure_ai_with_local_mcp.py @@ -0,0 +1,50 @@ +# Copyright (c) Microsoft. All rights reserved. + +import asyncio + +from agent_framework import MCPStreamableHTTPTool +from agent_framework.azure import AzureAIClient +from azure.identity.aio import AzureCliCredential + +""" +Azure AI Agent with Local MCP Example + +This sample demonstrates integration of Azure AI Agents with local Model Context Protocol (MCP) +servers. + +Pre-requisites: +- Make sure to set up the AZURE_AI_PROJECT_ENDPOINT and AZURE_AI_MODEL_DEPLOYMENT_NAME + environment variables before running this sample. +""" + + +async def main() -> None: + """Example showing use of Local MCP Tool with AzureAIClient.""" + print("=== Azure AI Agent with Local MCP Tools Example ===\n") + + async with ( + AzureCliCredential() as credential, + AzureAIClient(async_credential=credential).create_agent( + name="DocsAgent", + instructions="You are a helpful assistant that can help with Microsoft documentation questions.", + tools=MCPStreamableHTTPTool( + name="Microsoft Learn MCP", + url="https://learn.microsoft.com/api/mcp", + ), + ) as agent, + ): + # First query + first_query = "How to create an Azure storage account using az cli?" + print(f"User: {first_query}") + first_result = await agent.run(first_query) + print(f"Agent: {first_result}") + print("\n=======================================\n") + # Second query + second_query = "What is Microsoft Agent Framework?" + print(f"User: {second_query}") + second_result = await agent.run(second_query) + print(f"Agent: {second_result}") + + +if __name__ == "__main__": + asyncio.run(main())