项目简介
'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天气服务器,请遵循以下步骤:
- 克隆仓库:
git clone https://github.com/IQAIcom/adk-ts.git cd adk-ts - 安装依赖:
pnpm install - 构建ADK包: (示例运行需要先构建框架核心包)
pnpm build - 配置API密钥:
- 天气工具需要一个OpenWeatherMap API密钥才能正常工作。请在'apps/starter-templates/mcp-starter'目录下创建一个名为 '.env' 的文件(如果不存在),并添加以下内容:
OPENWEATHER_API_KEY=your_openweathermap_api_key_here - 您可以在 OpenWeatherMap 官网 注册并获取您的API密钥。
- 天气工具需要一个OpenWeatherMap API密钥才能正常工作。请在'apps/starter-templates/mcp-starter'目录下创建一个名为 '.env' 的文件(如果不存在),并添加以下内容:
- 运行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与计算