solo-mcp


Namesolo-mcp JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/your-username/solo-mcp
Summary智能代理协作平台 - 基于 MCP 协议的多角色任务编排系统
upload_time2025-08-13 18:21:13
maintainerNone
docs_urlNone
authorSolo MCP Team
requires_python>=3.11
licenseApache-2.0
keywords mcp ai agent orchestration memory context
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Solo MCP - 智能多角色协作平台

[![Python Version](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](tests/)
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)

一个基于 Model Context Protocol (MCP) 的智能多角色协作系统,通过模拟不同专业角色的协作来提升项目开发效率。Solo MCP 让单人开发者能够获得团队协作的智慧,实现更高质量的软件开发。

## ✨ 核心特性

### 🎭 智能角色系统
- **多角色模拟**: 智能模拟产品经理、架构师、开发者、测试工程师等专业角色
- **动态角色分配**: 根据任务类型自动选择最适合的角色组合
- **角色协作**: 不同角色间的智能对话和决策协商

### 🧠 先进记忆管理
- **持久化存储**: 项目知识的长期记忆和快速检索
- **上下文感知**: 基于当前任务智能推荐相关历史信息
- **学习能力**: 从项目历史中学习最佳实践和常见模式

### 🔄 智能任务编排
- **自动任务分解**: 将复杂项目分解为可管理的子任务
- **冲突检测**: 识别和解决任务间的潜在冲突
- **优先级管理**: 基于项目目标智能排序任务优先级

### 📊 全面上下文分析
- **代码理解**: 深度分析项目结构、依赖关系和代码质量
- **文档解析**: 自动提取和整理项目文档信息
- **环境感知**: 识别开发环境、工具链和配置

### 🚀 标准化集成
- **MCP 协议**: 基于 Model Context Protocol 标准,确保兼容性
- **插件架构**: 支持自定义工具和扩展
- **API 友好**: 提供完整的 REST API 和 Python SDK

## 🚀 快速开始

### 环境要求

- Python 3.11+
- 8GB+ RAM (推荐)
- 支持的操作系统: Windows, macOS, Linux

### 安装

```bash
# 克隆项目
git clone https://github.com/your-username/solo-mcp.git
cd solo-mcp

# 创建虚拟环境 (推荐使用 Python 3.11)
python -m venv venv311

# 激活虚拟环境
# Windows
venv311\Scripts\activate
# macOS/Linux
source venv311/bin/activate

# 升级 pip
python -m pip install --upgrade pip

# 安装依赖
pip install -r requirements.txt
# 安装交互式反馈增强 MCP
pip install mcp-feedback-enhanced

# 验证安装
python -m pytest tests/test_basic.py
```

### 基本使用

```bash
# 启动 Solo MCP 服务
python -m solo_mcp

# 或者直接运行主模块
python solo_mcp/main.py

# 运行交互式示例
python examples/demo.py
```

## 📖 使用示例

### 1. 角色规划示例

```python
from solo_mcp.tools.roles import RolesTool

# 创建角色工具
roles_tool = RolesTool()

# 评估项目需要的角色
result = roles_tool.evaluate(
    goal="开发一个电商网站",
    stack="Python, FastAPI, React, PostgreSQL"
)

print(result)  # 输出推荐的角色列表
```

### 2. 任务分配示例

```python
from solo_mcp.config import SoloConfig
from solo_mcp.tools.orchestrator import OrchestratorTool

# 加载配置
config = SoloConfig.load()

# 创建编排工具
orchestrator = OrchestratorTool(config)

# 运行一轮协作
result = orchestrator.run_round(
    goal="实现用户认证功能",
    stack="Python, FastAPI, JWT"
)

print(result)  # 输出任务分配和执行结果
```

### 3. 记忆管理示例

```python
from solo_mcp.config import SoloConfig
from solo_mcp.tools.memory import MemoryTool

# 加载配置
config = SoloConfig.load()

# 创建记忆工具
memory_tool = MemoryTool(config)

# 存储项目信息
memory_id = memory_tool.store(
    content="用户认证采用JWT token机制",
    memory_type="technical",
    context={"module": "authentication", "priority": "high"}
)

# 检索相关信息
result = memory_tool.load(
    query="JWT认证",
    memory_type="technical"
)

print(f"找到 {len(result)} 条相关记忆")
```

## 🏗️ 项目架构

```
solo_mcp/
├── tools/                  # 核心工具模块
│   ├── roles.py           # 角色规划与管理
│   ├── orchestrator.py    # 多角色任务编排
│   ├── memory.py          # 智能记忆管理
│   ├── context.py         # 上下文收集与处理
│   ├── learning.py        # 学习引擎
│   ├── adaptive.py        # 自适应优化器
│   └── __init__.py
├── config.py              # 配置管理
├── server.py              # MCP 服务器
├── main.py                # 主入口文件
└── __init__.py

tests/                     # 测试文件
├── test_basic.py          # 基础功能测试
├── test_roles.py          # 角色系统测试
├── test_orchestrator.py   # 编排系统测试
├── test_memory.py         # 记忆系统测试
└── test_context.py        # 上下文系统测试

memory/                    # 持久化记忆存储
├── memories/              # 记忆数据文件
├── cache/                 # 缓存文件
└── index/                 # 索引文件

examples/                  # 使用示例
├── demo.py               # 基础演示
├── advanced_usage.py     # 高级用法
└── integration_test.py   # 集成测试

docs/                      # 文档
├── api.md                # API 文档
├── architecture.md       # 架构说明
└── deployment.md         # 部署指南
```

