用户数据服务MCP
一种模型上下文协议(MCP)服务器,提供从JSON数据库查询和分析用户数据的工具。
概述
此MCP服务器公开了一组工具,用于与存储在中的用户数据进行交互 sample.json它通过FastMCP框架提供检索、搜索、过滤和分析用户记录的功能。
特性
- 用户检索:获取所有支持分页的用户
- 用户查找:按ID或索引查找用户
- 搜索:按姓名、电子邮件、公司或地址搜索用户
- 过滤:按活动状态、性别、年龄、眼睛颜色、最喜欢的水果或标签筛选用户
- 统计:获取用户数据库的全面统计数据
先决条件
- Python 3.7+
- pip(Python包管理器)
安装
- 克隆或下载此存储库
- 安装所需的依赖项:
pip install fastmcp python-dotenv- 确保你有一个
sample.json与用户数据位于同一目录中的文件
配置
创建一个 .env 如果需要配置环境变量(可选),请将文件放在项目根目录中。
用法
启动服务器
使用以下命令运行服务器:
python server.py服务器将启动并将输出记录到控制台和 mcp_server.log.
可用工具
1.获取所有用户
使用可选分页从数据库中获取所有用户。
参数:
limit(可选):返回的最大用户数offset(默认值:0):要跳过的用户数
退货: 用户记录列表
2.用户id
通过用户的唯一ID获取特定用户。
参数:
user_id:要检索的用户的_id
退货: 用户记录(如果找到),否则无
3.get_user_by_index
通过索引获取特定用户。
参数:
index:要检索的用户的索引
退货: 用户记录(如果找到),否则无
4.搜索用户
使用不区分大小写的部分匹配搜索用户。
参数:
name(可选):按名称搜索email(可选):通过电子邮件搜索company(可选):按公司搜索address(可选):按地址搜索
退货: 匹配的用户记录列表
5.过滤器用户
按各种条件筛选用户。
参数:
is_active(可选):按活动状态筛选(真/假)gender(可选):按性别筛选(男/女)min_age(可选):最低年龄max_age(可选):最大年龄eye_color(可选):按眼睛颜色过滤favorite_fruit(可选):按喜爱的水果筛选has_tag(可选):筛选具有特定标签的用户
退货: 匹配的用户记录列表
6.用户设置
获取用户数据库的全面统计数据。
参数: 无
退货: 词典包含:
- 用户总数
- 活跃/非活跃用户数
- 性别分布
- 眼睛颜色分布
- 最喜欢的水果分布
- 年龄统计(最小、最大、平均)
数据格式
服务器期望 sample.json 包含具有以下结构的用户对象数组:
[
{
"_id": "unique-id",
"index": 0,
"name": "User Name",
"email": "user@example.com",
"company": "Company Name",
"address": "User Address",
"isActive": true,
"gender": "male",
"age": 30,
"eyeColor": "brown",
"favoriteFruit": "apple",
"tags": ["tag1", "tag2"]
}
]日志记录
服务器将所有操作记录到:
- 控制台输出
mcp_server.log文件
日志条目包括时间戳、日志级别和有关服务器操作的详细消息。
错误处理
服务器包括以下错误处理:
- 缺少数据文件
- 无效的JSON格式
- 超出范围查询
错误会记录在相应的错误消息中。
许可证
本项目按原样提供,用于演示目的。
