使用说明
MCP玩具数据集服务器
一个简单的模型上下文协议(MCP)服务器,带有用于实验和学习的玩具产品数据集。此服务器通过Claude Desktop可以查询的工具和资源公开产品数据。
特性
- 搜索产品:按名称或类别搜索
- 按价格筛选:查找价格范围内的产品
- 按ID获取产品:检索特定产品详细信息
- 数据集统计:查看有关数据集的聚合统计信息
- 资源访问:直接访问完整的数据集
数据集
玩具数据集包括三个类别的8个样本产品:
- 电子产品(笔记本电脑、鼠标、显示器、键盘)
- 家具(桌椅、台灯)
- 文具(笔记本、笔套)
每个产品都有:ID、名称、类别、价格和库存数量。
先决条件
- Python 3.8或更高版本
- Claude桌面应用程序
- pip(Python包管理器)
安装
1.克隆存储库
git clone <your-repo-url>
cd <repo-directory>
2.创建虚拟环境(推荐)
# Create virtual environment
python3 -m venv venv
# Activate it
# On macOS/Linux:
source venv/bin/activate
# On Windows:
.\venv\Scripts\activate
3.安装MCP Python SDK
pip install mcp
4.验证安装
python -c "import mcp; print('MCP installed successfully!')"
配置
配置Claude桌面
-
找到您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
创建或编辑配置文件 内容如下:
{
"mcpServers": {
"toy-products": {
"command": "/absolute/path/to/venv/bin/python",
"args": ["/absolute/path/to/toy_mcp_server.py"]
}
}
}
- 替换路径:
- 替换
/absolute/path/to/venv/bin/python使用虚拟环境的Python路径 - 替换
/absolute/path/to/toy_mcp_server.py包含服务器脚本的完整路径
- 替换
查找虚拟环境的Python路径:
# Activate your venv first, then run:
which python # macOS/Linux
where python # Windows
示例配置:
macOS:
{
"mcpServers": {
"toy-products": {
"command": "/Users/yourname/projects/mcp-toy-server/venv/bin/python",
"args": ["/Users/yourname/projects/mcp-toy-server/toy_mcp_server.py"]
}
}
}
窗户:
{
"mcpServers": {
"toy-products": {
"command": "C:\\Users\\YourName\\projects\\mcp-toy-server\\venv\\Scripts\\python.exe",
"args": ["C:\\Users\\YourName\\projects\\mcp-toy-server\\toy_mcp_server.py"]
}
}
}
- 保存文件并重新启动Claude Desktop
用法
配置后,Claude Desktop将自动启动MCP服务器。你不需要手动运行它。
验证连接
打开克劳德桌面,寻找显示“玩具产品”已连接的MCP连接指示器。
查询示例
在Claude Desktop中尝试以下查询与玩具数据集进行交互:
搜索产品
Search for electronics in the toy dataset
按价格筛选
Show me all products under $50
Find products between $100 and $300
获取特定产品
Get details for product ID 3
查看所有产品
Show me all products in the dataset
数据集统计
What are the statistics for the toy dataset?
类别搜索
Show me all furniture items
复杂查询
What's the most expensive item in stock?
List all electronics sorted by price
可用工具
服务器提供以下工具:
| 工具名称 | 描述 | 参数 |
|---|---|---|
search_products |
按名称或类别搜索 | query (字符串) |
get_product_by_id |
获取特定产品 | product_id (整数) |
filter_by_price |
按价格范围筛选 | min_price, max_price (数字) |
get_all_products |
获取整个数据集 | 无 |
可用资源
| 资源URI | 描述 |
|---|---|
dataset://products/all |
完整的产品目录 |
dataset://products/stats |
数据集统计 |
故障排除
服务器未启动
检查日志:
- macOS:
~/Library/Logs/Claude/mcp*.log - 窗户:
%APPDATA%\Claude\logs\mcp*.log
常见问题:
-
ModuleNotFoundError:没有名为“mcp”的模块
- 确保在配置中指向虚拟环境的Python
- 验证MCP是否已安装:
pip list | grep mcp
-
找不到文件错误
- 使用绝对路径,而不是相对路径
- 验证文件路径是否正确
-
权限被拒绝(macOS/Linux)
chmod +x toy_mcp_server.py -
配置中的JSON语法错误
- 在jsonline.com上验证您的JSON
- 检查是否缺少逗号或括号
手动测试
直接测试服务器:
python toy_mcp_server.py
服务器应无错误启动并等待输入(最初不会打印任何内容)。
定制
添加更多产品
编辑 TOY_DATASET 在中列出 toy_mcp_server.py:
TOY_DATASET = [
{"id": 9, "name": "New Product", "category": "Category", "price": 99.99, "stock": 20},
# Add more products...
]
添加新工具
在中添加新的工具定义 @server.list_tools() 功能和实现逻辑 @server.call_tool().
添加新资源
在中添加新资源 @server.list_resources() 并实现逻辑 @server.read_resource().
项目结构
.
├── toy_mcp_server.py # Main MCP server implementation
├── README.md # This file
└── venv/ # Virtual environment (not committed)
学习资源
许可证
MIT许可证-您可以根据自己的项目自由使用和修改。
贡献
这是一个简单的教育项目。请随意分叉和实验!
致谢
使用Anthropic的模型上下文协议(MCP)构建。