Token导航 LogoToken导航TokenDH.com
Func Office Word MCP Server logo
文档知识stdio官方级别未说明来源级核验

Func Office Word MCP Server

MCP Server

使用Azure Functions和Python快速构建和部署自定义远程MCP服务器到云端,支持本地调试和云端部署,提供多种安全选项和工具。

工具数

37

提示词数

0

GitHub Stars

0

资源数

0
文档处理PythonVS Code云计算VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

PlumyCat

提供方

PlumyCat

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 \

详细介绍

使用Azure函数(Python)开始使用远程MCP服务器

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

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

](https://codespaces.new/Azure-Samples/remote-mcp-functions-python)

以下是使用Azure Functions的远程MCP服务器的架构图:

Architecture Diagram

可用的MCP工具

服务器公开了以下工具:

  • hello_cp
  • word_create_document
  • word_add_ragraph
  • word_get_text
  • word_add_head
  • word_copy_document
  • 单词搜索和替换
  • word_list_文档
  • word_list_templates
  • word_get_document_info
  • word_get_document_outline
  • word_add_table
  • word_add_picture
  • word_add_page_break
  • 单词_段落_文本
  • word_find_text
  • word_format_text
  • word_delete_paragraph
  • word_create_custom_style
  • word_format_table
  • word_set_table_cell_shading
  • word_apply_table_alternating_rows
  • 文字_高亮_表格_页眉
  • word_merge_table_cells
  • word_merge_table_cells_horizontal
  • word_merge_table_cells_vertical
  • 单词_表格_单元格_对齐
  • word_set_table_aligament_all
  • word_format_table_cell_text
  • word_set_table_cell_padding
  • word_set_table_column_width
  • 单词_表格_宽度
  • word_auto_fit_table_columns
  • word_get_all_comments
  • word_getcomments_by_author
  • word_getcomments_for_paragraph
  • word_add_注释

mcp-tools-list.txt 查看最新列表。

Microsoft Entra应用程序权限(图表)

为了这个词→ 通过Microsoft Graph和SharePoint转换PDF,在Microsoft Entra ID中创建应用程序注册,并授予以下应用程序权限(需要管理员同意)。这种方法不需要 docx2pdf 图书馆:

  • 文件夹。读写。全部
  • 地点。读写。全部

授予管理员同意后,在功能应用程序中配置以下设置(Azure中的local.se.json或应用程序设置): TENANT_ID, CLIENT_ID, CLIENT_SECRET, SP_DRIVE_ID (或 SP_SITE_ID).

以下屏幕截图说明了权限设置:

Microsoft Entra API permissions

先决条件

- Visual Studio Code - Azure功能扩展

准备好当地环境

此示例需要Azure存储模拟器,因为Word工具使用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文件夹:
   cd src
  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服务器

VS代码-副驾驶代理模式

  1. 添加MCP服务器 从命令面板中,将URL添加到正在运行的Function应用程序的SSE端点:
   http://0.0.0.0:7071/runtime/webhooks/mcp/sse
  1. 列出MCP服务器 从命令面板中,选择服务器,然后选择 开始
  1. 在Copilot聊天代理模式下,输入提示以触发工具,例如:
   Say Hello
  1. 当系统提示运行该工具时,点击同意 继续
  1. 完成后,在终端窗口中按Ctrl+C停止Functions主机进程。

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。
  1. 列出工具。单击工具,然后 运行工具.

部署到Azure

身份验证和订阅(Azure CLI和azd)

确保您已登录 相同 租户和 相同 两者都订阅 Azure命令行界面Azure开发者命令行界面(azd).

  1. Azure CLI--选择租户+订阅
   az login --tenant 
   az account set --subscription 
   # Verify
   az account show -o table
  1. azd--对齐默认订阅
   azd logout
   azd config list
   azd config set defaults.subscription 
   azd login               # or: azd login --tenant-id  if multiple tenants
   # (Optional) Check status
   azd auth login --check-status
总结:两者皆有 Azure命令行界面azd 必须指向 相同 ` 和 **相同** 跑步前 azd up, azd provision`等等。

另外, 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.

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

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

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

在VS Code中连接到远程MCP服务器-GitHub Copilot

对于VS Code中的GitHub Copilot,您应该将密钥设置为 x-functions-key 标题在 mcp.json,你只需使用 https://.azurewebsites.net/runtime/webhooks/mcp/sse 以下示例使用输入,并在从VS Code启动服务器时提示您提供密钥。备注 mcp.json 已包含在此仓库中,并将由VS Code获取。单击服务器上的“开始”,系统将提示输入以下值 functionapp-name (在您的/.alue/\*/env文件中)和 functions-mcp-extension-system-key 可以从上面的CLI命令或Function App门户中的API密钥中获取。

{
    "inputs": [
        {
            "type": "promptString",
            "id": "functions-mcp-extension-system-key",
            "description": "Azure Functions MCP Extension System Key",
            "password": true
        },
        {
            "type": "promptString",
            "id": "functionapp-name",
            "description": "Azure Functions App Name"
        }
    ],
    "servers": {
        "remote-mcp-function": {
            "type": "sse",
            "url": "https://${input:functionapp-name}.azurewebsites.net/runtime/webhooks/mcp/sse",
            "headers": {
                "x-functions-key": "${input:functions-mcp-extension-system-key}"
            }
        },
        "local-mcp-function": {
            "type": "sse",
            "url": "http://0.0.0.0:7071/runtime/webhooks/mcp/sse"
        }
    }
}

对于MCP检查器,您可以在URL中包含密钥: https://.azurewebsites.net/runtime/webhooks/mcp/sse?code=.

对于VS Code中的GitHub Copilot,您应该将密钥设置为 x-functions-key 标题在 mcp.json,你只需使用 https://.azurewebsites.net/runtime/webhooks/mcp/sse 以下示例使用输入,当您从VS Code启动服务器时,将提示您提供密钥:

{
    "inputs": [
        {
            "type": "promptString",
            "id": "functions-mcp-extension-system-key",
            "description": "Azure Functions MCP Extension System Key",
            "password": true
        }
    ],
    "servers": {
        "my-mcp-server": {
            "type": "sse",
            "url": ".azurewebsites.net/runtime/webhooks/mcp/sse",
            "headers": {
                "x-functions-key": "${input:functions-mcp-extension-system-key}"
            }
        }
    }
}

重新部署代码

你可以运行 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

测试Web搜索功能

存储库包括一个集成测试(tests/websearch_test.py)那个 通过HTTP调用SearXNG/Azure函数后端。您可以执行相同的呼叫 手动使用 curl.

局部函数

curl -X POST http://localhost:7071/api/websearch \
  -H "Content-Type: application/json" \
  -H "x-functions-key: $WEBSEARCH_FUNCTION_KEY" \
  -d '{"query": "Microsoft Azure"}'

已部署功能

curl -X POST https://.azurewebsites.net/api/websearch \
  -H "Content-Type: application/json" \
  -H "x-functions-key: $WEBSEARCH_FUNCTION_KEY" \
  -d '{"query": "Microsoft Azure"}'

设置 WEBSEARCH_FUNCTION_URLWEBSEARCH_FUNCTION_KEY 环境 运行自动测试前的变量:

WEBSEARCH_FUNCTION_URL=https://.azurewebsites.net/api/websearch \
WEBSEARCH_FUNCTION_KEY= \
pytest tests/websearch_test.py

源代码

每个MCP工具的功能代码在Python文件中定义 src 目录。使用MCP工具公开功能 @app.generic_trigger 装饰师。

这是 hello_mcp 工具从 function_app.py:

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

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

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

后续步骤

目录标签

目录标签

文档处理PythonVS Code云计算AzureFunctions本地部署MCP服务器

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

37

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP