可组合MCP服务器模板

一个基于Azure App Service的可组合MCP服务器架构模板,支持模块化开发和扩展MCP功能。

  • by bcperry
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bcperry/azd_generic_mcp

使用说明

简单的FastMCP AZD模板

最基本的FastMCP应用程序作为AZD模板,可用于Azure应用服务

此模板演示了 可组合MCP服务器架构 它允许您将多个MCP服务器连接到单个主服务器,从而便于组织和扩展MCP功能。

架构:多个MCP服务器

主服务器位于 src/app.py 作为a 网关 其可以导入和托管多个专用MCP服务器。这种架构提供了几个好处:

  • 模块化:每个MCP服务器都可以在 src/servers/ 目录
  • 命名空间:每个导入的服务器都有一个前缀,以避免工具/资源命名冲突
  • 可扩展性:添加新的MCP服务器,而不修改现有服务器
  • 组织:按领域对相关工具和资源进行逻辑分组(例如,天气、数据库、通知)

运作原理

这 src/app.py 该文件创建了一个主FastMCP服务器并使用 import_server() 要连接子服务器,请执行以下操作:

mcp = FastMCP(name="generic-mcp")

async def setup():
    # Import the weather server with 'weather' prefix
    await mcp.import_server(server=weather_mcp, prefix="weather")
    # Add more servers here as needed:
    # await mcp.import_server(server=database_mcp, prefix="database")
    # await mcp.import_server(server=notification_mcp, prefix="notification")

每个子服务器(如 src/servers/weather.py)是一个完整的FastMCP实例,具有自己的工具和资源。导入时,所有工具都会自动使用提供的前缀进行命名空间。

添加更多MCP服务器

要添加新的MCP服务器,请执行以下操作:

  1. 在中创建新文件 src/servers/ (例如。, database.py)
  2. 使用工具和资源定义您的FastMCP服务器
  3. 导入 src/app.py 并将其添加到 setup() 函数
  4. 使用部署 azd deploy

用法

  1. 克隆仓库并安装AZD

  2. 登录到您的Azure帐户。

azd auth login

注意:如果使用政府云,您需要在登录前配置azd以使用该云

azd config set cloud.name AzureUSGovernment
azd auth login
  1. 运行以下命令以构建应用程序的可部署副本,将模板的基础架构配置到Azure,并将应用程序代码部署到新配置的资源。
azd up

注意:第一次运行会提示您 Enter a unique environment name: 这将用作将创建的用于保存所有Azure资源的资源组的前缀。此名称在您的Azure订阅中应该是唯一的。

此命令将提示您输入以下信息:

  • Azure Location:部署资源的Azure位置。
  • Azure Subscription:部署资源的Azure订阅。

注意:这可能需要一段时间才能完成,因为它执行三个命令: azd package (构建应用程序的可部署副本), azd provision (提供Azure资源),以及 azd deploy (部署应用程序代码)。在打包、配置和部署应用程序时,您将看到一个进度指示器。

  1. 然后更改app.py并运行 azd deploy 再次更新您的更改。

访问免费应用服务层

随着模板的出现,它被设置为一个基本计划(请参见 定价 指南),但如果你想免费开始,你可以在运行前轻松更新模板 azd up 利用免费计划或折扣开发者计划。

转到 /基础设施/资源 文件和更新行58,其中SKU当前设置为 “B1”。将此更改为 “F1” 在 免费方案 (或 “D1” 为了 开发商折扣价 如果您有超过10个要同时部署)。

备注

这使用F1(免费)SKU for app服务,它的CPU和RAM资源有限。

看 定价计算器 有关付费SKU的详细信息,请用合适的选项替换SKU选项。