Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ Below is the architecture diagram for the Remote MCP Server using Azure Function

## Prerequisites

+ [Python](https://www.python.org/downloads/) version 3.11 or higher
+ [Azure Functions Core Tools](https://learn.microsoft.com/azure/azure-functions/functions-run-local?pivots=programming-language-python#install-the-azure-functions-core-tools) >= `4.0.7030`
+ [Python](https://www.python.org/downloads/) version 3.13 or higher
+ [Azure Functions Core Tools](https://learn.microsoft.com/azure/azure-functions/functions-run-local?pivots=programming-language-python#install-the-azure-functions-core-tools) >= `4.8.0`
+ [Azure Developer CLI](https://aka.ms/azd)
+ To use Visual Studio Code to run and debug locally:
+ [Visual Studio Code](https://code.visualstudio.com/)
Expand Down Expand Up @@ -285,8 +285,6 @@ This sample uses the new first-class MCP decorators available in `azure-function
- Eliminating the need for manual JSON serialization of tool properties
- Using standard Python decorators (`@app.mcp_tool()`, `@app.mcp_tool_property()`, `@app.blob_input()`, `@app.blob_output()`)

**Important:** When using the MCP decorators, you must set `PYTHON_ISOLATE_WORKER_DEPENDENCIES=1` in your app settings (both locally in `local.settings.json` and in your deployed Azure Function App).

Here's the actual code from the function_app.py file:

```python
Expand Down
3 changes: 1 addition & 2 deletions infra/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ module api './app/api.bicep' = {
applicationInsightsName: monitoring.outputs.name
appServicePlanId: appServicePlan.outputs.resourceId
runtimeName: 'python'
runtimeVersion: '3.12'
runtimeVersion: '3.13'
storageAccountName: storage.outputs.name
enableBlob: storageEndpointConfig.enableBlob
enableQueue: storageEndpointConfig.enableQueue
Expand All @@ -119,7 +119,6 @@ module api './app/api.bicep' = {
identityId: apiUserAssignedIdentity.outputs.resourceId
identityClientId: apiUserAssignedIdentity.outputs.clientId
appSettings: {
PYTHON_ISOLATE_WORKER_DEPENDENCIES: '1'
}
virtualNetworkSubnetId: vnetEnabled ? serviceVirtualNetwork.outputs.appSubnetID : ''
}
Expand Down
4 changes: 2 additions & 2 deletions src/host.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.32.0, 5.0.0)"
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
3 changes: 1 addition & 2 deletions src/local.settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"PYTHON_ISOLATE_WORKER_DEPENDENCIES": "1"
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
}
}
2 changes: 1 addition & 1 deletion src/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# The Python Worker is managed by the Azure Functions platform
# Manually managing azure-functions-worker may cause unexpected issues

azure-functions==1.25.0b3
azure-functions