项目简介

Untappd MCP 服务器是一个使用 .NET Azure Functions 开发的 MCP (Model Context Protocol) 服务器,它允许大型语言模型 (LLM) 客户端通过标准的 MCP 协议访问 Untappd 平台的啤酒信息。该服务器作为 LLM 和 Untappd API 之间的桥梁,使得 LLM 能够利用 Untappd 的数据进行更丰富的对话和应用场景。

主要功能点

  • 资源管理: 托管和管理 Untappd 平台的啤酒、酒厂、用户等资源数据。
  • 数据访问: 提供标准的 MCP 数据访问接口,允许 LLM 客户端查询 Untappd 数据。
  • 工具注册与执行: 可以注册和执行与 Untappd 相关的工具,例如搜索啤酒、获取啤酒详情等,扩展 LLM 的功能。
  • Prompt 模板: 支持定义和渲染 Prompt 模板,定制与 LLM 的交互模式,使其更好地利用 Untappd 数据。
  • SSE 支持: 使用 Server Sent Events (SSE) 作为传输协议,与客户端进行实时通信。
  • Azure Functions 部署: 基于 Azure Functions 构建,易于部署和扩展。

安装步骤

  1. 安装 Prerequisites: 确保已安装以下软件:

  2. 配置 'local.settings.json': 在项目根目录下创建或修改 'local.settings.json' 文件,填入必要的配置信息。

    {
        "IsEncrypted": false,
        "Values": {
            "AzureWebJobsStorage": "<Azure Storage 连接字符串>",
            "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
            "Untappd:ClientId": "<你的 Untappd Client ID>",
            "Untappd:ClientSecret": "<你的 Untappd Client Secret>"
        }
    }
    • 'AzureWebJobsStorage': Azure Storage 账号的连接字符串,用于 Azure Functions 运行时。如果您本地运行,可以使用本地模拟器或云端 Storage 账号。
    • 'FUNCTIONS_WORKER_RUNTIME': 指定 Azure Functions 的运行时环境为 .NET Isolated 模式。
    • 'Untappd:ClientId': 您的 Untappd 应用程序的 Client ID,需要前往 Untappd API 开发者平台 申请。
    • 'Untappd:ClientSecret': 您的 Untappd 应用程序的 Client Secret,同样需要在 Untappd API 开发者平台获取。

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到此 Untappd MCP 服务器,您需要在客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 为例,配置如下:

{
  "mcpServers": {
    "untappddotnet": {  // 服务器名称,可以自定义,用于在客户端中标识该服务器
      "command": "npx",  // 启动命令,这里使用 npx
      "args": [         // 命令参数
        "mcp-remote",   // 实际执行的命令,mcp-remote 是一个中间件,用于桥接 SSE 服务器
        "http://localhost:7071/runtime/webhooks/mcp/sse" // Untappd MCP 服务器的 SSE 端点 URL,Azure Functions 本地运行时默认端口为 7071,路径为 /runtime/webhooks/mcp/sse
      ]
    }
  }
}

配置说明:

  • '"untappddotnet"': 这是您为该 MCP 服务器定义的名称,客户端会使用这个名称来引用该服务器。您可以根据需要自定义。
  • '"command": "npx"' 和 '"args": [...]': 这部分定义了客户端启动 MCP 服务器的命令。由于 Claude Desktop 当前可能不支持直接配置 SSE 服务器,所以这里使用了 'mcp-remote' 这个中间件作为代理。
    • '"mcp-remote"': 这是一个假定的客户端代理工具(根据描述推测),用于处理与 SSE 服务器的连接和通信。您需要确保客户端环境中安装了这个工具(例如通过 'npm install -g mcp-remote' 安装,但这只是推测,具体安装和使用方法请参考 'mcp-remote' 工具的文档)。
    • '"http://localhost:7071/runtime/webhooks/mcp/sse"': 这是 Untappd MCP 服务器的 SSE 端点 URL。 'http://localhost:7071' 是 Azure Functions 在本地运行时默认的监听地址和端口。 '/runtime/webhooks/mcp/sse' 是 Azure Functions 提供的 HTTP 触发器路径,用于接收 MCP 客户端的 SSE 连接请求。请注意,实际部署到 Azure 云环境后,此 URL 会变为 Azure Function App 的访问 URL 和相应的路径。

重要提示: 'mcp-remote' 的具体作用和使用方式需要根据实际情况进行确认,以上配置是基于仓库 'README.md' 提供的 'claude_desktop_config.json' 片段进行的推测和解释。实际使用时,请务必查阅 'mcp-remote' 工具的文档或仓库,并根据您的 MCP 客户端和服务器部署环境进行调整。

基本使用方法

  1. 启动 Azure Functions: 在项目根目录下,使用 Azure Functions Core Tools 启动本地 Azure Functions 运行时。

    func host start

    这将启动 Untappd MCP 服务器,并监听 'http://localhost:7071' 端口。

  2. 配置 MCP 客户端: 根据您的 MCP 客户端(例如 Claude Desktop)的要求,配置 'claude_desktop_config.json' 或其他配置文件,填入上面生成的服务器配置信息。

  3. 使用 LLM 客户端: 启动您的 LLM 客户端(例如 Claude Desktop),客户端会根据配置连接到 Untappd MCP 服务器。您可以通过 LLM 客户端向 Untappd MCP 服务器发送 MCP 请求,查询啤酒信息或执行相关工具,从而在 LLM 应用中使用 Untappd 的数据。

例如,在 Claude Desktop 中,您可能可以使用特定的 Prompt 格式来指示 Claude 调用 Untappd MCP 服务器的功能,例如:

@untappddotnet/searchBeers("IPA")  // 假设定义了 searchBeers 工具,搜索 IPA 类型的啤酒

具体的 Prompt 格式和可用工具取决于 Untappd MCP 服务器的实现和客户端的支持。

信息

分类

网页与API