yhtool MCP Server - 提供数据查询、数据保存和邮件发送功能
Project description
tags:
- mcp
- python
- 数据库
- 邮件 aliases:
- yhtool-mcp
- 数据库工具 date: 2026-04-15
yhtool MCP Server 使用文档
1. 简介
“一会”工具,让AI干啥都一会。 致力成为适配80%工作场景的综合工具。
yhtool MCP Server 是一个 MCP 服务器,提供数据查询,数据保存和邮件发送功能。
特点:
- 节省token,只保留日常使用频率较高的tool,避免启动太多MCP Server,占据太多上下文;
- 一个基础助手Agent只勾选一个MCP工具,yhtool;
- 不求最细,但求最全。只追求能覆盖8成工作中的使用最多的场景,剩下2成有其它垂直MCP完成;
核心功能:
- 数据保存到 CSV 文件
- 数据保存到 MySQL 数据库
- 邮件发送功能
- 图片上传获取链接(SM.MS)
- 从csv、excel、sql中读取数据
2. 安装配置
前置要求
uv 包管理器(推荐) [[uv开发管理#2. 安装命令]] Windows 安装(PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux 安装:
curl -LsSf https://astral.sh/uv/install.sh | sh
验证安装:
uv --version
MCP 客户端配置
以TRAE为例,点击界面右上⚙️‘设置’,选择‘MCP’,‘添加’,‘手动配置’; 修改下面配置json的环境变量信息,主要是你的数据库连接、邮箱smtp配置、图床key。复制粘贴到配置窗口即可。
在你的 MCP 客户端配置中添加:
{
"mcpServers": {
"yhtool": {
"command": "uv",
"args": [
"run",
"d:\\yhtool-mcp-server\\server.py"
],
"env": {
"CONSTR_MYSQL": "mysql+pymysql://user:pass@host:port/database",
"EMAIL_PARAMS": "[\"user@example.com\",\"password\",\"smtp.example.com\",587]",
"SMMS_KEY": "your-api-key"
}
}
}
}
环境变量配置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
CONSTR_MYSQL |
MySQL 连接字符串 | mysql+pymysql://user:password@host:port/database |
EMAIL_PARAMS |
邮件参数(JSON 数组)支持SSL587和TLS465两种协议端口; | ["user@example.com","your-password","smtp.example.com",587] |
SMMS_KEY |
SM.MS API Key | your-api-key-here |
注意:
- 环境变量值需要 JSON 格式的字符串,注意字符转义;
3. 使用示例
示例1:保存数据到 CSV
请帮我保存以下数据到 CSV 文件:
[
{"日期": "2026-04-01", "数值": 100},
{"日期": "2026-04-02", "数值": 200}
]
示例2:保存数据到数据库
请帮我保存以下数据到 MySQL 数据库 db1.test_table:
[
{"日期": "2026-04-01", "数值": 100},
{"日期": "2026-04-02", "数值": 200}
]
示例3:发送邮件
请帮我发送一封邮件:
收件人:user@example.com
主题:测试邮件
内容:这是一封测试邮件
示例4:上传图片获取链接
请帮我上传这张图片并获取链接:
图片路径:C:\Users\Desktop\test.png
请帮我上传这张网络图片并获取链接:
图片URL:https://example.com/image.png
示例5:读取 CSV 数据
请帮我读取这个 CSV 文件:
文件路径:C:\Users\Desktop\test.csv
示例6:读取 Excel 数据
帮我读取excel中的前5条数据,文件路径"D:\\2025_rlt.xlsx"
示例7:读取 SQL 数据
请帮我执行这个 SQL 查询并返回前100条:
SQL语句:SELECT * FROM table_name
限制条数:100
4. 可用工具(非开发人员后续内容忽略即可)
3.1 seq_save_csv - 保存到 CSV
将数据保存到 CSV 文件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | array | ✅ | 数据列表,每个元素是一个字典 |
| file_path | string | ❌ | CSV 文件路径,可选 |
| encoding | string | ❌ | 文件编码,默认 utf-8 |
示例:
# 调用示例
data = [
{"name": "张三", "age": 25},
{"name": "李四", "age": 30}
]
seq_save_csv(data=data, file_path="C:\\Users\\Desktop\\test.csv")
3.2 seq_save_db - 保存到数据库
将数据保存到 MySQL 数据库。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | array | ✅ | 数据列表,每个元素是一个字典 |
| dbname | string | ❌ | 数据库名,默认 test |
| tbname | string | ❌ | 表名,可选 |
| upt_cate | string | ❌ | 更新方式:insert into、insert ignore、replace into,默认 insert into |
| chunksize | integer | ❌ | 每次更新条数,默认 1000 |
| constr | string | ❌ | 数据库连接字符串,可选 |
示例:
# 调用示例
data = [
{"name": "张三", "age": 25},
{"name": "李四", "age": 30}
]
seq_save_db(
data=data,
dbname="hfdb",
tbname="test_table",
upt_cate="insert into"
)
3.6 seqSave - 底层保存函数(开发者)
底层数据保存函数,接收 JSON 格式的数据。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| dfjson | string | ✅ | JSON 格式的数据,如 [{"col1": "value1","col2": null}] |
| cate | string | ❌ | 保存类型:csv 或 db,默认 csv |
| fp | string | ❌ | CSV 文件路径,可选 |
| encoding | string | ❌ | 文件编码,默认 utf8 |
| dbname | string | ❌ | 数据库名,默认 test |
| tbname | string | ❌ | 表名,可选 |
| upt_cate | string | ❌ | 更新方式:insert into、insert ignore、replace into |
| chunksize | integer | ❌ | 每次更新条数,默认 1000 |
| constr | string | ❌ | 数据库连接字符串,可选 |
示例:
# 调用示例
data_json = '[{"name": "张三", "age": 25}, {"name": "李四", "age": 30}]'
seqSave(data_json, cate="csv", fp="C:\\Users\\Desktop\\test.csv")
3.3 send_email - 发送邮件
发送邮件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| to | array | ❌ | 收件人地址列表,默认 同配置的邮箱 |
| cc | array | ❌ | 抄送地址列表,默认 [] |
| subject | string | ❌ | 邮件主题,默认 "邮件测试" |
| contents | string | ❌ | 邮件内容,默认 "测试内容,请忽略" |
| attachments | array | ❌ | 附件文件路径列表,默认 None |
示例:
# 调用示例
send_email(
to=["user1@example.com", "user2@example.com"],
subject="测试邮件",
contents="这是一封测试邮件",
attachments=["C:\\Users\\Desktop\\test.pdf"]
)
3.4 get_pic_link - 图片上传获取链接
上传图片或网络链接,获取图片链接(SM.MS 图床)。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| imgfp | string | ✅ | 图片的绝对路径或网络图片URL |
| print_img_html | boolean | ❌ | 是否打印 HTML 标签代码,默认 True |
示例:
# 调用示例 - 本地图片
get_pic_link(imgfp="C:\\Users\\Desktop\\test.png")
# 调用示例 - 网络图片
get_pic_link(imgfp="https://example.com/image.png")
3.5 read_data - 读取数据
读取 CSV、Excel 或 SQL 数据,返回 JSON 格式。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cate | string | ❌ | 读取类型:csv、excel、sql,默认 csv |
| fp | string | ❌ | 文件路径(csv/excel 时必填) |
| encoding | string | ❌ | 文件编码,默认 utf8 |
| sheet_name | string | ❌ | Excel sheet 名(excel 时可选),默认0 |
| sqlstr | string | ❌ | SQL 查询语句(sql 时必填) |
| constr | string | ❌ | 数据库连接字符串(sql 时可选) |
| limit_rows | integer | ❌ | 限制读取条数,默认 None |
示例:
# 调用示例 - 读取 CSV
read_data(cate="csv", fp="C:\\Users\\Desktop\\test.csv")
# 调用示例 - 读取 Excel
read_data(cate="excel", fp="C:\\Users\\Desktop\\test.xlsx", sheet_name="Sheet1")
# 调用示例 - 读取 SQL
read_data(cate="sql", sqlstr="SELECT * FROM table", limit_rows=100)
5. 注意事项
- 数据库配置:推荐通过环境变量
CONSTR_MYSQL配置,也可以使用默认配置 - 邮件配置:推荐通过环境变量
EMAIL_PARAMS配置,也可以使用默认配置 - 数据格式:传入的 data 必须是字典列表格式
- 编码问题:CSV 默认使用 utf-8 编码,如需要 gbk 可在调用时指定 encoding="gbk"
- 环境变量:环境变量值需要 JSON 格式的字符串
6. 依赖项
- pandas>=2.0.0
- yagmail==0.15.293
- requests>=2.32.0
- sqlalchemy>=2.0.0
- pymysql>=1.0.0
- mcp[cli]>=1.0.0
- httpx>=0.27.0
- setuptools>=65.0.0
- openpyxl>=3.1.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yhtool_mcp_server-0.0.26032411.tar.gz.
File metadata
- Download URL: yhtool_mcp_server-0.0.26032411.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88bdc3f0dc926993bb9d5ae1369103cf9bfe701a9e941f6bf3e4b833351af67a
|
|
| MD5 |
92e464433824af5fa16da25c941e8521
|
|
| BLAKE2b-256 |
874ee64bf2b754ac42efaa981a4de501b2e5e0145bcb84803d29f90ad1c7f9d0
|
File details
Details for the file yhtool_mcp_server-0.0.26032411-py3-none-any.whl.
File metadata
- Download URL: yhtool_mcp_server-0.0.26032411-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e83179f2b5e94a36ea1848c34035dfed77139b65db491e6fc0beac31d126fa1
|
|
| MD5 |
f55427026ad342ef55354e73ea3462ca
|
|
| BLAKE2b-256 |
9e3f9784375f8546f9df5f7b237c6b02584f5587b7e5083035f51973b0b94061
|