Token导航 LogoToken导航TokenDH.com
AI Dial MCP Advanced logo
AI代理stdio官方级别未说明来源级核验

AI Dial MCP Advanced

MCP Server

一个基于Python的MCP(Model Context Protocol)服务器和客户端实现,用于构建AI代理并实现工具调用和会话管理。

工具数

5

提示词数

0

GitHub Stars

1

资源数

0
AI代理Python会话管理协议实现

安装说明

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

作者 / 组织

Kenny-EPAM-DIAL

提供方

Kenny-EPAM-DIAL

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

高级MCP(服务器和客户端)实践任务

使用MCP(模型上下文协议)工具和MCP服务器/客户端架构构建AI代理的Python实现。

🎯 任务概述

使用自定义工具创建并运行MCP服务器,然后使用MCP客户端实现AI代理,该代理利用创建的服务器中的工具。此任务演示了从服务器实现到客户端集成的完整MCP工作流程。

🎓 学习目标

通过完成这个项目,你将学习:

  • MCP协议实现:了解模型上下文协议规范和JSON-RPC通信
  • 服务器端工具开发:创建符合MCP标准的自定义工具
  • 客户端集成:将AI代理连接到MCP服务器并处理工具执行
  • 会话管理:实施适当的会话处理和状态管理
  • 流媒体响应:使用服务器发送事件(SSE)进行实时通信
  • 错误处理:在分布式系统中实施稳健的错误处理

🏗️ 建筑

├── agent/                        # MCP Client Implementation
│   ├── clients/
│   │   ├── custom_mcp_client.py    🚧 TODO: Pure Python MCP client
│   │   ├── mcp_client.py           ✅ Complete: Framework-based client
│   │   └── dial_client.py          ✅ Complete: AI model integration
│   ├── models/           
│   │   └── message.py              ✅ Complete: Message structures
│   └── app.py                      🚧 TODO: Test it with MCPClient and CustomMCPClient
└── mcp_server/                   # MCP Server Implementation
    ├── models/
    │   ├── request.py              ✅ Complete: Request model
    │   └── response.py             ✅ Complete: Response model
    ├── services/
    │   └── mcp_server.py           🚧 TODO: Implement core server logic
    ├── tools/
    │   ├── base.py                 ✅ Complete: Abstract tool interface
    │   ├── create_user_tool.py     🚧 TODO: Implement web search tool
    │   ├── delete_user_tool.py     🚧 TODO: Implement web search tool
    │   ├── update_user_tool.py     🚧 TODO: Implement web search tool
    │   ├── get_user_by_id_tool.py  🚧 TODO: Implement web search tool
    │   └── search_users.py         🚧 TODO: Implement web search tool
    └── server.py                   🚧 TODO: Implement FastAPI server

📋 需求

  • python:3.11或更高
  • 依赖项:列在 requirements.txt
  • API访问:具有适当权限的DIAL API密钥
  • 网络:用于内部API访问的EPAM VPN连接
  • 可选的:API测试邮差

🔧 安装说明

  1. 创建虚拟环境
   python -m venv .venv
  1. 再进行
   pip install -r requirements.txt
  1. 环境变量
DIAL_API_KEY=您的_DIAL_API_KEY

获取DIAL API密钥:

  1. 连接到EPAM VPN
  2. 访问:https://support.epam.com/ess?id=sc_cat_item&table=sc_cat_item&sys_id=910603f1c3789e907509583bb001310c
  3. 按照说明获取API密钥

______________________________________________________________________

🚀 任务:

如果主分支中的任务对你来说很难,那么切换到 with-detailed-description 分支

创建MCP服务器:

  1. 打开 mcp服务器 并回顾mcp服务器结构:

- 在 模型 持久化已实现的请求和响应模型,请求和响应的详细信息 官方文件 - 在 服务/mcp_server.py 您需要实现中描述的部分 TODO 章节 - 在 工具 你会发现简单的工具 - 最后,in 服务器.py 提供中描述的实现 TODO 章节

  1. 在本地运行MCP服务器
  2. 用Postman测试一下。导入 mcp.postman_collection.json 成为邮递员。 (init -> init-notification -> tools/list -> tools/call)
  3. 打开 agent/app.py 并使用MCPClient在本地运行它并实现它
  4. 测试代理有以下疑问👇
  5. 提供中所述的实现 TODO 部分为 custom_mcp_client.py
  6. 使用以下查询再次测试代理👇
Check if Arkadiy Dobkin present as a user, if not then search info about him in the web and add him

______________________________________________________________________

🔍 MCP协议详细信息

JSON-RPC结构

请求格式:

{
  "jsonrpc": "2.0",
  "id": "unique-request-id",
  "method": "method_name",
  "params": {
    "parameter": "value"
  }
}

响应格式:

{
  "jsonrpc": "2.0",
  "id": "matching-request-id",
  "result": {
    "data": "response_data"
  }
}

MCP会话流

  1. 初始化:客户端发送 initialize 请求
  2. 通知:客户端发送 notifications/initialized
  3. 发现:客户电话 tools/list 获取可用工具
  4. 行动:客户电话 tools/call 使用特定的工具和论据
  5. 关机: DELETE, {host}, Mcp-Session-Id: {Mcp-Session-Id},关机不在本实践中,但它是简单的REST请求

标头

  • Content-Type: application/json
  • Accept: application/json, text/event-stream
  • Mcp-Session-Id:会话标识符(初始化后)

🎯 实施技巧

自定义MCP客户端实现

  1. 错误处理:始终检查HTTP会话初始化
  2. 会话管理:正确存储和重用会话ID
  3. SSE解析:寻找 data: 前缀行,忽略 [DONE]
  4. JSON-RPC错误:检查 error 响应中的字段
  5. 内容提取:工具结果在 result.content[0].text

常见问题

  • 缺少接受标头:服务器需要JSON和SSE接受类型
  • 会话ID丢失:大多数操作都需要有效的会话ID
  • 工具参数:参数必须按照工具架构正确格式化
  • 异步上下文:对HTTP请求使用适当的异步/等待模式

📚 额外资源

______________________________________________________________________

#

目录标签

目录标签

AI代理Python会话管理协议实现本地部署服务器架构JSON-RPC

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP