vietnama10

MCP Server

Community vietnama10
Updated

A knowledge MCP service

MCP Server

MCP Server là hệ thống phân tích ngữ cảnh tài liệu dự án sử dụng Node.js + Express, tích hợp AI (OpenAI), chạy trong Docker.

Cấu trúc dự án

mcp-server/
├─ Dockerfile
├─ docker-compose.redis.yml   # Dùng Redis Stack
├─ .env.example
├─ package.json
├─ src/
│  ├─ index.js                # entry point (Express)
│  ├─ config.js
│  ├─ routes/
│  │   ├─ upload.js           # API upload file
│  │   ├─ api.js              # API truy vấn AI
│  │   └─ tools.js            # Tooling AI
│  ├─ lib/
│  │   ├─ fileParser.js       # parse file, ingest
│  │   ├─ textSplitter.js     # chia nhỏ text
│  │   ├─ embeddings.js       # tạo embedding
│  │   ├─ vectorStore.redis.js# lưu vector (Redis)
│  │   ├─ retriever.js        # truy xuất context
│  │   └─ promptTemplates.js  # prompt cho tooling
│  └─ scripts/
│      ├─ ingestAll.js        # ingest toàn bộ file
│      └─ init.js             # khởi tạo thư mục/data
└─ data/                      # docker volume mount
   └─ uploads/

Hướng dẫn setup

  1. Clone repo & cài đặt dependencies

    git clone <repo-url>
    cd mcp-server
    npm install
    
  2. Cấu hình môi trường

    • Copy file .env.example thành .env và điền API key OpenAI:
      cp .env.example .env
      # Sửa OPENAI_API_KEY trong .env
      
  3. Khởi tạo thư mục dữ liệu

    node src/scripts/init.js
    # hoặc sẽ tự động khi chạy Docker
    
  4. Chạy với Redis Stack (production-ready vector store)

    • Sử dụng file docker-compose.redis.yml:
      docker-compose -f docker-compose.redis.yml up --build
      
    • Đảm bảo biến môi trường REDIS_URL đã đúng (mặc định: redis://redis:6379).

Sử dụng

1. Upload tài liệu

  • Gửi file qua API:
    POST /upload
    Content-Type: multipart/form-data
    file: <tài liệu dự án>
    
    • File sẽ được ingest, index thành vector lưu vào Redis.

2. Truy vấn AI

  • Gửi câu hỏi qua API:
    POST /api/query
    Content-Type: application/json
    {
      "question": "Nội dung bạn muốn hỏi về tài liệu dự án"
    }
    
    • AI sẽ trả lời dựa trên ngữ cảnh tài liệu đã ingest.

3. Ingest toàn bộ file trong thư mục uploads

npm run ingest

Tooling AI

Các API hỗ trợ dự án:

  • Sinh test-case tự động
    POST /tools/generate-testcase
    Content-Type: application/json
    {
      "requirements": "Yêu cầu phần mềm..."
    }
    
  • Tóm tắt tài liệu
    POST /tools/summarize
    Content-Type: application/json
    {}
    
  • Traceability tool
    POST /tools/traceability
    Content-Type: application/json
    {
      "requirements": "Yêu cầu phần mềm..."
    }
    

Các API này sử dụng prompt template và AI để sinh kết quả dựa trên ngữ cảnh tài liệu đã ingest.

Lưu ý

  • Đảm bảo đã có API key OpenAI hợp lệ.
  • Thư mục data/uploads là nơi chứa file upload.
  • Vector database chỉ sử dụng Redis, không còn lưu file JSON.
  • Có thể mở rộng các loại tài liệu, pipeline, hoặc tích hợp vector DB khác.

Mọi thắc mắc vui lòng liên hệ admin dự án.

MCP Server · Populars

MCP Server · New