## 🧪 运行测试

```bash
# 运行所有测试
pytest

# 运行特定测试文件
pytest tests/test_roles.py

# 运行测试并显示覆盖率
pytest --cov=solo_mcp
```

## 🔧 配置

项目支持通过环境变量和配置文件进行配置:

### 环境变量配置

```bash
# 设置记忆存储路径
export SOLO_MCP_MEMORY_PATH="./custom_memory"

# 设置日志级别
export SOLO_MCP_LOG_LEVEL="DEBUG"

# 设置缓存大小
export SOLO_MCP_CACHE_SIZE="1000"

# 设置最大记忆数量
export SOLO_MCP_MAX_MEMORIES="10000"

# 设置学习引擎开关
export SOLO_MCP_ENABLE_LEARNING="true"
```

### 配置文件

创建 `config.json` 文件进行详细配置:

```json
{
  "memory": {
    "max_memories": 10000,
    "cache_size": 1000,
    "enable_learning": true,
    "relevance_threshold": 0.3
  },
  "orchestrator": {
    "max_concurrent_tasks": 5,
    "conflict_detection": true,
    "auto_optimization": true
  },
  "roles": {
    "default_roles": ["analyst", "developer", "designer", "tester"],
    "enable_dynamic_roles": true
  }
}
```

#### 集成交互式反馈增强 MCP

在 `config.json` 中新增 `mcpServers` 配置以启用交互式反馈增强 MCP:

```json
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "autoApprove": ["interactive_feedback"]
    }
  }
```

> 提示:`autoApprove` 可根据需求调整自动批准的工具列表。

## 🤝 贡献指南

我们欢迎所有形式的贡献!无论是报告 bug、提出新功能建议,还是提交代码改进。

### 开发环境设置

1. **Fork 并克隆仓库**
   ```bash
   git clone https://github.com/your-username/solo-mcp.git
   cd solo-mcp
   ```

2. **设置开发环境**
   ```bash
   # 创建虚拟环境
   python -m venv venv311
   source venv311/bin/activate  # Linux/macOS
   # 或 venv311\Scripts\activate  # Windows
   
   # 安装开发依赖
   pip install -r requirements.txt
   pip install -r requirements-dev.txt  # 如果存在
   
   # 安装预提交钩子
   pre-commit install
   ```

3. **运行测试**
   ```bash
   # 运行所有测试
   python -m pytest
   
   # 运行特定测试
   python -m pytest tests/test_basic.py
   
   # 生成覆盖率报告
   python -m pytest --cov=solo_mcp --cov-report=html
   ```

### 贡献流程

1. **创建 Issue**
   - 报告 bug 或提出新功能建议
   - 使用相应的 Issue 模板
   - 提供详细的描述和复现步骤

2. **开发流程**
   ```bash
   # 创建特性分支
   git checkout -b feature/amazing-feature
   
   # 进行开发...
   
   # 运行测试确保代码质量
   python -m pytest
   
   # 提交更改
   git add .
   git commit -m "feat: add amazing feature"
   
   # 推送到你的 fork
   git push origin feature/amazing-feature
   ```

3. **提交 Pull Request**
   - 使用清晰的标题和描述
   - 关联相关的 Issue
   - 确保所有测试通过
   - 请求代码审查

### 代码规范

