项目简介

'adk-ts' 是一个全面的TypeScript AI Agent开发工具包。此仓库中包含的MCP天气服务器(位于'apps/starter-templates/mcp-starter')是一个基于Model Context Protocol (MCP) 构建的轻量级应用后端。其核心职责是以标准化的方式向大型语言模型 (LLM) 客户端提供天气查询功能。它注册了一个名为 'GET_WEATHER' 的工具,LLM客户端可以通过调用该工具并传入城市名称来获取当前天气状况。

主要功能点

  • 天气查询工具 (GET_WEATHER): 提供指定城市的实时天气状况,包括温度、体感温度、天气状况、湿度和风速。
  • 标准化MCP协议通信: 服务器通过JSON-RPC协议与客户端通信,实现上下文信息和工具功能的标准化交互。
  • Stdio传输支持: 默认通过标准输入输出 (Stdio) 进行通信,易于本地集成和调试。
  • 可扩展性: 作为ADK框架的一部分,易于添加更多工具、资源或Prompt模板,以扩展其功能。

安装步骤

在本地运行ADK MCP天气服务器,请遵循以下步骤:

  1. 克隆仓库:
    git clone https://github.com/IQAIcom/adk-ts.git
    cd adk-ts
  2. 安装依赖:
    pnpm install
  3. 构建ADK包: (示例运行需要先构建框架核心包)
    pnpm build
  4. 配置API密钥:
    • 天气工具需要一个OpenWeatherMap API密钥才能正常工作。请在'apps/starter-templates/mcp-starter'目录下创建一个名为 '.env' 的文件(如果不存在),并添加以下内容:
      OPENWEATHER_API_KEY=your_openweathermap_api_key_here
    • 您可以在 OpenWeatherMap 官网 注册并获取您的API密钥。
  5. 运行MCP天气服务器:
    • 确保您位于 'adk-ts' 仓库的根目录下。
    • 使用 'tsx' 运行MCP天气服务器示例:
      npx tsx apps/starter-templates/mcp-starter/src/index.ts
    • 服务器成功启动后,您将看到类似 "✅ Weather MCP Server started successfully over stdio." 的消息,表明它已准备好等待MCP客户端连接。

服务器配置 (供MCP客户端连接)

以下是一个MCP客户端连接到此MCP天气服务器所需的典型JSON配置示例。请根据您的MCP客户端的实际需求进行调整:

{
  "server_name": "ADK Weather MCP Server",
  "command": "npx",
  "args": [
    "tsx",
    "apps/starter-templates/mcp-starter/src/index.ts"
  ],
  "description": "连接到ADK仓库中提供的MCP天气服务器示例。此服务器提供'GET_WEATHER'工具,可查询全球城市天气。运行前请确保已在MCP服务器端配置OpenWeatherMap API密钥。"
}
  • 'server_name': MCP服务器的易读名称,用于客户端界面显示。
  • 'command': 启动MCP服务器进程的命令。在此示例中,我们使用'npx'来执行TypeScript文件。
  • 'args': 传递给'command'的参数列表。第一个参数'tsx'是TypeScript执行器,第二个参数是MCP服务器的入口文件路径,相对于'adk-ts'仓库的根目录。
  • 'description': 服务器的功能描述和任何重要的注意事项,方便MCP客户端用户理解和使用。

基本使用方法

当MCP服务器成功运行并等待连接时,您的LLM客户端(如果兼容MCP协议)即可连接到此服务器。连接后,LLM客户端可以通过发送JSON-RPC请求来调用 'GET_WEATHER' 工具,并获取天气信息。

示例LLM客户端请求 (概念性,具体实现取决于客户端):

假设您的LLM客户端希望获取伦敦的天气,它可能会向MCP服务器发送一个JSON-RPC请求,内容大致如下:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tool_code",
  "params": {
    "name": "GET_WEATHER",
    "args": {
      "city": "London"
    }
  }
}

MCP服务器接收此请求后,将执行 'GET_WEATHER' 工具,并返回相应的天气数据给LLM客户端。

信息

分类

AI与计算