Token导航 LogoToken导航TokenDH.com
Build A Custom MCP Client With Python logo
AI代理stdio官方级别未说明来源级核验

Build A Custom MCP Client With Python

MCP Server

一个基于Python的MCP客户端构建工具,支持通过STDIO传输与MCP服务器交互,实现工具调用、资源访问和提示渲染等功能。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
命令行工具AI代理PythonSession认证

安装说明

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

作者 / 组织

LeelaissakAttota

提供方

LeelaissakAttota

最后核验

2026/5/17 20:21

快速接入

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

命令预览

pip install mcp==1.16.0 fastmcp

详细介绍

🛠️ 用Python构建自定义MCP客户端

Language Framework Protocol Transport Interface Focus Status

______________________________________________________________________

📌 项目概述

该项目演示了如何构建 最小,功能齐全 从头开始模型上下文协议(MCP)客户端 使用Python。

它提供了MCP核心通信的实践实施 模式——通过以下方式连接到MCP服务器 STDIO传输 和 与所有三个MCP原语交互: 工具、资源、, 和提示 --通过干净的命令行界面。

域名: 代理AI——MCP客户端开发\ 语言: Python 3.11\ 运输: STDIO(标准输入/输出)\ 接口: 交互式CLI

______________________________________________________________________

🏗️ 建筑

┌─────────────────────────────────────────────┐
│            Host Process                      │
│   Orchestrates client & manages security    │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────▼──────────────────────────┐
│         MCP Client (mcp_client.py)           │
│                                             │
│  MCPClient Class                            │
│  ├── connect()      → Initialize session    │
│  ├── list_tools()   → Discover tools        │
│  ├── call_tool()    → Execute tools         │
│  ├── list_resources() → Discover resources  │
│  ├── read_resource()  → Read by URI         │
│  ├── list_prompts()   → Discover prompts    │
│  └── get_prompt()     → Render template     │
│                                             │
│  CLI Commands: tools | call | resources     │
│               read | prompts | prompt | quit│
└──────────────────┬──────────────────────────┘
                   │  STDIO Transport
┌──────────────────▼──────────────────────────┐
│         MCP Server (mcp_server.py)           │
│                                             │
│  🔧 Tools                                   │
│  ├── echo(text)      → Echo input text      │
│  └── write_file(path, content) → Save file  │
│                                             │
│  📦 Resources                               │
│  └── file://resources/{filename}            │
│                                             │
│  💬 Prompts                                 │
│  └── review_file(filename)                  │
└─────────────────────────────────────────────┘

______________________________________________________________________

📂 项目结构

mcp-client-lab/
│
├── mcp_client.py          # Full MCP client with CLI interface
├── mcp_server.py          # FastMCP server — tools, resources, prompts
│
├── resources/             # Resource files accessible via MCP
│   ├── test.txt           # Sample test file
│   ├── notes.txt          # Lab notes on MCP concepts
│   └── project_info.txt   # Project metadata
│
└── README.md

______________________________________________________________________

🛠️ 技术栈

组件技术
语言Python 3.11
MCP协议模型上下文协议1.16.0
MCP框架FastMCP
传输stdio(stdioserver参数)
会话客户端会话(JSON-RPC 2.0)
async异步+异步堆栈
界面交互式CLI

______________________________________________________________________

🔧 MCP服务器功能

工具(共2个)

工具参数描述
echotext: str回显输入文本
write_filepath: str, content: str将内容写入文件

资源

URI模板描述
file://resources/{filename}从资源目录读取任何文件

提示

提示参数描述
review_filefilename: str生成文件审查提示

______________________________________________________________________

🚀 MCP客户端-CLI命令

=== MCP Client ===
Commands: tools | call | resources | read | prompts | prompt | help | quit

> tools          # List all available tools with descriptions
> call           # Invoke a tool with JSON arguments
> resources      # List all resource URI templates
> read           # Read a resource by URI
> prompts        # List all prompt templates
> prompt         # Get a rendered prompt
> help           # Show all commands
> quit           # Exit client

______________________________________________________________________

⚙️ 如何跑步

步骤1——创建虚拟环境:

python3.11 -m venv mcp_client_env
source mcp_client_env/bin/activate   # Linux/Mac
mcp_client_env\Scripts\activate      # Windows

步骤2——安装依赖项:

pip install mcp==1.16.0 fastmcp

步骤3——启动客户端(自动连接到服务器):

python mcp_client.py mcp_server.py

步骤4--尝试以下命令:

> tools
  • echo: Echo back the input text
  • write_file: Write content to a file

> call
  Tool name: echo
  Arguments: {"text": "Hello MCP!"}
  Result: Echo: Hello MCP!

> resources
  • file://resources/{filename}

> read
  URI: file://resources/notes.txt
  Lab Notes
  - MCP uses JSON-RPC 2.0
  ...

______________________________________________________________________

🔄 MCP生命周期实施

该项目严格遵循 三个强制性MCP阶段:

Phase 1 — INITIALIZATION
   client.connect(server_script)
   → stdio_client() establishes STDIO transport
   → ClientSession created
   → session.initialize() completes handshake

Phase 2 — OPERATION
   → list_tools() / call_tool()
   → list_resources() / read_resource()
   → list_prompts() / get_prompt()

Phase 3 — SHUTDOWN
   → client.cleanup()
   → exit_stack.aclose()
   → All connections gracefully closed

______________________________________________________________________

📝 关键概念演示

概念实施
STDIO传输StdioServerParameters + stdio_client()
会话管理ClientSession 随着 AsyncExitStack
工具发现session.list_tools()
工具调用session.call_tool(name, args)
资源模板URI模式 file://resources/{filename}
资源阅读session.read_resource(uri)
快速发现session.list_prompts()
快速渲染session.get_prompt(name, args)
JSON-RPC 2.0由ClientSession内部处理

______________________________________________________________________

🎓 技能展示

  • 从头开始实现模型上下文协议(MCP)客户端
  • STDIO传输通信模式
  • MCP会话生命周期管理(Init→ 操作→ 关机)
  • 通过JSON-RPC 2.0发现和调用工具
  • 资源模板URI模式处理
  • 快速发现和呈现模板
  • 异步Python——异步、异步堆栈
  • 交互式CLI应用程序开发
  • 带工具、资源和提示的FastMCP服务器
  • MCP协议操作的错误处理

______________________________________________________________________

📜 认证

认证发卡机构平台
IBM数据科学专业证书IBMCoursera
IBM生成人工智能专业证书IBMCoursera
IBM代理人工智能与RAG证书IBMCoursera
IBM RAG和代理人工智能专业证书IBMCoursera

______________________________________________________________________

🤝 与我联系

![LinkedIn](https://www.linkedin.com/in/leela-a) ![Gmail](mailto:attotaleelaissak@gmail.com) ](https://github.com/Leelaissakattaota)

目录标签

目录标签

命令行工具AI代理PythonSession认证MCP协议本地部署Python开发STDIO传输CLI工具

接入字段

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

stdio

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

session

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP