Skip to content

Alex-ai-future/rag-skill-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG技能管理系统 - MCP服务器

基于检索增强生成(RAG)的技能管理系统,通过Model Context Protocol(MCP)提供智能技能选择和经验存储功能。

项目概述

RAG技能管理系统是一个基于MCP协议的服务器应用,提供以下核心功能:

  • 智能技能选择:使用LLM理解用户需求并选择最合适的技能
  • 经验存储与检索:通过Mem0实现语义存储和智能检索
  • 标准化工具集成:基于MCP协议实现与各种AI Agent的集成

🔧 核心依赖(必须部署)

重要提醒:本项目需要本地部署两个核心服务,没有它们项目无法正常运行。请按照以下顺序完成部署:

1. Qdrant (向量数据库)

  • 作用:存储和管理技能及经验数据的向量表示
  • 部署方式:Docker
  • 官方地址https://qdrant.tech/
# 启动Qdrant
docker run -d -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_data:/qdrant/storage \
    qdrant/qdrant

验证部署成功

# 检查容器是否运行
docker ps | grep qdrant

# 在浏览器中访问Web界面
# http://localhost:6333/dashboard
# 如果能看到Qdrant的管理界面说明部署成功

2. Ollama (嵌入模型服务)

  • 作用:提供文本向量化服务,支持多种预训练模型
  • 部署方式:本地安装
  • 官方地址https://ollama.com/
# 安装Ollama(根据你的操作系统选择)
# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# 启动Ollama服务
ollama serve

# 拉取需要的嵌入模型
ollama pull nomic-embed-text

验证部署成功

# 检查服务状态
ollama list
# 应该看到:nomic-embed-text

# 测试模型是否可用
ollama run nomic-embed-text "test"

🚀 项目安装和配置

按照以下步骤完成项目设置:

1. 克隆项目

git clone https://github.com/your-repo/rag-skill-mcp.git
cd rag-skill-mcp

2. 配置技能库

项目使用YAML文件定义技能。编辑skills/文件夹中的文件来自定义你的技能库。

技能文件格式示例(在skills/example.yaml中创建一个新技能):

id: "example_skill"
description: "当用户需要执行特定任务时使用此技能"
content: |
  ## 技能执行指南

  ### 适用场景
  - 场景描述1
  - 场景描述2

  ### 执行步骤
  1. 第一步操作
  2. 第二步操作
  3. 验证结果

  ### 注意事项
  - 重要提醒1
  - 重要提醒2

3. 配置环境变量(可选)

如果需要自定义配置,复制并编辑环境变量:

cp .env.example .env
# 编辑.env文件,修改需要的配置项

4. 构建Docker镜像

# 使用Makefile构建(推荐)
make build

# 或者直接使用Docker命令
DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile -t rag-skill-mcp:latest .

5. 配置MCP客户端

现在需要配置Claude Desktop来使用MCP服务器。有两种配置方式:

方式一:使用.env文件(推荐)

如果第3步你创建了.env文件,使用此方式:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rag-skill-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network",
        "host",
        "--env-file",
        "/path/to/your/.env",
        "rag-skill-mcp:latest"
      ]
    }
  }
}

方式二:直接指定参数(安全性更高)

适合生产环境或不想使用.env文件的情况:

{
  "mcpServers": {
    "rag-skill-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network",
        "host",
        "-e",
        "LLM_API_KEY=your_deepseek_api_key_here",
        "-e",
        "LLM_BASE_URL=https://api.deepseek.com/v1",
        "-e",
        "LLM_MODEL=deepseek-chat",
        "-e",
        "LLM_PROVIDER=deepseek",
        "-e",
        "MEM0_QDRANT_HOST=localhost",
        "-e",
        "MEM0_QDRANT_PORT=6333",
        "-e",
        "MEM0_EMBEDDER_MODEL=nomic-embed-text",
        "-e",
        "MEM0_EMBEDDING_DIMS=768",
        "rag-skill-mcp:latest"
      ]
    }
  }
}

验证配置

配置完成后重启Claude Desktop,你应该能在Claude中看到新的MCP工具可用。

本地开发(可选)

如果你需要修改代码进行开发:

# 安装开发依赖
pip install uv
uv sync

# 运行开发服务器
make dev
# 或者:PYTHONPATH=src uv run python src/main.py

⚙️ 配置说明

环境变量配置

复制并编辑环境变量文件:

cp .env.example .env
# 编辑.env文件,填入以下必需配置:
# LLM API配置(必需)
LLM_API_KEY=your_deepseek_api_key_here
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_MODEL=deepseek-chat
LLM_PROVIDER=deepseek

# Mem0 Qdrant配置(必需,与你部署的Qdrant一致)
MEM0_QDRANT_HOST=localhost
MEM0_QDRANT_PORT=6333

# Mem0 Embedder配置(必需,与你部署的Ollama模型一致)
MEM0_EMBEDDER_MODEL=nomic-embed-text
MEM0_EMBEDDING_DIMS=768

# Mem0 LLM配置(可选,默认使用主LLM配置)
MEM0_LLM_MODEL=deepseek-chat

# MCP服务器配置(可选)
MCP_SERVER_HOST=0.0.0.0
MCP_SERVER_PORT=3000

# 应用配置(可选)
LOG_LEVEL=INFO
SKILLS_CONFIG_PATH=config/skills.yaml

🔗 命令行测试

配置完成后,可以通过命令行测试MCP服务器:

# 方法1:使用.env文件
docker run --rm -i --network host --env-file .env rag-skill-mcp:latest

# 方法2:手动指定环境变量(安全性更高)
LLM_API_KEY=your_key LLM_BASE_URL=https://api.deepseek.com/v1 LLM_MODEL=deepseek-chat LLM_PROVIDER=deepseek MEM0_QDRANT_HOST=localhost MEM0_QDRANT_PORT=6333 MEM0_EMBEDDER_MODEL=nomic-embed-text MEM0_EMBEDDING_DIMS=768 docker run --rm -i --network host rag-skill-mcp:latest

贡献指南

我们欢迎贡献!请遵循以下步骤:

  1. Fork项目
  2. 创建您的特性分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开一个Pull Request

代码风格

  • 使用black进行代码格式化
  • 使用flake8进行代码检查
  • 使用mypy进行类型检查
  • 确保所有测试通过

提交消息

请使用清晰、描述性的提交消息,遵循Conventional Commits规范。

许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

联系方式

如果您有任何问题或建议,请通过以下方式联系我们:


感谢您使用RAG技能管理系统!我们希望这个系统能帮助您更有效地管理和使用技能知识。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors