semvec/pypi-packages huggingface dataset:
fastmcp-client-demo 0.1.2
FastMCP client demo using uv
License: MIT
Requires Python: >=3.10
Keywords: fastmcp, mcp, client, demo

# FastMCP 客户端示例

这是一个使用 `uv` 和 FastMCP 创建的客户端项目示例。

## 项目结构

```
.
├── pyproject.toml      # 项目配置和依赖
├── client.py           # FastMCP 客户端示例
├── server.py           # 简单的 FastMCP 服务器（用于测试）
├── test_client.py      # 客户端测试
└── README.md           # 本文件
```

## 快速开始

### 1. 安装依赖

使用 `uv` 安装项目依赖：

```bash
uv sync
```

### 2. 运行服务器

在一个终端中启动 MCP 服务器：

```bash
uv run python server.py
```

### 3. 运行客户端

在另一个终端中运行客户端：

```bash
uv run python client.py
```

### 4. 运行测试

运行客户端测试：

```bash
uv run pytest test_client.py -v
```

## 文件说明

### `server.py`

一个简单的 FastMCP 服务器示例，包含：

- `add(a, b)` - 加法工具
- `multiply(a, b)` - 乘法工具
- `greet(name)` - 问候工具
- `hello_resource` - 资源示例
- `greeting_prompt` - 提示示例

### `client.py`

FastMCP 客户端示例，演示：

- 连接到 STDIO 服务器
- 列出可用工具
- 调用工具
- 列出资源和提示
- HTTP 服务器连接示例
- 从配置创建客户端

### `test_client.py`

使用 pytest 的客户端测试示例，演示：

- 工具列表测试
- 工具调用测试
- 错误处理测试

## FastMCP 客户端特性

FastMCP 客户端支持三种传输方式：

1. **In-Memory Transport** - 直接连接到同一进程中的 FastMCP 服务器

   ```python
   client = Client(server=mcp_instance)
   ```

2. **STDIO Transport** - 通过 stdin/stdout 与子进程通信

   ```python
   client = Client(
       name="my-client",
       command="python",
       args=["server.py"],
   )
   ```

3. **HTTP Transport** - 连接到 HTTP 服务器
   ```python
   client = Client(
       name="http-client",
       url="http://localhost:8000",
   )
   ```

## 常用操作

### 列出工具

```python
async with client:
    tools = await client.list_tools()
    for tool in tools:
        print(f"{tool.name}: {tool.description}")
```

### 调用工具

```python
async with client:
    result = await client.call_tool("add", {"a": 5, "b": 3})
    print(result)
```

### 读取资源

```python
async with client:
    resource = await client.read_resource("text://hello")
    print(resource)
```

### 获取提示

```python
async with client:
    prompt = await client.get_prompt("greeting_prompt", {"name": "World"})
    print(prompt)
```

## 更多信息

- [FastMCP 官方文档](https://gofastmcp.com)
- [FastMCP 客户端文档](https://gofastmcp.com/clients/client)
- [uv 文档](https://docs.astral.sh/uv/)
create-fastmcp 0.1.0
FastMCP 项目脚手架 CLI - 快速创建 MCP 服务器项目
License: MIT
Requires Python: >=3.10
Keywords: fastmcp, mcp, scaffold, cli, create, template, generator

# create-fastmcp

> FastMCP 项目脚手架 CLI - 快速创建 MCP 服务器项目

类似于 `create-vite`，提供交互式和命令行两种方式快速创建 FastMCP 项目。

## 安装

```bash
# 使用 pip
pip install create-fastmcp

# 使用 uv
uv pip install create-fastmcp
```

## 使用

### 方式一：交互式创建（推荐）

```bash
# 使用 uvx（无需安装）
uvx create-fastmcp -i

# 或已安装后
create-fastmcp -i
```

交互式模式提供类似 `create-vite` 的体验：

- 步骤式引导
- 空格选中依赖
- 上下键移动选择
- 配置预览确认

### 方式二：命令行快速创建

```bash
# 最简方式
create-fastmcp my-mcp-server

# 完整参数
create-fastmcp my-mcp-server \
  -d "My MCP Server" \
  -a "Your Name" \
  -e "email@example.com" \
  -l MIT \
  -r "https://github.com/user/repo" \
  -k "mcp,fastmcp,server"
```

### 命令行参数

```
Usage: create-fastmcp [OPTIONS] [NAME]

Arguments:
  [NAME]  项目名称

Options:
  -d, --description TEXT  项目描述
  -a, --author TEXT       作者名称
  -e, --email TEXT        作者邮箱
  -l, --license TEXT      许可证类型 [default: MIT]
  -r, --repo TEXT         仓库地址
  -k, --keywords TEXT     关键词 (逗号分隔)
  -o, --output TEXT       输出目录
  -i, --interactive       交互式模式
  --help                  显示帮助信息
```

## 生成的项目结构

```
my-mcp-server/
├── pyproject.toml       # 项目配置（uv_build）
├── README.md            # 项目说明
├── AGENTS.md            # AI 代理开发指南
├── .gitignore           # Git 忽略文件
├── src/
│   └── my_mcp_server/
│       ├── __init__.py  # 包入口
│       ├── server.py    # MCP 服务器
│       └── cli.py       # CLI 入口
├── tests/
│   ├── __init__.py
│   └── test_basic.py
└── docs/
```

## 生成项目的使用

```bash
cd my-mcp-server

# 安装依赖
uv sync

# 运行服务器
uv run my-mcp-server serve

# 查看帮助
uv run my-mcp-server --help

# 运行测试
uv run pytest
```

## 特性

- 🚀 **快速创建** - 一条命令创建完整项目
- 🎯 **交互式** - 类似 create-vite 的引导体验
- 📦 **开箱即用** - 生成的项目可直接运行
- 🔧 **可定制** - 支持自定义依赖、许可证等
- 📝 **完整文档** - 自动生成 README 和 AGENTS.md
- ✅ **最佳实践** - 遵循 Python 打包规范（PEP 621）

## 可选依赖

交互式模式支持选择以下额外依赖：

- `click` - 命令行框架
- `typer` - 现代 CLI 框架（默认包含）
- `httpx` - HTTP 客户端
- `pydantic` - 数据验证
- `python-dotenv` - 环境变量管理
- `loguru` - 日志库

## 许可证选项

- MIT（默认）
- Apache-2.0
- GPL-3.0
- BSD-3-Clause
- ISC
- Unlicense

## 相关链接

- [FastMCP 官方文档](https://gofastmcp.com)
- [uv 文档](https://docs.astral.sh/uv/)
- [MCP 协议](https://modelcontextprotocol.io/)

## License

MIT