# MCP2 **Repository Path**: wangzai-steamed-bun491487/mcp2 ## Basic Information - **Project Name**: MCP2 - **Description**: AI记忆拓展,增强AI编辑器的功能 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-30 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 集成式多层记忆架构AI系统 一个基于MCP(Model Context Protocol)协议的智能AI系统,集成了多层记忆架构,支持语义搜索、知识管理和对话上下文维护。 ## 🚀 特性 ### 核心功能 - **多层记忆架构**:短期记忆(Redis) + 长期记忆(MongoDB) + 关联记忆(Neo4j) + 语义记忆(ChromaDB) - **MCP协议支持**:完整实现MCP协议,支持工具调用和资源管理 - **多种连接方式**:支持Stdio和WebSocket两种连接方式 - **智能上下文管理**:自动维护用户会话和对话历史 - **语义搜索**:基于向量嵌入的智能文档检索 - **知识图谱**:概念关联和知识推理 ### 技术架构 - **后端框架**:FastAPI + asyncio - **数据库集成**:Redis + MongoDB + Neo4j + ChromaDB - **向量化引擎**:SentenceTransformers - **协议实现**:完整的MCP协议栈 - **日志系统**:结构化日志和监控 ## 📋 系统要求 - Python 3.9+ - Redis 6.0+ - MongoDB 5.0+ - Neo4j 5.0+ - 8GB+ RAM(推荐) - 2GB+ 磁盘空间 ## 🛠️ 安装指南 ### 1. 克隆项目 ```bash git clone cd mcp2 ``` ### 2. 创建虚拟环境 ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 配置数据库 #### Redis ```bash # 使用Docker docker run -d --name redis -p 6379:6379 redis:7-alpine # 或本地安装 # Windows: 下载Redis for Windows # Linux: sudo apt-get install redis-server # Mac: brew install redis ``` #### MongoDB ```bash # 使用Docker docker run -d --name mongodb -p 27017:27017 mongo:7 # 或本地安装 # 访问 https://www.mongodb.com/try/download/community ``` #### Neo4j ```bash # 使用Docker docker run -d --name neo4j \ -p 7474:7474 -p 7687:7687 \ -e NEO4J_AUTH=neo4j/password123 \ neo4j:5 # 或本地安装 # 访问 https://neo4j.com/download/ ``` #### ChromaDB ```bash # ChromaDB会自动安装,无需额外配置 # 数据将存储在本地文件系统中 ``` ### 5. 配置文件 复制并编辑配置文件: ```bash cp config/config.example.yaml config/config.yaml ``` 编辑 `config/config.yaml` 中的数据库连接信息。 ## 🚀 快速开始 ### 1. 启动应用 ```bash python src/main.py ``` ### 2. 验证安装 应用启动后,你应该看到类似输出: ``` 2024-01-01 12:00:00 | INFO | main:initialize:123 - 开始初始化MCP应用... 2024-01-01 12:00:01 | INFO | main:initialize:128 - 初始化数据库管理器... 2024-01-01 12:00:02 | INFO | main:initialize:133 - 初始化上下文编排器... 2024-01-01 12:00:03 | INFO | main:start:180 - MCP应用启动成功 ``` ### 3. 测试连接 #### Stdio连接测试 ```bash # 在另一个终端中 echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0.0"}}}' | python src/main.py ``` #### WebSocket连接测试 ```javascript // 使用WebSocket客户端 const ws = new WebSocket('ws://localhost:8765'); ws.onopen = () => { ws.send(JSON.stringify({ jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: {name: "test-client", version: "1.0.0"} } })); }; ``` ## 📖 使用指南 ### MCP工具 系统提供以下MCP工具: 1. **memory_search** - 搜索记忆 2. **memory_create** - 创建记忆 3. **knowledge_upload** - 上传知识文档 4. **knowledge_search** - 搜索知识库 5. **conversation_create** - 创建对话 6. **conversation_search** - 搜索对话历史 7. **graph_query** - 查询知识图谱 8. **graph_find_related** - 查找相关概念 9. **get_user_context** - 获取用户上下文 10. **health_check** - 健康检查 11. **get_stats** - 获取系统统计 ### MCP资源 系统提供以下MCP资源: 1. **conversations** - 对话历史 2. **memories** - 用户记忆 3. **documents** - 知识文档 4. **embeddings** - 向量嵌入 5. **graph_data** - 图谱数据 6. **user_context** - 用户上下文 7. **system_stats** - 系统统计 8. **health_status** - 健康状态 ### 示例:创建记忆 ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "memory_create", "arguments": { "user_id": "user123", "content": "用户喜欢喝咖啡", "memory_type": "preference", "importance": 0.8 } } } ``` ### 示例:搜索知识库 ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "knowledge_search", "arguments": { "user_id": "user123", "query": "机器学习算法", "limit": 5 } } } ``` ## 🔧 配置说明 ### 数据库配置 ```yaml database: redis: host: localhost port: 6379 db: 0 password: null mongodb: host: localhost port: 27017 database: mcp_memory username: null password: null neo4j: uri: bolt://localhost:7687 username: neo4j password: password123 database: neo4j chromadb: persist_directory: ./data/chromadb collection_metadata: hnsw:space: cosine ``` ### 连接配置 ```yaml connection: stdio: enabled: true websocket: enabled: true host: localhost port: 8765 ``` ### 日志配置 ```yaml logging: console_level: INFO file_enabled: true file_path: logs/mcp_app.log file_level: DEBUG rotation: 10 MB retention: 7 days ``` ## 🏗️ 项目结构 ``` mcp2/ ├── src/ │ ├── config/ # 配置管理 │ ├── database/ # 数据库层 │ ├── core/ # 核心业务逻辑 │ ├── mcp/ # MCP协议实现 │ └── main.py # 应用入口 ├── config/ # 配置文件 ├── logs/ # 日志文件 ├── data/ # 数据存储 ├── tests/ # 测试文件 ├── requirements.txt # Python依赖 └── README.md # 项目文档 ``` ## 🧪 测试 ```bash # 运行所有测试 pytest # 运行特定测试 pytest tests/test_memory.py # 运行测试并生成覆盖率报告 pytest --cov=src ``` ## 📊 监控和日志 ### 日志文件 - 应用日志:`logs/mcp_app.log` - 错误日志:自动轮转,保留7天 ### 健康检查 ```bash # 通过MCP工具检查 echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"health_check","arguments":{}}}' | python src/main.py ``` ### 系统统计 ```bash # 获取系统统计信息 echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_stats","arguments":{}}}' | python src/main.py ``` ## 🔒 安全注意事项 1. **数据库安全**:确保所有数据库都设置了强密码 2. **网络安全**:在生产环境中使用HTTPS/WSS 3. **访问控制**:实施适当的用户认证和授权 4. **数据加密**:敏感数据应加密存储 5. **日志安全**:避免在日志中记录敏感信息 ## 🚀 部署 ### Docker部署 ```bash # 构建镜像 docker build -t mcp-memory-system . # 运行容器 docker run -d --name mcp-app \ -p 8765:8765 \ -v $(pwd)/config:/app/config \ -v $(pwd)/data:/app/data \ -v $(pwd)/logs:/app/logs \ mcp-memory-system ``` ### 生产环境 1. 使用进程管理器(如systemd、supervisor) 2. 配置反向代理(nginx) 3. 设置监控和告警 4. 定期备份数据 5. 实施日志轮转 ## 🤝 贡献 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🆘 支持 如果你遇到问题或有疑问: 1. 查看 [Issues](../../issues) 页面 2. 创建新的 Issue 3. 查看项目文档 4. 联系维护者 ## 📚 相关资源 - [MCP协议规范](https://modelcontextprotocol.io/) - [FastAPI文档](https://fastapi.tiangolo.com/) - [Redis文档](https://redis.io/documentation) - [MongoDB文档](https://docs.mongodb.com/) - [Neo4j文档](https://neo4j.com/docs/) - [ChromaDB文档](https://docs.trychroma.com/) --- **注意**:这是一个实验性项目,请在生产环境中谨慎使用。