Getting Started with Remote MCP Servers using Azure Functions (J…
@Azure-Samples
About Getting Started with Remote MCP Servers using Azure Functions (J…
This is a quickstart template to easily build and deploy a custom remote MCP server to the cloud using Azure Functions with Java.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"remote-mcp-functions-java": {
"command": "docker",
"args": [
"run",
"-p",
"10000:10000",
"-p",
"10001:10001",
"-p",
"10002:10002",
"\\"
]
}
}
}Tools
No tools detected
We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.
Overview
What is Getting Started with Remote MCP Servers using Azure Functions (Java)?
This quick-start shows how to build and deploy a remote MCP server using Azure Functions (Java). It includes sample tools (HelloWorld, SaveSnippets, GetSnippets) that persist data to Azure Blob Storage, and demonstrates secure deployment with system keys, optional OAuth, and VNet isolation. It is aimed at developers who want to host an MCP server in the cloud for use with AI copilots like GitHub Copilot.
How to use Getting Started with Remote MCP Servers using Azure Functions (Java)?
Install prerequisites (JDK 17+, Azure Functions Core Tools, Azure Developer CLI, Docker for Azurite). Run mvn clean package then mvn azure-functions:run to start the local SSE endpoint at http://127.0.0.1:7071/runtime/webhooks/mcp/sse. Deploy to Azure with azd up. Connect clients by setting the SSE URL with the system key mcp_extension as a header (x-functions-key).
Key features of Getting Started with Remote MCP Servers using Azure Functions (Java)
- MCP server running on Azure Functions (Java)
- Tools: HelloWorld, SaveSnippets, GetSnippets
- Server-Sent Events (SSE) transport
- Secure with system keys + HTTPS
- Optional OAuth via EasyAuth or API Management
- Optional VNet isolation
- Deploy locally or to Azure with
azd up
Use cases of Getting Started with Remote MCP Servers using Azure Functions (Java)
- Hosting a remote MCP server for GitHub Copilot agent mode
- Persisting user snippets in Azure Blob Storage across sessions
- Securing MCP endpoints behind system keys and optional OAuth
- Isolating MCP workloads inside a virtual network
FAQ from Getting Started with Remote MCP Servers using Azure Functions (Java)
What are the prerequisites to run this MCP server?
JDK 17+, Azure Functions Core Tools v4 (≥4.0.7030), Azure Developer CLI, and Docker (for Azurite blob emulator when running locally).
How do I secure the remote MCP server?
The server is secured by design with system keys and HTTPS. For additional OAuth support, use EasyAuth or API Management. VNet isolation can be enabled by setting VNET_ENABLED=true before provisioning.
How do clients connect to the remote server?
Clients use the SSE URL https://<FUNC_APP_NAME>.azurewebsites.net/runtime/webhooks/mcp/sse and pass the mcp_extension system key as the x-functions-key header. The same URL with a ?code= query parameter works for tools like MCP Inspector.
How do I redeploy or clean up the Azure resources?
Redeploy with azd up (safe to run repeatedly). Clean up all resources with azd down.
Where does the server store data?
The SaveSnippets and GetSnippets tools persist data in Azure Blob Storage (emulated locally via Azurite, using a real storage account in Azure).
Frequently asked questions
What are the prerequisites to run this MCP server?
JDK 17+, Azure Functions Core Tools v4 (≥4.0.7030), Azure Developer CLI, and Docker (for Azurite blob emulator when running locally).
How do I secure the remote MCP server?
The server is secured by design with system keys and HTTPS. For additional OAuth support, use EasyAuth or API Management. VNet isolation can be enabled by setting `VNET_ENABLED=true` before provisioning.
How do clients connect to the remote server?
Clients use the SSE URL `https://<FUNC_APP_NAME>.azurewebsites.net/runtime/webhooks/mcp/sse` and pass the `mcp_extension` system key as the `x-functions-key` header. The same URL with a `?code=` query parameter works for tools like MCP Inspector.
How do I redeploy or clean up the Azure resources?
Redeploy with `azd up` (safe to run repeatedly). Clean up all resources with `azd down`.
Where does the server store data?
The `SaveSnippets` and `GetSnippets` tools persist data in Azure Blob Storage (emulated locally via Azurite, using a real storage account in Azure).
Basic information
More Cloud & Infrastructure MCP servers
AWS Model Context Protocol (MCP) Server
alexei-ledA lightweight service that enables AI assistants to execute AWS CLI commands (in safe containerized environment) through the Model Context Protocol (MCP). Bridges Claude, Cursor, and other MCP-aware AI tools with AWS CLI for enhanced cloud infrastructure management.
MCP Gateway
mcp-ecosystem🧩 MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes. Features Docker deployment and management UI, requiring no infrastructure modifications.
AWS MCP Servers
awslabsOpen source MCP Servers for AWS
AWS MCP
RafalWilinskiTalk with your AWS using Claude. Model Context Protocol (MCP) server for AWS. Better Amazon Q alternative.
Lambda MCP Server Demo (Streamable HTTP)
mikegc-awsCreates a simple MCP tool server with "streaming" HTTP.
Comments