Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure MCP Sunucusu, yapay zeka uygulamalarıyla dış araçlar ve veri kaynakları arasındaki tümleştirmeleri standart hale getirmek için Model Bağlam Protokolü'ne (MCP) sahiptir ve yapay zeka sistemlerinin Azure kaynaklarınıza bağlam açısından duyarlı işlemler gerçekleştirmesine olanak tanır.
Bu makalede, aşağıdaki görevleri nasıl tamamlayacağınızı öğreneceksiniz:
- Azure MCP Sunucusu'nu yükleme ve kimlik doğrulaması
- Özel python istemcisi kullanarak Azure MCP Sunucusu'na bağlanma
- Azure MCP Sunucusu işlemlerini test etmek ve Azure kaynaklarını yönetmek için istemleri çalıştırma
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı
- Python 3.9 veya üzeri yüklü
- Node.js LTS yüklü
Uyarı
Azure MCP Sunucusu ile erişmeyi planladığınız Azure kaynaklarının Azure aboneliğinizde zaten mevcut olması gerekir. Ayrıca, kullanıcı hesabınızın bu kaynaklar için gerekli RBAC rollerine ve izinlerine atanmış olması gerekir.
Yerel geliştirme için giriş yapın
Azure MCP Sunucusu, Microsoft Entra Id aracılığıyla belirteç tabanlı kimlik doğrulaması kullanarak sorunsuz bir kimlik doğrulama deneyimi sağlar. Azure MCP Sunucusu dahili olarak kullanıcıların kimliğini doğrulamak için DefaultAzureCredential kullanır.
Azure MCP Server ile çalışmak için Azure hesabınızla yerel olarak desteklenen DefaultAzureCredential araçlardan birinde oturum açmanız gerekir. Visual Studio Code terminali gibi bir terminal penceresi kullanarak oturum açın:
Önceki araçlardan birinde başarıyla oturum açtıktan sonra, Azure MCP Server kimlik bilgilerinizi otomatik olarak bulabilir ve bunları kullanarak Azure hizmetlerinde kimlik doğrulaması yapabilir ve işlemleri gerçekleştirebilir.
Uyarı
Ayrıca Visual Studio aracılığıyla Azure'da oturum açabilirsiniz. Azure MCP Sunucusu yalnızca oturum açmış kullanıcının gerçekleştirme izinlerine sahip olduğu işlemleri çalıştırabilir.
Python uygulamasını oluşturma
Python uygulaması (konak uygulaması) oluşturmak için aşağıdaki adımları tamamlayın. Uygulama bir yapay zeka modeline bağlanır ve Azure MCP Sunucusuna bağlanan bir MCP istemcisi için konak görevi görür (MCP protokolunu çalıştıran yerel işlem).
Projeyi oluşturma
Düzenleyicinizin içinde istediğiniz boş bir klasörü açın.
adlı
requirements.txtyeni bir dosya oluşturun ve aşağıdaki kitaplık bağımlılıklarını ekleyin:mcp azure-identity openai loggingAynı klasörde adlı
.envyeni bir dosya oluşturun ve aşağıdaki ortam değişkenlerini ekleyin:AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint> AZURE_OPENAI_MODEL=<your-model-deployment-name>Uygulamanızın kodunu tutmak için adlı
main.pyboş bir dosya oluşturun.
Ortamı oluşturma ve bağımlılıkları yükleme
Yeni klasörünüzde bir terminal açın ve uygulama için bir Python sanal ortamı oluşturun:
python -m venv venvSanal ortamı etkinleştirin:
venv\Scripts\activaterequirements.txtiçindeki bağımlılıkları yükleyin:pip install -r requirements.txt
Uygulama kodunu ekleme
içeriğini main.py aşağıdaki kodla güncelleştirin:
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
from mcp import ClientSession, StdioServerParameters, types
from mcp.client.stdio import stdio_client
import json, os, logging, asyncio
from dotenv import load_dotenv
# Setup logging and load environment variables
logger = logging.getLogger(__name__)
load_dotenv()
# Azure OpenAI configuration
AZURE_OPENAI_ENDPOINT = os.getenv("AZURE_OPENAI_ENDPOINT")
AZURE_OPENAI_MODEL = os.getenv("AZURE_OPENAI_MODEL", "gpt-4o")
# Initialize Azure credentials
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
async def run():
# Initialize Azure OpenAI client
client = AzureOpenAI(
azure_endpoint=AZURE_OPENAI_ENDPOINT,
api_version="2024-04-01-preview",
azure_ad_token_provider=token_provider
)
# MCP client configurations
server_params = StdioServerParameters(
command="npx",
args=["-y", "@azure/mcp@latest", "server", "start"],
env=None
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
for tool in tools.tools: print(tool.name)
# Format tools for Azure OpenAI
available_tools = [{
"type": "function",
"function": {
"name": tool.name,
"description": tool.description,
"parameters": tool.inputSchema
}
} for tool in tools.tools]
# Start conversational loop
messages = []
while True:
try:
user_input = input("\nPrompt: ")
messages.append({"role": "user", "content": user_input})
# First API call with tool configuration
response = client.chat.completions.create(
model = AZURE_OPENAI_MODEL,
messages = messages,
tools = available_tools)
# Process the model's response
response_message = response.choices[0].message
messages.append(response_message)
# Handle function calls
if response_message.tool_calls:
for tool_call in response_message.tool_calls:
function_args = json.loads(tool_call.function.arguments)
result = await session.call_tool(tool_call.function.name, function_args)
# Add the tool response to the messages
messages.append({
"tool_call_id": tool_call.id,
"role": "tool",
"name": tool_call.function.name,
"content": result.content,
})
else:
logger.info("No tool calls were made by the model")
# Get the final response from the model
final_response = client.chat.completions.create(
model = AZURE_OPENAI_MODEL,
messages = messages,
tools = available_tools)
for item in final_response.choices:
print(item.message.content)
except Exception as e:
logger.error(f"Error in conversation loop: {e}")
print(f"An error occurred: {e}")
if __name__ == "__main__":
import asyncio
asyncio.run(run())
Yukarıdaki kod aşağıdaki görevleri gerçekleştirir:
- Loglamayı kurar ve
.envdosyasından ortam değişkenlerini yükler. - Azure OpenAI istemcisi,
azure-identityveopenaikitaplıkları kullanılarak yapılandırılır. - Standart G/Ç aktarımını kullanarak Azure MCP Sunucusu (yerel işlem) ile etkileşime geçmek için bir MCP istemcisi başlatır.
- Azure MCP Sunucusu'ndan kullanılabilir araçların (MCP tarafından kaydedilen Azure işlemleri) listesini alır ve görüntüler.
- Kullanıcı istemlerini işlemek, araçları kullanmak ve araç çağrılarını işlemek için konuşma döngüsü uygular.
Yapılandırma parametreleri:
| Parametre | Description | Example |
|---|---|---|
AZURE_OPENAI_ENDPOINT |
Azure OpenAI hizmet uç noktanız | https://your-resource.openai.azure.com/ |
AZURE_OPENAI_MODEL |
Model dağıtım adı | gpt-4o |
| Belirteç kapsamı | Azure Bilişsel Hizmetler OAuth kapsamı | https://cognitiveservices.azure.com/.default |
| Kimlik Doğrulaması | Kullanır DefaultAzureCredential (Azure CLI, yönetilen kimlik veya diğer kimlik doğrulama zinciri) |
Azure Identity belgelerine bakın |
| Gerekli RBAC | Azure OpenAI kaynağında Bilişsel Hizmetler Kullanıcı rolü veya eşdeğeri | Azure portalı veya CLI aracılığıyla atandı |
Uygulamayı çalıştırma ve test edin
Python uygulamanızı test etmek için aşağıdaki adımları tamamlayın:
Projenizin köküne açık bir terminal penceresinde aşağıdaki komutu çalıştırarak uygulamayı başlatın:
python main.pyBaşarılı doğrulama: Uygulama kullanılabilir Azure MCP Server araçlarının listesini görüntülemeli ve ardından bir
Prompt:giriş göstermelidir.Uygulama çalıştırıldıktan sonra aşağıdaki test istemini girin:
List all of the resource groups in my subscriptionÖnceki istemin çıktısı aşağıdaki metne benzemelidir:
The following resource groups are available for your subscription: 1. **DefaultResourceGroup-EUS** (Location: `eastus`) 2. **rg-testing** (Location: `centralus`) 3. **rg-azd** (Location: `eastus2`) 4. **msdocs-sample** (Location: `southcentralus`) 14. **ai-testing** (Location: `eastus2`) Let me know if you need further details or actions related to any of these resource groups!Aşağıdakiler gibi diğer ilgili istemleri kullanarak Azure MCP işlemlerini keşfedin ve test edin:
List all of the storage accounts in my subscription Get the available tables in my storage accounts