Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Copilot Studio - Model Context Protocol
Suggested answer

Successful deployment of trivial MCP server for use in Copilot Studio

(0) ShareShare
ReportReport
Posted on by
Hi all. I set myself the goal of deploying a MCP server with an api tool into an Azure Container App and then invoking it from a Copilot Studio agent. It took some trial and error, but ultimately I was successful. Hopefully, this will help you with your own work.
 
I took as my sample app the one provided in this blog post by akitana-airtanker. I deployed it into an Azure Container App - with Ingress turned on. The Ingress feature brings with it port mapping of http to 80 and https to 443. 
 
I tested the deployment by changing the server URL in the repo's client.py app to point to the ACA.
 
Next, I wrote an OpenApi 2.0 spec. This is the tricky bit. According to the mcp samples page, there is no specification of tool inputs. That's almost true. With this line in the spec: x-ms-agentic-protocol: mcp-streamable-1.0, when you create the custom connector, it knows to look at the server and pull in its requirements. But you have to add some bits so the right request headers get added. Here's my final OpenApi spec:
 
{
    "swagger": "2.0",
    "info": {
        "title": "mcp-http-demoApi | v1",
        "description": "An MCP server demo API that adds two numbers.",
        "version": "1.0.0"
    },
    "host": "{my}.{api}.azurecontainerapps.io",
    "basePath": "/",
    "schemes": [
        "https"
    ],
    "paths": {
        "/mcp": {
            "post": {
                "summary": "An MCP server that adds two numbers.",
                "description": "An MCP server that adds two numbers.",
                "x-ms-agentic-protocol": "mcp-streamable-1.0",
                "operationId": "Add",
                "parameters": [
                    {
                        "in": "header",
                        "name": "Accept",
                        "type": "string",
                        "required": true,
                        "default": "application/json, text/event-stream"
                    },
                    {
                        "in": "header",
                        "name": "Content-Type",
                        "type": "string",
                        "required": true,
                        "default": "application/json"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"                        
                    }
                }
            }
        }
    }
}
  • Suggested answer
    GO-20061201-0 Profile Picture
    on at
    Successful deployment of trivial MCP server for use in Copilot Studio
    Hope this helps!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Michael Gernaey – Community Spotlight

We are honored to recognize Michael Gernaey as our June 2025 Community…

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

Leaderboard > Copilot Studio

#1
Romain The Low-Code Bearded Bear Profile Picture

Romain The Low-Code... 132

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 81 Super User 2025 Season 1

#3
Pablo Roldan Profile Picture

Pablo Roldan 61