Token导航 LogoToken导航

MCP Server · AI代理

Foundry Agent Service Remote MCP Python

通过Azure Functions在云端运行远程MCP服务器,支持AI Foundry代理服务和自定义工具集成。

stdio官方级别未说明来源级核验工具 0
Bicep云服务PythonVS Code

快速开始

作者 / 组织
Azure-Samples
提供方
Azure-Samples

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

10

仓库热度

收录来源

1 个

MCP World

选型结论

Foundry Agent Service Remote MCP Python 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 VS Code,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

代理服务和远程MCP服务器入门(Python)

这是一个快速入门模板,可以轻松运行 Azure AI Foundry代理服务 客户端,然后使用以下命令将自定义远程MCP服务器添加到云中 Azure功能远程MCP。您可以通过调试在本地计算机上克隆/还原/运行,以及 azd up 几分钟后就可以把它放在云端了。MCP服务器通过使用密钥和HTTPS进行设计来保护,并允许使用内置身份验证和/或 API管理 以及使用VNET进行网络隔离。

如果您正在寻找更多语言的此示例,请查看 .NET/C# 和 版本。

下面是使用Azure Functions和Foundry代理服务的远程MCP服务器的架构图:

先决条件

- Visual Studio Code - Azure功能扩展

将远程MCP服务器部署到Azure

运行这个 azd 命令为功能应用程序配置任何所需的Azure资源,包括AI Foundry代理服务,并部署您的代码:

azd up
备注:系统将提示您指定 agentLocation 在部署期间。这必须是AI Foundry支持的区域之一: westus, westus2, uaenorth, southindia,或 switzerlandnorth。此位置专门用于AI资源(AI服务、搜索、Cosmos DB),可能与您的主要部署位置不同。

另外, API管理 可用于提高MCP服务器的安全性和策略,以及 App Service内置身份验证 可用于设置您最喜欢的OAuth提供程序,包括Entra。

连接到您的 *远程* 来自客户端的MCP服务器功能应用程序

您的客户端将需要一个密钥来调用新的托管SSE端点,其格式为 https://.azurewebsites.net/runtime/webhooks/mcp/sse默认情况下,托管功能需要一个系统密钥,可以从 门户 或CLI(az functionapp keys list --resource-group --name ).获取名为的系统密钥 mcp_extension.

铸造代理服务客户

  1. 在新的终端窗口中切换到代理文件夹:
   cd agent
  1. 创建一个 .env 基于所提供示例的文件。复制 .env.example 文件:
   copy .env.example .env
  1. 编辑 .env 包含已部署功能应用程序详细信息的文件:
   # Azure AI Project Configuration
   PROJECT_ENDPOINT=https://your-agent-service-resource.services.ai.azure.com/api/projects/your-project-name
   MODEL_DEPLOYMENT_NAME=gpt-4.1-mini
   MCP_SERVER_LABEL=Azure_Functions_MCP_Server
   MCP_SERVER_URL=https://.azurewebsites.net/runtime/webhooks/mcp/sse
   USER_MESSAGE=Create a snippet called snippet1 that prints 'Hello, World!' in Python.

   # Required: Azure Functions extension key for MCP server authentication
   MCP_EXTENSION_KEY=your_mcp_extension_system_key_here

> 备注:将以下值替换为您的输出 azd up 部署: > > - PROJECT_ENDPOINT:您的Azure AI项目端点(来自azd部署输出) > - `:您的功能应用程序名称(来自azd部署输出) > - your_mcp_extension_system_key_here:The mcp_extension` 从Azure门户或CLI获取的系统密钥

  1. 为代理安装Python依赖项:
   pip install -r requirements.txt
  1. 运行代理服务:
   python main.py

代理将连接到您的远程MCP服务器并执行 USER_MESSAGE 环境变量,演示Azure AI Foundry和部署的MCP服务器之间的集成。

在MCP Inspector中连接到远程MCP服务器

对于MCP检查器,您可以在URL中包含密钥:

https://.azurewebsites.net/runtime/webhooks/mcp/sse?code=

重新部署代码

你可以运行 azd up 根据需要多次执行命令,以配置Azure资源并将代码更新部署到功能应用程序。

\[!注意\] 部署的代码文件总是被最新的部署包覆盖。

清理资源

使用完功能应用程序和相关资源后,您可以使用此命令从Azure中删除功能应用程序及其相关资源,从而避免产生任何进一步的成本:

azd down

有用的Azure命令

部署应用程序后,您可以使用以下命令来管理和监视应用程序:

# Get your function app name from the environment file
FUNCTION_APP_NAME=$(cat .azure/$(cat .azure/config.json | jq -r '.defaultEnvironment')/env.json | jq -r '.FUNCTION_APP_NAME')
echo $FUNCTION_APP_NAME

# Get resource group 
RESOURCE_GROUP=$(cat .azure/$(cat .azure/config.json | jq -r '.defaultEnvironment')/env.json | jq -r '.AZURE_RESOURCE_GROUP')
echo $RESOURCE_GROUP

# View function app logs
az webapp log tail --name $FUNCTION_APP_NAME --resource-group $RESOURCE_GROUP

