Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
An MCP server providing weather information Host remote MCP servers built with official MCP SDKs on Azure Functions (public preview) This repo contains instructions and sample for running MCP server built with the Node MCP SDK on Azure Functions. The repo uses the weather sample server to demonstrate how this can be done. You can clone to run and test the server locally, follow by easy deploy with azd up to have it in the cloud in a few minutes. **Watch the vi Published capability contract available. No trust telemetry is available yet. 13 GitHub stars reported by the source. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
weather-server is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
An MCP server providing weather information Host remote MCP servers built with official MCP SDKs on Azure Functions (public preview) This repo contains instructions and sample for running MCP server built with the Node MCP SDK on Azure Functions. The repo uses the weather sample server to demonstrate how this can be done. You can clone to run and test the server locally, follow by easy deploy with azd up to have it in the cloud in a few minutes. **Watch the vi
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. 13 GitHub stars reported by the source. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Azure Samples
Artifacts
0
Benchmarks
0
Last release
1.0.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 13 GitHub stars reported by the source. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Azure Samples
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
13 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
shell
git clone https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node.git
shell
az provider register --namespace 'Microsoft.App'
shell
az provider show -n Microsoft.App
shell
azd env set PRE_AUTHORIZED_CLIENT_IDS aebc6443-996d-45c2-90f0-388ff96faa56
shell
azd env set SERVICE_MANAGEMENT_REFERENCE <service-management-reference>
shell
(✓) Done: Resource group: rg-resource-group-name (12.061s)
(✓) Done: App Service plan: plan-random-guid (6.748s)
(✓) Done: Virtual Network: vnet-random-guid (8.566s)
(✓) Done: Log Analytics workspace: log-random-guid (29.422s)
(✓) Done: Storage account: strandomguid (34.527s)
(✓) Done: Application Insights: appi-random-guid (8.625s)
(✓) Done: Function App: func-mcp-random-guid (36.096s)
(✓) Done: Private Endpoint: blob-private-endpoint (30.67s)
Deploying services (azd deploy)
(✓) Done: Deploying service api
- Endpoint: https://functionapp-name.azurewebsites.net/Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
An MCP server providing weather information Host remote MCP servers built with official MCP SDKs on Azure Functions (public preview) This repo contains instructions and sample for running MCP server built with the Node MCP SDK on Azure Functions. The repo uses the weather sample server to demonstrate how this can be done. You can clone to run and test the server locally, follow by easy deploy with azd up to have it in the cloud in a few minutes. **Watch the vi
This repo contains instructions and sample for running MCP server built with the Node MCP SDK on Azure Functions. The repo uses the weather sample server to demonstrate how this can be done. You can clone to run and test the server locally, follow by easy deploy with azd up to have it in the cloud in a few minutes.
Watch the video overview
<a href="https://www.youtube.com/watch?v=gLKP41efvo0" target="_blank"> <img src="./media/video-thumbnail.jpg" alt="Watch the video" width="500" /> </a>Recently Azure Functions released the Functions MCP extension, allowing developers to build MCP servers using Functions programming model, which is essentially Function's event-driven framework, and host them remotely on the serverless platform.
For those who have already built servers with Anthropic's MCP SDKs, it's also possible to host the servers on Azure Functions by running them as custom handlers, which are lightweight web servers that receive events from the Functions host. They allow you to host your already-built MCP servers with no code changes and benefit from Function's bursty scale, serverless pricing model, and security features.
This repo focuses on the second hosting scenario:
<div align="center"> <img src="./media/function_hosting.png" alt="Diagram showing hosting of Function app and custom handler apps." width="500"> </div>Ensure you have the following:
[!NOTE] This sample requires that you have permission to create a Microsoft Entra app in the Azure subscription you use.
[!IMPORTANT] Your server must be stateless and uses the streamable-http transport to be hosted remotely on Azure Functions today.
The following instructions will pull in artifacts required for local server testing and deployment. The most important are: host.json, local.settings.json, and infra. Azure Functions only requires the first two JSON files. The infra directory isn't a requirement, but it's handy for provisioning Azure resources.
It's unlikely that your project would have files and directory with the same names, but if it does, you'll need to rename them so they won't be overwritten.
Once you've done the necessary renaming, follow these steps:
azd init --template self-hosted-mcp-scaffold-typescript.host.json, ensure the port value is the same as the one used by the MCP server.You can find out more details about the template.
Clone the repo and open the sample in Visual Studio Code
git clone https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node.git
In the root directory, run npm install to install dependencies
Run npm run build to compile TypeScript to JavaScript
Run func start to start the server locally
Open mcp.json (in the .vscode directory)
Start the server by selecting the Start button above the local-mcp-server
Click on the Copilot icon at the top to open chat (or Ctrl+Command+I / Ctrl+Alt+I), and then change to Agent mode in the question window.
Click the tools icon and make sure local-mcp-server is checked for Copilot to use in the chat:
<img src="./media/mcp-tools.png" width="200" alt="MCP tools list screenshot">Once the server displays the number of tools available, ask "Return the weather in NYC using #local-mcp-server." Copilot should call one of the weather tools to help answer this question.
Before deploying, you need to register the Microsoft.App resource provider:
az provider register --namespace 'Microsoft.App'
Wait a few seconds for registration to complete. You can check status by using:
az provider show -n Microsoft.App
This sample uses Visual Studio Code as the main client. Configure it as an allowed client application:
azd env set PRE_AUTHORIZED_CLIENT_IDS aebc6443-996d-45c2-90f0-388ff96faa56
Specify a service management reference if required by your organization. If you're not a Microsoft employee and don't know that you need to set this, you can skip this step. However, if provisioning fails with an error about a missing service management reference, you may need to revisit this step. Microsoft employees using a Microsoft tenant must provide a service management reference (your Service Tree ID). Without this, you won't be able to create the Entra app registration, and provisioning will fail.
azd env set SERVICE_MANAGEMENT_REFERENCE <service-management-reference>
Run azd up in the root directory. Then pick an Azure subcription to deploy resources to and select from the available regions.
When the deployment finishes, your terminal will display output similar to the following:
(✓) Done: Resource group: rg-resource-group-name (12.061s)
(✓) Done: App Service plan: plan-random-guid (6.748s)
(✓) Done: Virtual Network: vnet-random-guid (8.566s)
(✓) Done: Log Analytics workspace: log-random-guid (29.422s)
(✓) Done: Storage account: strandomguid (34.527s)
(✓) Done: Application Insights: appi-random-guid (8.625s)
(✓) Done: Function App: func-mcp-random-guid (36.096s)
(✓) Done: Private Endpoint: blob-private-endpoint (30.67s)
Deploying services (azd deploy)
(✓) Done: Deploying service api
- Endpoint: https://functionapp-name.azurewebsites.net/
[!TIP] In addition to starting an MCP server in mcp.json, you can see output of a server by clicking More... -> Show Output. The output provides useful information like why a connection might've failed.
You can also click the gear icon to change log levels to "Traces" to get even more details on the interactions between the client (Visual Studio Code) and the server.
<img src="./media/log-level.png" width="200" alt="Log level screenshot">
The get-current-user tool demonstrates how to implement the On-Behalf-Of (OBO) flow to call Microsoft Graph API on behalf of the authenticated user. This pattern is useful when your MCP tools need to access downstream services.
To test this tool, ask Copilot a question like "Use #remote-mcp-server to provide info abou the logged-in user". Copilot will ask you to provide consent to access the user's information by giving you a link. Navigate to the consent URL and grant the permissions. Then re-ask the question to Copilot.
Authorization headerOnBehalfOfCredential exchanges the bearer token for a Microsoft Graph access token/me endpoint with the exchanged tokenNote: This tool requires the infrastructure to be deployed to Azure. It will not work in local development without additional configuration.
If you want to redeploy the server after making changes, run azd deploy. (See azd command reference.)
The server app is configured with the built-in server authentication and authorization feature, which implements the requirements of the MCP authorization specification, such as issuing 401 challenge and exposing a Protected Resource Metadata (PRM).
In the debug output from Visual Studio Code, you see a series of requests and responses as the MCP client and server interact. When built-in MCP server authorization is used, you should see the following sequence of events:
Other than Visual Studio Code, agents in Azure AI Foundry can also connect to Function-hosted MCP servers that are configured with Easy Auth. Docs coming soon.
When you're done working with your server, you can use this command to delete the resources created on Azure and avoid incurring any further costs:
azd down
| Language (Stack) | Repo Location | |------------------|---------------| | C# (.NET) | mcp-sdk-functions-hosting-dotnet | | Python | mcp-sdk-functions-hosting-python |
The following are some common issues that come up.
InternalServerError: There was an unexpected InternalServerError. Please try again later.
Check if you have registered the Microsoft.App resource provider:
az provider show -n Microsoft.App
If it's showing up as unregistered, register it:
az provider register --namespace 'Microsoft.App'
Successful registration should show:
Namespace RegistrationPolicy RegistrationState
------------- -------------------- -------------------
Microsoft.App RegistrationRequired Registered
Then run azd up again.
Error: error executing step command 'deploy --all': getting target resource: resource not found: unable to find a resource tagged with 'azd-server-name: api'. Ensure the service resource is corrected tagged in your infrastructure configuration, and rerun provision
This is a known transient error. Try re-running azd up.
Ensure you have the latest version of Azure Functions Core Tools installed.
You need version >=4.5.0. Check by running func --version.
.vscode/mcp.json must be in the root for VS Code to detect MCP server registration
If you don't see the Start button above server registrations, it's likely because .vscode/mcp.json isn't located in the root of your workspace folder.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
Yes
Data region
global
Protocol support
Requires: mcp, lang:typescript, streaming
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript",
"streaming"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": true,
"inputSchemaRef": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node#input",
"outputSchemaRef": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:44:40.218Z",
"sourceUpdatedAt": "2026-02-24T19:44:40.218Z",
"freshnessSeconds": 4440566
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T05:14:06.326Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
}
],
"flattenedTokens": "protocol:MCP|supported|contract"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:40.218Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:40.218Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:40.218Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Azure Samples",
"href": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node",
"sourceUrl": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "13 GitHub stars",
"href": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node",
"sourceUrl": "https://github.com/Azure-Samples/mcp-sdk-functions-hosting-node",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-azure-samples-mcp-sdk-functions-hosting-node/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to weather-server and adjacent AI workflows.