🚀 Azure Functions ⚡️❤️ MCP Server
This repository is part of a video on my YouTube channel, which demonstrates how to create an MCP (Model Context Protocol) server using Azure Functions and integrate it with the proxy mode of GitHub Copilot Chat.
🚀 Quick Start
✨ Features
This project allows you to create an MCP server using Azure Functions and interact with it through GitHub Copilot Chat.
📦 Installation
To create an MCP server using Azure Functions, you can use the following library:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Mcp --version 1.0.0-preview.2
For more details about this NuGet package, please visit: https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Mcp
💻 Usage Examples
Basic Usage
To test the example code, you need to run the project locally:
func start
You can use the MCP inspector:
npx @modelcontextprotocol/inspector http://localhost:7071/runtime/webhooks/mcp/sse
You can also interact with this MCP server using GitHub Copilot Chat. To do this, simply create a .vscode/mcp.json
file or include the following section in your .vscode/settings.json
:
{
"inputs": [
{
"type": "promptString",
"id": "mcp-azure-function-key",
"description": "Key to access the Azure function",
"password": true
},
{
"type": "promptString",
"id": "mcp-azure-function-name",
"description": "Name to access the Azure function"
}
],
"servers": {
"local-mcp-azure-function": {
"type": "sse",
"url": "http://localhost:7071/runtime/webhooks/mcp/sse",
},
// "remote-mcp-azure-function": {
// "type": "sse",
// "url": "https://${input:mcp-azure-function-name}.azurewebsites.net/runtime/webhooks/mcp/sse",
// "headers": {
// "x-functions-key": "${input:mcp-azure-function-key}"
// }
// }
}
}
You can also add an MCP via the command line:
code --add-mcp '{"name": "local-mcp", "type": "sse", "url": "http://localhost:7071/runtime/webhooks/mcp/sse"}'
Advanced Usage
If you are using Terraform to deploy Azure resources, make sure to include the following in your outputs.tf
file:
output "function_name" {
value = azure_function.name
}
output "function_master_key" {
value = azure_function.master_key
}
After deployment, you can find the function name and master key in the Terraform output.
📚 Documentation
Install the NuGet Package
Install the following NuGet package in your project:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Mcp --version 1.0.0-preview.2
Run the Project
Start your Azure Functions project:
func start
When prompted for the function name and master key, provide the corresponding information you found in the Azure portal.
Test the MCP Server
Use the following command to test if the MCP server is running correctly:
npx @modelcontextprotocol/inspector http://localhost:7071/runtime/webhooks/mcp/sse
Configure GitHub Copilot Chat
To configure the MCP server in GitHub Copilot Chat, follow these steps:
- Create or edit the
.vscode/settings.json
file in your project root directory. - Add the following content to configure the MCP server:
{
"inputs": [
{
"type": "promptString",
"id": "mcp-azure-function-key",
"description": "Key to access the Azure function",
"password": true
},
{
"type": "promptString",
"id": "mcp-azure-function-name",
"description": "Name to access the Azure function"
}
],
"servers": {
"local-mcp-azure-function": {
"type": "sse",
"url": "http://localhost:7071/runtime/webhooks/mcp/sse",
},
// "remote-mcp-azure-function": {
// "type": "sse",
// "url": "https://${input:mcp-azure-function-name}.azurewebsites.net/runtime/webhooks/mcp/sse",
// "headers": {
// "x-functions-key": "${input:mcp-azure-function-key}"
// }
// }
}
}
📄 Conclusion
I hope this guide is helpful to you! If you have any questions, please feel free to contact me.







