返回市场
MCP解析服务器

MCP解析服务器

作者:halilkkaya6 星标更新:2025-06-28

项目介绍

🚗 MCP 车辆搜索系统 - 基于AI的车辆画廊助手

MCP Logo

该项目,模型上下文协议(MCP) 是一个综合示例应用,提供AI助手实时访问车辆数据库的功能。Claude展示了像ChatGPT这样的大型语言模型如何与数据库交互。

🎯 项目概要

MCP(模型上下文协议)是一种革命性的协议,允许AI模型以标准化的方式访问外部数据源。本项目通过实际的车辆画廊场景演示了MCP的强大功能。

🔥 基本特性

  • 🤖 AI助手 使用Claude进行自然语言车辆搜索
  • 🗄️ MCP服务器 安全访问MySQL数据库
  • 📊 高级过滤 15种以上不同的搜索标准
  • 🌐 网络集成 当前车辆信息与Tavily API集成
  • 📱 多接口 终端、Streamlit和基于网络的界面
  • 🔒 安全性 参数化查询防止SQL注入

🏗️ 项目架构

MCP 流程图

📦 文件结构

mcp-anlatim/
├── 📱 应用程序
│   ├── app.py              # 主终端应用程序(Claude + MCP)
│   ├── appst.py            # Streamlit网络应用程序(无MCP,OpenAI + LangChain)
│   └── mcpanlatim.py       # 全面培训和演示应用程序
├── 🔧 MCP服务器
│   └── dataturkmcp.py      # 基于FastMCP的车辆搜索服务器
├── 🗄️ 数据
│   └── veri.xlsx           # Excel格式的车辆数据
├── 📋 配置
│   ├── requirements.txt    # Python依赖项
│   └── .env               # 环境变量(API密钥)
├── 📚 文档
│   ├── README.md          # 此文件
│   ├── kaynak.txt         # 来源和链接
│   └── *.png, *.jpeg      # 视觉材料
└── 📄 LICENSE             # MIT许可证

🚀 快速开始

1️⃣ 安装

# 克隆项目
git clone https://github.com/halilkkaya/mcp-anlatim.git
cd mcp-anlatim

# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或者
venv\Scripts\activate     # Windows

# 安装依赖项
pip install -r requirements.txt

2️⃣ 设置环境变量

创建.env文件:

# AI API密钥
ANTHROPIC_API_KEY=your_claude_api_key_here
OPENAI_API_KEY=your_openai_api_key_here

# 数据库设置
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=mcp_deneme

# 网络搜索API
TAVILY_API_KEY=your_tavily_api_key

# MCP服务器URL
MCP_URL=http://localhost:8000/mcp

3️⃣ 准备数据库

# 在MySQL中创建数据库
mysql -u root -p
CREATE DATABASE mcp_deneme;
USE mcp_deneme;

# 导入车辆数据(如果有)
# 或者使用SQLite文件:arabalar.db

4️⃣ 运行应用程序

🎓 培训和演示(推荐)

streamlit run mcpanlatim.py

全面的MCP叙述、工具介绍和实时测试环境

🖥️ 终端应用程序

python app.py

基于终端的车辆助手,使用Claude

🌐 网络应用程序

streamlit run appst.py

基于OpenAI的网络工具顾问

⚙️ MCP服务器

python dataturkmcp.py

在8000端口启动MCP服务器

🛠️ MCP工具

🔍 araba_ara - 主搜索工具

具有高级过滤选项的车辆搜索:

# 基本过滤
araba_ara(
    marka="toyota",           # 车辆品牌
    model="corolla",          # 模型名称
    min_fiyat=100000,         # 最小价格
    max_fiyat=500000,         # 最大价格
    il="istanbul"             # 城市
)

# 高级特性
araba_ara(
    ozel_arama="ekonomik",    # 预定义类别
    siralama="fiyat_artan",   # 排序类型
    limit=10,                 # 结果数量
    detayli=True,             # 详细信息
    istatistik=True           # 统计数据
)

📋 完整参数列表

参数类型描述示例
markastr/list车辆品牌"Toyota" 或 ["ford", "bmw"]
modelstr模型名称"focus", "corolla"
min_fiyat/max_fiyatint价格范围50000, 200000
min_yil/max_yilint模型年份2015, 2023
min_km/max_kmint行驶里程0, 100000
ilstr城市"istanbul", "ankara"
yakitstr燃料类型"gasoline", "diesel", "hybrid"
vitesstr变速箱类型"manual", "automatic"
durumstr车辆状况"new", "excellent", "good"
tipstr车辆类型"sedan", "suv", "hatchback"
renkstr车辆颜色"white", "black", "grey"
ozel_aramastr特殊类别"economic", "luxury", "family", "sport"
siralamastr排序"price_increased", "year_new", "km_less"
limitint结果数量5(默认值)
detaylibool详细信息True/False
benzer_araclarbool相似建议True/False
istatistikbool统计数据True/False

🔧 其他工具

工具描述使用
sql_sorgusu_calistir自定义SQL查询高级分析
tablolari_listele数据库表结构发现
tablo_yapisi_goster表图列信息
web_aramaTavily API搜索当前信息

💡 示例使用场景

🏠 家庭用车搜索

araba_ara(
    ozel_arama="aile",
    min_fiyat=100000,
    max_fiyat=300000,
    yakit="dizel",
    siralama="fiyat_artan"
)

⚡ 寻找经济型车辆

araba_ara(
    ozel_arama="ekonomik",
    max_fiyat=150000,
    yakit=["hibrit", "dizel"],
    limit=10
)

🏎️ 豪华跑车

araba_ara(
    marka=["bmw", "mercedes", "audi"],
    tip="coupe",
    ozel_arama="lüks",
    min_yil=2020,
    detayli=True
)

📊 市场分析

araba_ara(
    marka="toyota",
    istatistik=True,
    benzer_araclar=True,
    limit=20
)

🤖 AI助手示例

💬 自然语言问题

用户: "我正在寻找适合家庭的经济型汽车"
AI: araba_ara(ozel_arama="aile", yakit="dizel", siralama="fiyat_artan")

用户: "宝马或奔驰,2020年后,双门轿跑车"
AI: araba_ara(marka=["bmw", "mercedes"], tip="coupe", min_yil=2020)

用户: "伊斯坦布尔20万以下的丰田汽车"
AI: araba_ara(marka="toyota", il="istanbul", max_fiyat=200000)

🔒 安全特性

  • 🛡️ SQL注入防护:参数化查询
  • 🔐 API密钥安全:环境变量
  • 🚫 访问控制:活动记录过滤
  • ⚠️ 错误管理:安全错误消息
  • 🔍 输入验证:参数验证

📈 性能优化

  • 📊 数据库索引:快速查询
  • 🔗 连接池:资源管理
  • 📝 查询日志:性能跟踪
  • ⚡ 缓存:响应加速

🎓 MCP学习资源

🛠️ 技术细节

🔧 使用的技术

技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 | 技术 |----------|-----------|----------| | AI模型 | Anthropic Claude | 3.5 Haiku | | | OpenAI GPT | 3.5 Turbo | | MCP框架 | FastMCP | 最新 | | 数据库 | MySQL | 8.0+ | | 网络框架 | Streamlit | 最新 | | 机器学习框架 | LangChain | 最新 | | 搜索API | Tavily | v1 |

⚙️ 系统需求

  • Python:3.8+
  • RAM:2GB+(推荐4GB)
  • 磁盘:1GB可用空间
  • 网络:互联网连接(用于API)

🔧 API密钥

服务为什么需要免费限制
AnthropicClaude AI模型$5信用
OpenAIGPT模型$5信用
Table每月1000次搜索。

📋 安装故障排除

❌ 常见问题

1. ModuleNotFoundError

pip install -r requirements.txt

2. 数据库连接错误

# 确保MySQL服务正在运行
# 检查.env文件中的凭据

3. API密钥错误

# 检查.env文件中的API密钥
# 确保密钥有效

4. 端口已被占用

# 使用其他端口启动MCP服务器
python dataturkmcp.py --port 8001

🤝 贡献指南

  1. 创建一个分支
  2. 创建一个功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加精彩功能'
  4. 推送(git push origin feature/amazing-feature
  5. 打开Pull Request

📄 许可证

此项目发布在MIT许可下。详情请参阅LICENSE文件。

👨‍💻 开发者

Halil Kaya

🙏 感谢。

  • Anthropic - Claude AI模型
  • OpenAI - GPT模型
  • FastMCP - MCP框架
  • Table - 网络搜索API
  • Streamlit - 网络界面

如果喜欢这个项目,请记得给它点赞!

📧 对于您的问题:使用Issues部分

🔄 对于更新:关注仓库