- **代码风格**: 遵循 PEP 8 标准
- **类型注解**: 使用 Python 类型提示
- **文档字符串**: 使用 Google 风格的 docstring
- **测试**: 新功能必须包含相应的测试
- **提交信息**: 使用 [Conventional Commits](https://www.conventionalcommits.org/) 格式

### 提交信息格式

```
type(scope): description

[optional body]

[optional footer]
```

类型包括:
- `feat`: 新功能
- `fix`: 修复 bug
- `docs`: 文档更新
- `style`: 代码格式化
- `refactor`: 代码重构
- `test`: 测试相关
- `chore`: 构建过程或辅助工具的变动

### 开发规范

- 使用 [Black](https://github.com/psf/black) 进行代码格式化
- 遵循 [PEP 8](https://www.python.org/dev/peps/pep-0008/) 编码规范
- 为新功能添加相应的测试
- 更新相关文档

### 代码格式化

```bash
# 格式化代码
black solo_mcp/ tests/

# 检查代码风格
black --check solo_mcp/ tests/
```

## 🗺️ 路线图

### 近期目标 (v1.1)
- [ ] 添加更多预定义角色类型
- [ ] 实现记忆系统的向量化搜索
- [ ] 优化任务调度算法
- [ ] 添加性能监控和指标
- [ ] 完善 API 文档

### 中期目标 (v1.5)
- [ ] 实现分布式记忆存储
- [ ] 添加 Web 管理界面
- [ ] 支持插件系统
- [ ] 集成更多 AI 模型
- [ ] 添加实时协作功能

### 长期目标 (v2.0)
- [ ] 支持多语言 SDK
- [ ] 云端部署方案
- [ ] 企业级安全特性
- [ ] 高级分析和报告
- [ ] 自动化 DevOps 集成

## 🐛 问题反馈

如果您发现任何问题或有改进建议,请:

1. 查看 [Issues](https://github.com/your-username/solo-mcp/issues) 是否已有相关问题
2. 如果没有,请创建新的 Issue 并提供详细信息:
   - 问题描述
   - 复现步骤
   - 期望行为
   - 系统环境信息

## 📄 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

## 🙏 致谢

- [Model Context Protocol](https://github.com/modelcontextprotocol) - 提供了强大的上下文协议基础
- [sentence-transformers](https://github.com/UKPLab/sentence-transformers) - 提供了优秀的文本嵌入能力
- 所有贡献者和使用者的支持

---

**Solo MCP** - 让AI协作开发变得简单而强大 🚀

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/your-username/solo-mcp",
    "name": "solo-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Solo MCP Team <contact@solo-mcp.dev>",
    "keywords": "mcp, ai, agent, orchestration, memory, context",
    "author": "Solo MCP Team",
    "author_email": "Solo MCP Team <contact@solo-mcp.dev>",
    "download_url": "https://files.pythonhosted.org/packages/43/d8/2922a8e346202ffc7ac373289ce2a8dc06e0516af31e836afeedb3d4b8ca/solo_mcp-0.1.1.tar.gz",
    "platform": null,
    "description": "# Solo MCP - \u667a\u80fd\u591a\u89d2\u8272\u534f\u4f5c\u5e73\u53f0\r\n\r\n[![Python Version](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\r\n[![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](tests/)\r\n[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\r\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\r\n\r\n\u4e00\u4e2a\u57fa\u4e8e Model Context Protocol (MCP) \u7684\u667a\u80fd\u591a\u89d2\u8272\u534f\u4f5c\u7cfb\u7edf\uff0c\u901a\u8fc7\u6a21\u62df\u4e0d\u540c\u4e13\u4e1a\u89d2\u8272\u7684\u534f\u4f5c\u6765\u63d0\u5347\u9879\u76ee\u5f00\u53d1\u6548\u7387\u3002Solo MCP \u8ba9\u5355\u4eba\u5f00\u53d1\u8005\u80fd\u591f\u83b7\u5f97\u56e2\u961f\u534f\u4f5c\u7684\u667a\u6167\uff0c\u5b9e\u73b0\u66f4\u9ad8\u8d28\u91cf\u7684\u8f6f\u4ef6\u5f00\u53d1\u3002\r\n\r\n## \u2728 \u6838\u5fc3\u7279\u6027\r\n\r\n### \ud83c\udfad \u667a\u80fd\u89d2\u8272\u7cfb\u7edf\r\n- **\u591a\u89d2\u8272\u6a21\u62df**: \u667a\u80fd\u6a21\u62df\u4ea7\u54c1\u7ecf\u7406\u3001\u67b6\u6784\u5e08\u3001\u5f00\u53d1\u8005\u3001\u6d4b\u8bd5\u5de5\u7a0b\u5e08\u7b49\u4e13\u4e1a\u89d2\u8272\r\n- **\u52a8\u6001\u89d2\u8272\u5206\u914d**: \u6839\u636e\u4efb\u52a1\u7c7b\u578b\u81ea\u52a8\u9009\u62e9\u6700\u9002\u5408\u7684\u89d2\u8272\u7ec4\u5408\r\n- **\u89d2\u8272\u534f\u4f5c**: \u4e0d\u540c\u89d2\u8272\u95f4\u7684\u667a\u80fd\u5bf9\u8bdd\u548c\u51b3\u7b56\u534f\u5546\r\n\r\n### \ud83e\udde0 \u5148\u8fdb\u8bb0\u5fc6\u7ba1\u7406\r\n- **\u6301\u4e45\u5316\u5b58\u50a8**: \u9879\u76ee\u77e5\u8bc6\u7684\u957f\u671f\u8bb0\u5fc6\u548c\u5feb\u901f\u68c0\u7d22\r\n- **\u4e0a\u4e0b\u6587\u611f\u77e5**: \u57fa\u4e8e\u5f53\u524d\u4efb\u52a1\u667a\u80fd\u63a8\u8350\u76f8\u5173\u5386\u53f2\u4fe1\u606f\r\n- **\u5b66\u4e60\u80fd\u529b**: \u4ece\u9879\u76ee\u5386\u53f2\u4e2d\u5b66\u4e60\u6700\u4f73\u5b9e\u8df5\u548c\u5e38\u89c1\u6a21\u5f0f\r\n\r\n### \ud83d\udd04 \u667a\u80fd\u4efb\u52a1\u7f16\u6392\r\n- **\u81ea\u52a8\u4efb\u52a1\u5206\u89e3**: \u5c06\u590d\u6742\u9879\u76ee\u5206\u89e3\u4e3a\u53ef\u7ba1\u7406\u7684\u5b50\u4efb\u52a1\r\n- **\u51b2\u7a81\u68c0\u6d4b**: \u8bc6\u522b\u548c\u89e3\u51b3\u4efb\u52a1\u95f4\u7684\u6f5c\u5728\u51b2\u7a81\r\n- **\u4f18\u5148\u7ea7\u7ba1\u7406**: \u57fa\u4e8e\u9879\u76ee\u76ee\u6807\u667a\u80fd\u6392\u5e8f\u4efb\u52a1\u4f18\u5148\u7ea7\r\n\r\n### \ud83d\udcca \u5168\u9762\u4e0a\u4e0b\u6587\u5206\u6790\r\n- **\u4ee3\u7801\u7406\u89e3**: \u6df1\u5ea6\u5206\u6790\u9879\u76ee\u7ed3\u6784\u3001\u4f9d\u8d56\u5173\u7cfb\u548c\u4ee3\u7801\u8d28\u91cf\r\n- **\u6587\u6863\u89e3\u6790**: \u81ea\u52a8\u63d0\u53d6\u548c\u6574\u7406\u9879\u76ee\u6587\u6863\u4fe1\u606f\r\n- **\u73af\u5883\u611f\u77e5**: \u8bc6\u522b\u5f00\u53d1\u73af\u5883\u3001\u5de5\u5177\u94fe\u548c\u914d\u7f6e\r\n\r\n### \ud83d\ude80 \u6807\u51c6\u5316\u96c6\u6210\r\n- **MCP \u534f\u8bae**: \u57fa\u4e8e Model Context Protocol \u6807\u51c6\uff0c\u786e\u4fdd\u517c\u5bb9\u6027\r\n- **\u63d2\u4ef6\u67b6\u6784**: \u652f\u6301\u81ea\u5b9a\u4e49\u5de5\u5177\u548c\u6269\u5c55\r\n- **API \u53cb\u597d**: \u63d0\u4f9b\u5b8c\u6574\u7684 REST API \u548c Python SDK\r\n\r\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u73af\u5883\u8981\u6c42\r\n\r\n- Python 3.11+\r\n- 8GB+ RAM (\u63a8\u8350)\r\n- \u652f\u6301\u7684\u64cd\u4f5c\u7cfb\u7edf: Windows, macOS, Linux\r\n\r\n### \u5b89\u88c5\r\n\r\n```bash\r\n# \u514b\u9686\u9879\u76ee\r\ngit clone https://github.com/your-username/solo-mcp.git\r\ncd solo-mcp\r\n\r\n# \u521b\u5efa\u865a\u62df\u73af\u5883 (\u63a8\u8350\u4f7f\u7528 Python 3.11)\r\npython -m venv venv311\r\n\r\n# \u6fc0\u6d3b\u865a\u62df\u73af\u5883\r\n# Windows\r\nvenv311\\Scripts\\activate\r\n# macOS/Linux\r\nsource venv311/bin/activate\r\n\r\n# \u5347\u7ea7 pip\r\npython -m pip install --upgrade pip\r\n\r\n# \u5b89\u88c5\u4f9d\u8d56\r\npip install -r requirements.txt\r\n# \u5b89\u88c5\u4ea4\u4e92\u5f0f\u53cd\u9988\u589e\u5f3a MCP\r\npip install mcp-feedback-enhanced\r\n\r\n# \u9a8c\u8bc1\u5b89\u88c5\r\npython -m pytest tests/test_basic.py\r\n```\r\n\r\n### \u57fa\u672c\u4f7f\u7528\r\n\r\n```bash\r\n# \u542f\u52a8 Solo MCP \u670d\u52a1\r\npython -m solo_mcp\r\n\r\n# \u6216\u8005\u76f4\u63a5\u8fd0\u884c\u4e3b\u6a21\u5757\r\npython solo_mcp/main.py\r\n\r\n# \u8fd0\u884c\u4ea4\u4e92\u5f0f\u793a\u4f8b\r\npython examples/demo.py\r\n```\r\n\r\n## \ud83d\udcd6 \u4f7f\u7528\u793a\u4f8b\r\n\r\n### 1. \u89d2\u8272\u89c4\u5212\u793a\u4f8b\r\n\r\n```python\r\nfrom solo_mcp.tools.roles import RolesTool\r\n\r\n# \u521b\u5efa\u89d2\u8272\u5de5\u5177\r\nroles_tool = RolesTool()\r\n\r\n# \u8bc4\u4f30\u9879\u76ee\u9700\u8981\u7684\u89d2\u8272\r\nresult = roles_tool.evaluate(\r\n    goal=\"\u5f00\u53d1\u4e00\u4e2a\u7535\u5546\u7f51\u7ad9\",\r\n    stack=\"Python, FastAPI, React, PostgreSQL\"\r\n)\r\n\r\nprint(result)  # \u8f93\u51fa\u63a8\u8350\u7684\u89d2\u8272\u5217\u8868\r\n```\r\n\r\n### 2. \u4efb\u52a1\u5206\u914d\u793a\u4f8b\r\n\r\n```python\r\nfrom solo_mcp.config import SoloConfig\r\nfrom solo_mcp.tools.orchestrator import OrchestratorTool\r\n\r\n# \u52a0\u8f7d\u914d\u7f6e\r\nconfig = SoloConfig.load()\r\n\r\n# \u521b\u5efa\u7f16\u6392\u5de5\u5177\r\norchestrator = OrchestratorTool(config)\r\n\r\n# \u8fd0\u884c\u4e00\u8f6e\u534f\u4f5c\r\nresult = orchestrator.run_round(\r\n    goal=\"\u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1\u529f\u80fd\",\r\n    stack=\"Python, FastAPI, JWT\"\r\n)\r\n\r\nprint(result)  # \u8f93\u51fa\u4efb\u52a1\u5206\u914d\u548c\u6267\u884c\u7ed3\u679c\r\n```\r\n\r\n### 3. \u8bb0\u5fc6\u7ba1\u7406\u793a\u4f8b\r\n\r\n```python\r\nfrom solo_mcp.config import SoloConfig\r\nfrom solo_mcp.tools.memory import MemoryTool\r\n\r\n# \u52a0\u8f7d\u914d\u7f6e\r\nconfig = SoloConfig.load()\r\n\r\n# \u521b\u5efa\u8bb0\u5fc6\u5de5\u5177\r\nmemory_tool = MemoryTool(config)\r\n\r\n# \u5b58\u50a8\u9879\u76ee\u4fe1\u606f\r\nmemory_id = memory_tool.store(\r\n    content=\"\u7528\u6237\u8ba4\u8bc1\u91c7\u7528JWT token\u673a\u5236\",\r\n    memory_type=\"technical\",\r\n    context={\"module\": \"authentication\", \"priority\": \"high\"}\r\n)\r\n\r\n# \u68c0\u7d22\u76f8\u5173\u4fe1\u606f\r\nresult = memory_tool.load(\r\n    query=\"JWT\u8ba4\u8bc1\",\r\n    memory_type=\"technical\"\r\n)\r\n\r\nprint(f\"\u627e\u5230 {len(result)} \u6761\u76f8\u5173\u8bb0\u5fc6\")\r\n```\r\n\r\n## \ud83c\udfd7\ufe0f \u9879\u76ee\u67b6\u6784\r\n\r\n```\r\nsolo_mcp/\r\n\u251c\u2500\u2500 tools/                  # \u6838\u5fc3\u5de5\u5177\u6a21\u5757\r\n\u2502   \u251c\u2500\u2500 roles.py           # \u89d2\u8272\u89c4\u5212\u4e0e\u7ba1\u7406\r\n\u2502   \u251c\u2500\u2500 orchestrator.py    # \u591a\u89d2\u8272\u4efb\u52a1\u7f16\u6392\r\n\u2502   \u251c\u2500\u2500 memory.py          # \u667a\u80fd\u8bb0\u5fc6\u7ba1\u7406\r\n\u2502   \u251c\u2500\u2500 context.py         # \u4e0a\u4e0b\u6587\u6536\u96c6\u4e0e\u5904\u7406\r\n\u2502   \u251c\u2500\u2500 learning.py        # \u5b66\u4e60\u5f15\u64ce\r\n\u2502   \u251c\u2500\u2500 adaptive.py        # \u81ea\u9002\u5e94\u4f18\u5316\u5668\r\n\u2502   \u2514\u2500\u2500 __init__.py\r\n\u251c\u2500\u2500 config.py              # \u914d\u7f6e\u7ba1\u7406\r\n\u251c\u2500\u2500 server.py              # MCP \u670d\u52a1\u5668\r\n\u251c\u2500\u2500 main.py                # \u4e3b\u5165\u53e3\u6587\u4ef6\r\n\u2514\u2500\u2500 __init__.py\r\n\r\ntests/                     # \u6d4b\u8bd5\u6587\u4ef6\r\n\u251c\u2500\u2500 test_basic.py          # \u57fa\u7840\u529f\u80fd\u6d4b\u8bd5\r\n\u251c\u2500\u2500 test_roles.py          # \u89d2\u8272\u7cfb\u7edf\u6d4b\u8bd5\r\n\u251c\u2500\u2500 test_orchestrator.py   # \u7f16\u6392\u7cfb\u7edf\u6d4b\u8bd5\r\n\u251c\u2500\u2500 test_memory.py         # \u8bb0\u5fc6\u7cfb\u7edf\u6d4b\u8bd5\r\n\u2514\u2500\u2500 test_context.py        # \u4e0a\u4e0b\u6587\u7cfb\u7edf\u6d4b\u8bd5\r\n\r\nmemory/                    # \u6301\u4e45\u5316\u8bb0\u5fc6\u5b58\u50a8\r\n\u251c\u2500\u2500 memories/              # \u8bb0\u5fc6\u6570\u636e\u6587\u4ef6\r\n\u251c\u2500\u2500 cache/                 # \u7f13\u5b58\u6587\u4ef6\r\n\u2514\u2500\u2500 index/                 # \u7d22\u5f15\u6587\u4ef6\r\n\r\nexamples/                  # \u4f7f\u7528\u793a\u4f8b\r\n\u251c\u2500\u2500 demo.py               # \u57fa\u7840\u6f14\u793a\r\n\u251c\u2500\u2500 advanced_usage.py     # \u9ad8\u7ea7\u7528\u6cd5\r\n\u2514\u2500\u2500 integration_test.py   # \u96c6\u6210\u6d4b\u8bd5\r\n\r\ndocs/                      # \u6587\u6863\r\n\u251c\u2500\u2500 api.md                # API \u6587\u6863\r\n\u251c\u2500\u2500 architecture.md       # \u67b6\u6784\u8bf4\u660e\r\n\u2514\u2500\u2500 deployment.md         # \u90e8\u7f72\u6307\u5357\r\n```\r\n\r\n## \ud83e\uddea \u8fd0\u884c\u6d4b\u8bd5\r\n\r\n```bash\r\n# \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\r\npytest\r\n\r\n# \u8fd0\u884c\u7279\u5b9a\u6d4b\u8bd5\u6587\u4ef6\r\npytest tests/test_roles.py\r\n\r\n# \u8fd0\u884c\u6d4b\u8bd5\u5e76\u663e\u793a\u8986\u76d6\u7387\r\npytest --cov=solo_mcp\r\n```\r\n\r\n## \ud83d\udd27 \u914d\u7f6e\r\n\r\n\u9879\u76ee\u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u548c\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e:\r\n\r\n### \u73af\u5883\u53d8\u91cf\u914d\u7f6e\r\n\r\n```bash\r\n# \u8bbe\u7f6e\u8bb0\u5fc6\u5b58\u50a8\u8def\u5f84\r\nexport SOLO_MCP_MEMORY_PATH=\"./custom_memory\"\r\n\r\n# \u8bbe\u7f6e\u65e5\u5fd7\u7ea7\u522b\r\nexport SOLO_MCP_LOG_LEVEL=\"DEBUG\"\r\n\r\n# \u8bbe\u7f6e\u7f13\u5b58\u5927\u5c0f\r\nexport SOLO_MCP_CACHE_SIZE=\"1000\"\r\n\r\n# \u8bbe\u7f6e\u6700\u5927\u8bb0\u5fc6\u6570\u91cf\r\nexport SOLO_MCP_MAX_MEMORIES=\"10000\"\r\n\r\n# \u8bbe\u7f6e\u5b66\u4e60\u5f15\u64ce\u5f00\u5173\r\nexport SOLO_MCP_ENABLE_LEARNING=\"true\"\r\n```\r\n\r\n### \u914d\u7f6e\u6587\u4ef6\r\n\r\n\u521b\u5efa `config.json` \u6587\u4ef6\u8fdb\u884c\u8be6\u7ec6\u914d\u7f6e:\r\n\r\n```json\r\n{\r\n  \"memory\": {\r\n    \"max_memories\": 10000,\r\n    \"cache_size\": 1000,\r\n    \"enable_learning\": true,\r\n    \"relevance_threshold\": 0.3\r\n  },\r\n  \"orchestrator\": {\r\n    \"max_concurrent_tasks\": 5,\r\n    \"conflict_detection\": true,\r\n    \"auto_optimization\": true\r\n  },\r\n  \"roles\": {\r\n    \"default_roles\": [\"analyst\", \"developer\", \"designer\", \"tester\"],\r\n    \"enable_dynamic_roles\": true\r\n  }\r\n}\r\n```\r\n\r\n#### \u96c6\u6210\u4ea4\u4e92\u5f0f\u53cd\u9988\u589e\u5f3a MCP\r\n\r\n\u5728 `config.json` \u4e2d\u65b0\u589e `mcpServers` \u914d\u7f6e\u4ee5\u542f\u7528\u4ea4\u4e92\u5f0f\u53cd\u9988\u589e\u5f3a MCP\uff1a\r\n\r\n```json\r\n  \"mcpServers\": {\r\n    \"mcp-feedback-enhanced\": {\r\n      \"command\": \"uvx\",\r\n      \"args\": [\"mcp-feedback-enhanced@latest\"],\r\n      \"timeout\": 600,\r\n      \"autoApprove\": [\"interactive_feedback\"]\r\n    }\r\n  }\r\n```\r\n\r\n> \u63d0\u793a\uff1a`autoApprove` \u53ef\u6839\u636e\u9700\u6c42\u8c03\u6574\u81ea\u52a8\u6279\u51c6\u7684\u5de5\u5177\u5217\u8868\u3002\r\n\r\n## \ud83e\udd1d \u8d21\u732e\u6307\u5357\r\n\r\n\u6211\u4eec\u6b22\u8fce\u6240\u6709\u5f62\u5f0f\u7684\u8d21\u732e\uff01\u65e0\u8bba\u662f\u62a5\u544a bug\u3001\u63d0\u51fa\u65b0\u529f\u80fd\u5efa\u8bae\uff0c\u8fd8\u662f\u63d0\u4ea4\u4ee3\u7801\u6539\u8fdb\u3002\r\n\r\n### \u5f00\u53d1\u73af\u5883\u8bbe\u7f6e\r\n\r\n1. **Fork \u5e76\u514b\u9686\u4ed3\u5e93**\r\n   ```bash\r\n   git clone https://github.com/your-username/solo-mcp.git\r\n   cd solo-mcp\r\n   ```\r\n\r\n2. **\u8bbe\u7f6e\u5f00\u53d1\u73af\u5883**\r\n   ```bash\r\n   # \u521b\u5efa\u865a\u62df\u73af\u5883\r\n   python -m venv venv311\r\n   source venv311/bin/activate  # Linux/macOS\r\n   # \u6216 venv311\\Scripts\\activate  # Windows\r\n   \r\n   # \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\r\n   pip install -r requirements.txt\r\n   pip install -r requirements-dev.txt  # \u5982\u679c\u5b58\u5728\r\n   \r\n   # \u5b89\u88c5\u9884\u63d0\u4ea4\u94a9\u5b50\r\n   pre-commit install\r\n   ```\r\n\r\n3. **\u8fd0\u884c\u6d4b\u8bd5**\r\n   ```bash\r\n   # \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\r\n   python -m pytest\r\n   \r\n   # \u8fd0\u884c\u7279\u5b9a\u6d4b\u8bd5\r\n   python -m pytest tests/test_basic.py\r\n   \r\n   # \u751f\u6210\u8986\u76d6\u7387\u62a5\u544a\r\n   python -m pytest --cov=solo_mcp --cov-report=html\r\n   ```\r\n\r\n### \u8d21\u732e\u6d41\u7a0b\r\n\r\n1. **\u521b\u5efa Issue**\r\n   - \u62a5\u544a bug \u6216\u63d0\u51fa\u65b0\u529f\u80fd\u5efa\u8bae\r\n   - \u4f7f\u7528\u76f8\u5e94\u7684 Issue \u6a21\u677f\r\n   - \u63d0\u4f9b\u8be6\u7ec6\u7684\u63cf\u8ff0\u548c\u590d\u73b0\u6b65\u9aa4\r\n\r\n2. **\u5f00\u53d1\u6d41\u7a0b**\r\n   ```bash\r\n   # \u521b\u5efa\u7279\u6027\u5206\u652f\r\n   git checkout -b feature/amazing-feature\r\n   \r\n   # \u8fdb\u884c\u5f00\u53d1...\r\n   \r\n   # \u8fd0\u884c\u6d4b\u8bd5\u786e\u4fdd\u4ee3\u7801\u8d28\u91cf\r\n   python -m pytest\r\n   \r\n   # \u63d0\u4ea4\u66f4\u6539\r\n   git add .\r\n   git commit -m \"feat: add amazing feature\"\r\n   \r\n   # \u63a8\u9001\u5230\u4f60\u7684 fork\r\n   git push origin feature/amazing-feature\r\n   ```\r\n\r\n3. **\u63d0\u4ea4 Pull Request**\r\n   - \u4f7f\u7528\u6e05\u6670\u7684\u6807\u9898\u548c\u63cf\u8ff0\r\n   - \u5173\u8054\u76f8\u5173\u7684 Issue\r\n   - \u786e\u4fdd\u6240\u6709\u6d4b\u8bd5\u901a\u8fc7\r\n   - \u8bf7\u6c42\u4ee3\u7801\u5ba1\u67e5\r\n\r\n### \u4ee3\u7801\u89c4\u8303\r\n\r\n- **\u4ee3\u7801\u98ce\u683c**: \u9075\u5faa PEP 8 \u6807\u51c6\r\n- **\u7c7b\u578b\u6ce8\u89e3**: \u4f7f\u7528 Python \u7c7b\u578b\u63d0\u793a\r\n- **\u6587\u6863\u5b57\u7b26\u4e32**: \u4f7f\u7528 Google \u98ce\u683c\u7684 docstring\r\n- **\u6d4b\u8bd5**: \u65b0\u529f\u80fd\u5fc5\u987b\u5305\u542b\u76f8\u5e94\u7684\u6d4b\u8bd5\r\n- **\u63d0\u4ea4\u4fe1\u606f**: \u4f7f\u7528 [Conventional Commits](https://www.conventionalcommits.org/) \u683c\u5f0f\r\n\r\n### \u63d0\u4ea4\u4fe1\u606f\u683c\u5f0f\r\n\r\n```\r\ntype(scope): description\r\n\r\n[optional body]\r\n\r\n[optional footer]\r\n```\r\n\r\n\u7c7b\u578b\u5305\u62ec\uff1a\r\n- `feat`: \u65b0\u529f\u80fd\r\n- `fix`: \u4fee\u590d bug\r\n- `docs`: \u6587\u6863\u66f4\u65b0\r\n- `style`: \u4ee3\u7801\u683c\u5f0f\u5316\r\n- `refactor`: \u4ee3\u7801\u91cd\u6784\r\n- `test`: \u6d4b\u8bd5\u76f8\u5173\r\n- `chore`: \u6784\u5efa\u8fc7\u7a0b\u6216\u8f85\u52a9\u5de5\u5177\u7684\u53d8\u52a8\r\n\r\n### \u5f00\u53d1\u89c4\u8303\r\n\r\n- \u4f7f\u7528 [Black](https://github.com/psf/black) \u8fdb\u884c\u4ee3\u7801\u683c\u5f0f\u5316\r\n- \u9075\u5faa [PEP 8](https://www.python.org/dev/peps/pep-0008/) \u7f16\u7801\u89c4\u8303\r\n- \u4e3a\u65b0\u529f\u80fd\u6dfb\u52a0\u76f8\u5e94\u7684\u6d4b\u8bd5\r\n- \u66f4\u65b0\u76f8\u5173\u6587\u6863\r\n\r\n### \u4ee3\u7801\u683c\u5f0f\u5316\r\n\r\n```bash\r\n# \u683c\u5f0f\u5316\u4ee3\u7801\r\nblack solo_mcp/ tests/\r\n\r\n# \u68c0\u67e5\u4ee3\u7801\u98ce\u683c\r\nblack --check solo_mcp/ tests/\r\n```\r\n\r\n## \ud83d\uddfa\ufe0f \u8def\u7ebf\u56fe\r\n\r\n### \u8fd1\u671f\u76ee\u6807 (v1.1)\r\n- [ ] \u6dfb\u52a0\u66f4\u591a\u9884\u5b9a\u4e49\u89d2\u8272\u7c7b\u578b\r\n- [ ] \u5b9e\u73b0\u8bb0\u5fc6\u7cfb\u7edf\u7684\u5411\u91cf\u5316\u641c\u7d22\r\n- [ ] \u4f18\u5316\u4efb\u52a1\u8c03\u5ea6\u7b97\u6cd5\r\n- [ ] \u6dfb\u52a0\u6027\u80fd\u76d1\u63a7\u548c\u6307\u6807\r\n- [ ] \u5b8c\u5584 API \u6587\u6863\r\n\r\n### \u4e2d\u671f\u76ee\u6807 (v1.5)\r\n- [ ] \u5b9e\u73b0\u5206\u5e03\u5f0f\u8bb0\u5fc6\u5b58\u50a8\r\n- [ ] \u6dfb\u52a0 Web \u7ba1\u7406\u754c\u9762\r\n- [ ] \u652f\u6301\u63d2\u4ef6\u7cfb\u7edf\r\n- [ ] \u96c6\u6210\u66f4\u591a AI \u6a21\u578b\r\n- [ ] \u6dfb\u52a0\u5b9e\u65f6\u534f\u4f5c\u529f\u80fd\r\n\r\n### \u957f\u671f\u76ee\u6807 (v2.0)\r\n- [ ] \u652f\u6301\u591a\u8bed\u8a00 SDK\r\n- [ ] \u4e91\u7aef\u90e8\u7f72\u65b9\u6848\r\n- [ ] \u4f01\u4e1a\u7ea7\u5b89\u5168\u7279\u6027\r\n- [ ] \u9ad8\u7ea7\u5206\u6790\u548c\u62a5\u544a\r\n- [ ] \u81ea\u52a8\u5316 DevOps \u96c6\u6210\r\n\r\n## \ud83d\udc1b \u95ee\u9898\u53cd\u9988\r\n\r\n\u5982\u679c\u60a8\u53d1\u73b0\u4efb\u4f55\u95ee\u9898\u6216\u6709\u6539\u8fdb\u5efa\u8bae\uff0c\u8bf7:\r\n\r\n1. \u67e5\u770b [Issues](https://github.com/your-username/solo-mcp/issues) \u662f\u5426\u5df2\u6709\u76f8\u5173\u95ee\u9898\r\n2. \u5982\u679c\u6ca1\u6709\uff0c\u8bf7\u521b\u5efa\u65b0\u7684 Issue \u5e76\u63d0\u4f9b\u8be6\u7ec6\u4fe1\u606f:\r\n   - \u95ee\u9898\u63cf\u8ff0\r\n   - \u590d\u73b0\u6b65\u9aa4\r\n   - \u671f\u671b\u884c\u4e3a\r\n   - \u7cfb\u7edf\u73af\u5883\u4fe1\u606f\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1 - \u67e5\u770b [LICENSE](LICENSE) \u6587\u4ef6\u4e86\u89e3\u8be6\u60c5\u3002\r\n\r\n## \ud83d\ude4f \u81f4\u8c22\r\n\r\n- [Model Context Protocol](https://github.com/modelcontextprotocol) - \u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u4e0a\u4e0b\u6587\u534f\u8bae\u57fa\u7840\r\n- [sentence-transformers](https://github.com/UKPLab/sentence-transformers) - \u63d0\u4f9b\u4e86\u4f18\u79c0\u7684\u6587\u672c\u5d4c\u5165\u80fd\u529b\r\n- \u6240\u6709\u8d21\u732e\u8005\u548c\u4f7f\u7528\u8005\u7684\u652f\u6301\r\n\r\n---\r\n\r\n**Solo MCP** - \u8ba9AI\u534f\u4f5c\u5f00\u53d1\u53d8\u5f97\u7b80\u5355\u800c\u5f3a\u5927 \ud83d\ude80\r\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "\u667a\u80fd\u4ee3\u7406\u534f\u4f5c\u5e73\u53f0 - \u57fa\u4e8e MCP \u534f\u8bae\u7684\u591a\u89d2\u8272\u4efb\u52a1\u7f16\u6392\u7cfb\u7edf",
    "version": "0.1.1",
    "project_urls": {
        "Bug Reports": "https://github.com/your-username/solo-mcp/issues",
        "Documentation": "https://solo-mcp.readthedocs.io/",
        "Homepage": "https://github.com/your-username/solo-mcp",
        "Source": "https://github.com/your-username/solo-mcp"
    },
    "split_keywords": [
        "mcp",
        " ai",
        " agent",
        " orchestration",
        " memory",
        " context"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa681e21f6538c3a5cfc24ecd6b46aa0efd94560c7d8c9fa69bcecfccbd38e43",
                "md5": "69423351de74aafb6f8de5823cbe0c0a",
                "sha256": "291d525034ddaa9b6011d324310ab0bcd2d22c4836e3987c6ef14a89e2efecf0"
            },
            "downloads": -1,
            "filename": "solo_mcp-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "69423351de74aafb6f8de5823cbe0c0a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 68851,
            "upload_time": "2025-08-13T18:21:11",
            "upload_time_iso_8601": "2025-08-13T18:21:11.367663Z",
            "url": "https://files.pythonhosted.org/packages/aa/68/1e21f6538c3a5cfc24ecd6b46aa0efd94560c7d8c9fa69bcecfccbd38e43/solo_mcp-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "43d82922a8e346202ffc7ac373289ce2a8dc06e0516af31e836afeedb3d4b8ca",
                "md5": "a8630804b7368a31c43c7e9fd9d19649",
                "sha256": "2d90d01ab73005a2209743517a9661730a38e9998cbff00d61b83db83c780c51"
            },
            "downloads": -1,
            "filename": "solo_mcp-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a8630804b7368a31c43c7e9fd9d19649",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 91521,
            "upload_time": "2025-08-13T18:21:13",
            "upload_time_iso_8601": "2025-08-13T18:21:13.086567Z",
            "url": "https://files.pythonhosted.org/packages/43/d8/2922a8e346202ffc7ac373289ce2a8dc06e0516af31e836afeedb3d4b8ca/solo_mcp-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 18:21:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "your-username",
    "github_project": "solo-mcp",
    "github_not_found": true,
    "lcname": "solo-mcp"
}
        
Elapsed time: 1.88648s