玛丽娜MCP聊天机器人
使用模型上下文协议(MCP)构建的码头信息和服务的综合聊天机器人应用程序。该聊天机器人提供对码头数据的实时访问,包括天气、WiFi接入、滑行可用性、紧急联系人等。
🚤 特性
Marina MCP聊天机器人包括以下工具:
核心码头工具
- 🌤️ 天气信息 -获取码头位置的当前天气和预报
- 📶 WiFi接入 -检索游艇码头的WiFi密码和网络信息
- 🏖️ 码头信息 -访问码头的基本细节、运营时间和设施
- 🌊 潮汐信息 -获取码头位置的潮汐时间表和水位数据
其他重要工具
- 🚤 滑盖可用性 -查看船票可用性并预订
- 🚨 紧急联系人 -访问紧急服务、安保和安全联系人
- ⛽ 燃料价格 -获取当前燃油价格和加油站信息
- 🔧 码头服务 -有关可用维护和维修服务的信息
🏗️ 项目结构
MCP-Server-VELA/
├── mcp_server/ # MCP Server implementation
│ ├── main.py # Server entry point
│ ├── server.py # Core server logic
│ ├── database.py # MongoDB connection and operations
│ ├── config.py # Configuration management
│ └── tools/ # Individual tool implementations
│ ├── base.py # Base tool class
│ ├── weather.py # Weather information tool
│ ├── wifi_access.py # WiFi access tool
│ ├── marina_info.py # Marina information tool
│ ├── tide_information.py # Tide information tool
│ ├── slip_availability.py # Slip availability tool
│ ├── emergency_contacts.py # Emergency contacts tool
│ ├── fuel_prices.py # Fuel prices tool
│ └── dock_services.py # Dock services tool
├── mcp-client/ # MCP Client for testing
│ └── test_client.py # Test client implementation
├── mcp-host/ # MCP Host for chatbot integration
│ └── host.py # Host implementation
├── examples/ # Example implementations
│ ├── simple_chatbot.py # Simple chatbot example
│ └── populate_mongodb.py # MongoDB population script
├── docs/ # Documentation
│ ├── API_REFERENCE.md # Detailed API documentation
│ ├── QUICK_START.md # Quick start guide
│ └── MONGODB_SCHEMA.md # MongoDB schema documentation
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
├── env.example # Environment variables template
└── README.md # This file🚀 快速开始
先决条件
- Python 3.8或更高版本
- MongoDB实例(本地或云)
- OpenWeatherMap API密钥(用于天气数据)
- NOAA API访问(用于潮汐数据)
安装
- 克隆存储库:
git clone
cd MCP-Server-VELA- 创建并激活虚拟环境:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
cp env.example .env
# Edit .env with your actual values- 设置MongoDB:
- 确保MongoDB正在运行 - 数据库名称包含在您的 MONGODB_URI (默认值: marina_db) - 可以选择运行样本数据的填充脚本:
python examples/populate_mongodb.py- 启动MCP服务器:
python -m mcp_server.main⚙️ 配置
环境变量
创建一个 .env 包含以下变量的文件:
# Weather API Configuration
WEATHER_API_KEY=your_openweathermap_api_key_here
WEATHER_BASE_URL=https://api.openweathermap.org/data/2.5
# MongoDB Configuration - Single URI approach
MONGODB_URI=mongodb://localhost:27017/marina_db
# Tide API Configuration (optional)
TIDE_API_KEY=your_tide_api_key_here
TIDE_BASE_URL=https://api.tidesandcurrents.noaa.gov/api/prod/datagetter
# MCP Server Configuration
MCP_SERVER_HOST=localhost
MCP_SERVER_PORT=8000
MCP_SERVER_LOG_LEVEL=INFO
# Logging Configuration
LOG_LEVEL=INFO
LOG_FILE=marina_mcp.logMongoDB架构
应用程序使用单个 marinas 包含嵌入式文档的集合:
marinas-完整的码头信息,包括:
- 码头基本信息和联系方式 - WiFi网络和密码 - 凭条可用性和预订 - 紧急联系人 - 燃料价格 - 码头服务 - 潮汐信息
所有数据都嵌入在每个marina文档中,消除了连接的需要,并遵循MongoDB的最佳实践。
看 docs/MONGODB_SCHEMA.md 有关详细的模式信息。
🧪 测试
测试客户端
使用附带的测试客户端验证工具功能:
python -m mcp_client.test_client简单聊天机器人
运行示例聊天机器人:
python examples/simple_chatbot.py🔧 发展
添加新工具
- 在中创建新的工具类
mcp_server/tools/ - 从……继承……
BaseMarinaTool - 实现所需的属性和方法
- 在中注册该工具
mcp_server/main.py
数据库操作
所有数据库操作都集中在 mcp_server/database.py。根据需要添加新方法以实现附加功能。
📚 文档
- api参考:
docs/API_REFERENCE.md-详细的工具文档 - 快速开始:
docs/QUICK_START.md-分步设置指南 - MongoDB架构:
docs/MONGODB_SCHEMA.md-数据库结构和示例
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🆘 支持
对于问题和疑问:
- 检查文档
- 审查现有问题
- 创建包含详细信息的新问题
🚀 后续步骤
- \[\]添加身份验证和授权
- \[\]实现实时通知
- \[\]添加对多种语言的支持
- \[\]创建基于web的管理界面
- \[\]添加分析和报告
- \[\]实施备份和恢复程序