# Redeploy the application without provisioning new resources
azd deploy

在本地调试MCP服务器功能

此特定示例需要Azure存储模拟器,因为我们将从blob存储中保存和获取代码段。

  1. 开始Azurite
   docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \
       mcr.microsoft.com/azure-storage/azurite
备注 如果你使用来自VS Code扩展的Azurite,你需要运行 Azurite: Start 现在,否则你会看到错误。

从终端本地运行MCP服务器

  1. 在新的终端窗口中更改为src/mcp_server文件夹:
   cd src/mcp_server
  1. 安装Python依赖项:
   pip install -r requirements.txt
备注 在执行以下操作之前创建虚拟环境是一种最佳做法 pip install 以避免依赖关系问题/冲突,或者如果您在CodeSpaces中运行。看 VS代码中的Python环境 了解更多信息。
  1. 在本地启动Functions主机:
   func start
备注 默认情况下,这将使用webhooks路由: /runtime/webhooks/mcp/sse稍后,我们将在Azure中使用它来设置客户端/主机调用的密钥: /runtime/webhooks/mcp/sse?code=

连接到 *本地* 来自客户端/主机的MCP服务器

铸造代理服务客户

Foundry代理服务是一种云服务,它期望MCP工具也在云中(例如相同的VNET或公共互联网上)。继续执行部署Azure for Remote MCP的步骤。

MCP检查员

  1. 在一个 新终端窗口,安装并运行MCP检查器
   npx @modelcontextprotocol/inspector
  1. 按CTRL键单击可从应用程序显示的URL加载MCP Inspector web应用程序(例如。http://0.0.0.0:5173/#resources)
  1. 将运输类型设置为 SSE
  1. 将URL设置为正在运行的Function应用程序的SSE端点,然后 连接:
   http://0.0.0.0:7071/runtime/webhooks/mcp/sse
备注 此步骤在CodeSpaces中不起作用。请继续部署到远程MCP。

源代码

的功能代码 get_snippet 和 save_snippet 端点在Python文件中定义 src/mcp_server 目录。MCP函数注释将这些函数作为MCP服务器工具公开。

以下是function_app.py文件中的实际代码:


@app.generic_trigger(arg_name="context", type="mcpToolTrigger", toolName="hello", 
                     description="Hello world.", 
                     toolProperties="[]")
def hello_mcp(context) -> None:
    """
    A simple function that returns a greeting message.

    Args:
        context: The trigger context (not used in this function).

    Returns:
        str: A greeting message.
    """
    return "Hello I am MCPTool!"

@app.generic_trigger(
    arg_name="context",
    type="mcpToolTrigger",
    toolName="getsnippet",
    description="Retrieve a snippet by name.",
    toolProperties=tool_properties_get_snippets_json
)
@app.generic_input_binding(
    arg_name="file",
    type="blob",
    connection="AzureWebJobsStorage",
    path=_BLOB_PATH
)
def get_snippet(file: func.InputStream, context) -> str:
    """
    Retrieves a snippet by name from Azure Blob Storage.
 
    Args:
        file (func.InputStream): The input binding to read the snippet from Azure Blob Storage.
        context: The trigger context containing the input arguments.
 
    Returns:
        str: The content of the snippet or an error message.
    """
    snippet_content = file.read().decode("utf-8")
    logging.info(f"Retrieved snippet: {snippet_content}")
    return snippet_content

@app.generic_trigger(
    arg_name="context",
    type="mcpToolTrigger",
    toolName="savesnippet",
    description="Save a snippet with a name.",
    toolProperties=tool_properties_save_snippets_json
)                   
@app.generic_output_binding(
    arg_name="file",
    type="blob",
    connection="AzureWebJobsStorage",
    path=_BLOB_PATH
)
def save_snippet(file: func.Out[str], context) -> str:
    content = json.loads(context)
    snippet_name_from_args = content["arguments"][_SNIPPET_NAME_PROPERTY_NAME]
    snippet_content_from_args = content["arguments"][_SNIPPET_PROPERTY_NAME]

    if not snippet_name_from_args:
        return "No snippet name provided"

    if not snippet_content_from_args:
        return "No snippet content provided"
 
    file.set(snippet_content_from_args)
    logging.info(f"Saved snippet: {snippet_content_from_args}")
    return f"Snippet '{snippet_content_from_args}' saved successfully"

请注意 host.json 文件还包括对实验包的引用,这是使用此功能的应用程序所必需的:

"extensionBundle": {
  "id": "Microsoft.Azure.Functions.ExtensionBundle.Experimental",
  "version": "[4.*, 5.0.0)"
}

后续步骤

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

Bicep本地部署AzureFunctionsAI集成云服务MCP协议Python开发

支持客户端

VS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 VS Code 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Foundry Agent Service Remote MCP Python

MCP World · 本页

0stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Foundry Agent Service Remote MCP Python 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Foundry Agent Service Remote MCP Python 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Foundry Agent Service Remote MCP Python 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Foundry Agent Service Remote MCP Python 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Foundry Agent Service Remote MCP Python 支持哪些客户端?

公开资料标注支持 VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP