Skip to main content
Glama

MCP_Python

Two components:

  1. agent_client.py — local agent that queries Microsoft Learn docs via MCP

  2. server/ — MCP server deployed on Azure Functions, exposes a LearnAgent tool


Consuming the deployed MCP server

Endpoint:

https://azure-function-jnb-agents.azurewebsites.net/runtime/webhooks/mcp

Transport: Streamable HTTP (MCP protocol 2025-03-26)

Auth: Azure Functions system key in header:

x-functions-key: <mcp_extension_key>

Get the key:

az functionapp keys list \
  --name azure-function-jnb-agents \
  --resource-group NovilloBenitoJaime \
  --query systemKeys.mcp_extension -o tsv

Available tool

Tool

Input

Description

LearnAgent

query (string, required)

Searches and retrieves official Microsoft Learn documentation

Example — Python client

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
import asyncio

KEY = "<mcp_extension_key>"
URL = "https://azure-function-jnb-agents.azurewebsites.net/runtime/webhooks/mcp"

async def main():
    async with streamablehttp_client(URL, headers={"x-functions-key": KEY}) as (r, w, _):
        async with ClientSession(r, w) as session:
            await session.initialize()
            result = await session.call_tool("LearnAgent", {"query": "How to deploy Azure Container Apps?"})
            print(result.content[0].text)

asyncio.run(main())

Install: pip install mcp

Example — VS Code / Claude Code (mcp.json)

{
  "mcpServers": {
    "LearnAgent": {
      "url": "https://azure-function-jnb-agents.azurewebsites.net/runtime/webhooks/mcp",
      "headers": {
        "x-functions-key": "<mcp_extension_key>"
      }
    }
  }
}

Example — curl (raw JSON-RPC)

KEY="<mcp_extension_key>"

# Initialize
curl -X POST https://azure-function-jnb-agents.azurewebsites.net/runtime/webhooks/mcp \
  -H "Content-Type: application/json" \
  -H "x-functions-key: $KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

# Call tool
curl -X POST https://azure-function-jnb-agents.azurewebsites.net/runtime/webhooks/mcp \
  -H "Content-Type: application/json" \
  -H "x-functions-key: $KEY" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"LearnAgent","arguments":{"query":"Azure Blob Storage Python quickstart"}}}'

Related MCP server: MCP Server on Cloudflare Workers & Azure Functions

Local agent (agent_client.py)

Connects to https://learn.microsoft.com/api/mcp directly and uses Azure AI Foundry as LLM.

Requirements: Python 3.9+, az login

python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Create .env:

FOUNDRY_PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>
FOUNDRY_MODEL=gpt-4o-mini
python agent_client.py

Deploying the server

cd server
# Edit requirements.txt if needed
Compress-Archive -Path function_app.py,host.json,requirements.txt -DestinationPath deploy.zip -Force
az functionapp deployment source config-zip \
  --name azure-function-jnb-agents \
  --resource-group NovilloBenitoJaime \
  --src deploy.zip --build-remote true

Required app settings on the Function App:

Setting

Value

FOUNDRY_PROJECT_ENDPOINT

Azure AI Foundry project endpoint

FOUNDRY_MODEL

Model deployment name

The Function App needs System Assigned Managed Identity with Azure AI Developer role on the Foundry resource.


Stack

Component

Package

MCP transport

mcp>=1.9.0

Agent orchestration

agent-framework>=1.8.1

Azure Functions hosting

agent-framework-azurefunctions==1.0.0b260521

Azure AI Foundry LLM

agent-framework-foundry

Azure auth

azure-identity

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ByTermi/MCP_Python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server