1. Conduid
  2. AI
  3. AI Assistant
MCP server · AI

AI Assistant

AI based assistant, using Gmail and Google Calendar. Includes Agent, MCP servers, can work with both local and any other AI agent.

Unclaimed ai
39Low

Scored 13 days ago · breakdown

About AI Assistant

AI Assistant is an MCP server published by SkastVnT in the AI category: aI based assistant, using Gmail and Google Calendar. Includes Agent, MCP servers, can work with both local and any other AI agent.

The repository has 2 stars and 0 forks, with the last commit 12 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/SkastVnT/AI-Assistant

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about AI Assistant

Powered by Claude · Grounded in docs

I know everything about AI Assistant. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

AI-Assistant

Nền tảng microservices Python tích hợp các dịch vụ AI: chatbot đa mô hình LLM, image generation đa provider, video generation (Sora 2), và MCP server.


Dịch vụ

Service Port Entry Point venv
ChatBot 5000 services/chatbot/run.py venv-core
MCP Server stdio (FastMCP) services/mcp-server/server.py venv-core
Stable Diffusion 7861 services/stable-diffusion/ venv-image
Edit Image (ComfyUI) 8100 services/edit-image/ venv-image

Image services (Stable Diffusion, Edit Image) tự động khởi động cùng chatbot khi AUTO_START_IMAGE_SERVICES=true (mặc định bật trong run.py).


Chatbot Startup Modes

services/chatbot/run.py là dispatcher cho 3 mode:

Env Flag Mode Engine
USE_FASTAPI=true FastAPI (khuyến nghị) uvicorn + ASGI
USE_NEW_STRUCTURE=true Flask modular App factory pattern
(không set) Flask monolith chatbot_main.py (legacy)

Tất cả đều listen trên port FLASK_PORT (default 5000).


Tính năng Chatbot

Tính năng Mô tả
Đa LLM provider OpenAI, Grok (xAI), DeepSeek, Qwen, OpenRouter, StepFun, BloomVN (HF), Gemini, Ollama local
Thinking modes UI: Instant / 4-Agents (default)
Multi-thinking council 4-agent: Planner → Researcher → Critic → Synthesizer
Skill system 12 built-in personas, auto-route theo nội dung tin nhắn
Image generation 7 provider router với fallback chain
Video AI OpenAI Sora 2 (yêu cầu unlock qua admin)
Web search SerpAPI (Google/Bing/Baidu) → Google CSE fallback, auto-trigger theo từ khoá
Reverse image Google Lens → Google Reverse → Yandex (cascade)
OCR Vision APIs cho ảnh / PDF
STT Whisper API (audio → text)
RAG MongoDB Atlas + embeddings cho semantic memory
MCP integration Truy cập file/folder local qua MCP stdio
User auth + quota Đăng ký / đăng nhập, quota tin nhắn / ảnh, video unlock
Admin panel Quản lý user, session, ảnh, memory, logs, payments
QR Payment VietQR — mở khoá video generation
SSE streaming Real-time token streaming cho cả Flask và FastAPI
URL routing /c/<conversation_id> per-conversation URL (ChatGPT-style)
Conversation CRUD Tạo / xoá / archive / switch / generate title

Thinking Modes

UI chỉ expose 2 mode:

Mode UI Label Default Mô tả
instant Instant Trả lời trực tiếp một agent, không reasoning pipeline
multi-thinking 4-Agents ✓ Kích hoạt 4-agent council (Planner → Researcher → Critic → Synthesizer)

Khi user ở instant mà muốn nghiêm túc hơn: nhấn nút “Think Harder” trong response actions → gửi lại tin nhắn cuối với multi-thinking.

Backend (core/skills/applicator.py, routes/stream.py, các test) vẫn nhận các giá trị thinking / deep / auto cho mục đích nội bộ (skill overrides, tương thích ngược). Người dùng cuối chỉ chọn 2 mode trên.


4-Agent Council (multi-thinking mode)

Planner      → Phân tích câu hỏi, chia thành task list
   ↓
Researcher   → Thu thập bằng chứng (web search, RAG, MCP)
   ↓
Critic       → Đánh giá, quyết định cần thêm round không
   ↓
Synthesizer  → Tổng hợp câu trả lời cuối

Source: services/chatbot/core/agentic/agents/{planner,researcher,critic,synthesizer}.py + orchestrator.py. Dữ liệu chia sẻ qua Blackboard. SSE streaming tại /council/stream (FastAPI).

xAI Native Research: endpoint /xai-native/stream dùng xAI Live Search.


LLM Providers

Provider Env Key Model mặc định Streaming Vision
OpenAI OPENAI_API_KEY gpt-4o-mini ✓ ✓
DeepSeek DEEPSEEK_API_KEY deepseek-chat ✓ ✗
Grok (xAI) GROK_API_KEY grok-3 ✓ ✗
Qwen QWEN_API_KEY qwen-turbo ✓ ✗
Gemini GEMINI_API_KEY_1..4 gemini-2.0-flash ✓ ✓
OpenRouter OPENROUTER_API_KEY stepfun/step-3.5-flash:free ✓ ✗
StepFun STEPFUN_API_KEY step-2-16k ✓ ✗
BloomVN (HF) HUGGINGFACE_API_KEY BlossomsAI/BloomVN-8B-chat ✗ ✗
Ollama local — (model do user chọn) ✓ (tuỳ model)

Lưu ý: Gemini có thể bị disable trong chatbot_main.py nếu quota cạn. Fallback chains được wire trong core/chatbot_v2.py ModelRegistry.


Image Generation

7 provider router tại services/chatbot/core/image_gen/providers/:

Provider File Models tiêu biểu
fal.ai fal_provider.py FLUX.2, FLUX.1, nano-banana, seedream5
Black Forest Labs bfl_provider.py FLUX Pro
Replicate replicate_provider.py Marketplace
OpenAI openai_provider.py DALL-E 3
StepFun stepfun_provider.py Step image models
Together AI together_provider.py Open-source models
ComfyUI comfyui_provider.py Local workflow engine

Provider được chọn theo API key có sẵn + priority chain. Fallback tự động khi provider lỗi.


Skill System

12 built-in YAML skills tại services/chatbot/core/skills/builtins/:

Skill ID Trigger tự động
code-expert code, bug, lỗi code, lập trình, docker, CI/CD
coding-assistant code, debug, function, refactor
realtime-search today, news, price, weather
research-analyst analyze, compare, evaluate
repo-analyzer repository, codebase, project structure
research-web search, find, look up, research
social-research reddit, twitter, x, youtube, hackernews
prompt-engineer prompt, system prompt, instruction
mcp-file-helper file, folder, read file, MCP
creative-writer write, story, poem, essay
shopping-advisor buy, price, recommend, product
counselor stress, anxiety, advice

Resolve order

explicit skill   (request.skill = "...")
  → session skill   (POST /api/skills/activate)
    → auto-route    (SkillRouter scoring, threshold 1.05)
      → none

Skill overrides: model, thinking_mode, system_prompt, tools, context_window.


MCP Server

Transport: stdio (FastMCP). Không có HTTP listener.

Entry: services/mcp-server/server.py. Tools (@mcp.tool()):

Tool Mô tả
search_files Tìm file theo query / file_type / max_results
read_file_content Đọc nội dung file (giới hạn max_lines)
list_directory List directory contents
get_project_info Project metadata tổng quan
search_logs Tìm trong service logs
calculate Safe math expression evaluation

Plus @mcp.resource() (config, docs) và @mcp.prompt() (code review, debug, explain templates).

Chatbot proxy qua routes/mcp.py (Flask) hoặc fastapi_app/routers/mcp.py (FastAPI).


API Endpoints (chính)

Chat & Streaming

Method Path Mô tả
POST /chat/stream Primary — SSE streaming chat
POST /chat/async Async SSE
POST /council/stream Multi-thinking council SSE (FastAPI)
POST /xai-native/stream xAI Live Search streaming (FastAPI)
GET /c/<conversation_id> Trang chat với conversation cụ thể

Conversations

Method Path
GET / DELETE /conversations[/<id>]
POST /conversations/new, /conversations/<id>/switch, /conversations/<id>/archive
POST /clear, /api/generate-title

Skills

Method Path
GET /api/skills, /api/skills/<id>, /api/skills/active
POST /api/skills/activate, /api/skills/deactivate

Image Generation

Method Path
POST /api/image-gen/generate, /api/image-gen/stream, /api/image-gen/edit

Reasoning Image Pipeline (opt-in, REASONING_PIPELINE=true)

Method Path
GET /api/reasoning-image-gen/status
POST /api/reasoning-image-gen/generate

Local nano-banana-style multi-panel pipeline backed by ComfyUI. Disabled by default; the route is not registered when the flag is unset, so the URL map is byte-identical to the legacy runtime.

When the flag is on, BOTH POST /api/image-gen/generate (JSON) AND POST /api/image-gen/stream (SSE) accept use_reasoning_pipeline: true in their JSON payload — that opt-in toggle short-circuits the regular provider router and returns the assembled comic via the standard image-gen response shape (provider: "reasoning", model: "comic-pipeline"). The SSE variant emits the usual status → provider_try → provider_success → result → saved event sequence so the chat-typed flow needs no rendering changes. The toggle is exposed in the chat UI's Image Gen v2 modal as 🧠 Use Reasoning Pipeline and is persisted to localStorage so chat-typed prompts inherit the last choice.

Video (Sora 2)

Method Path
POST /api/video/generate, /api/video/generate-sync
GET /api/video/status/<id>, /api/video/download/<id>, /api/video/list

Memory

Method Path
POST/GET/PUT/DELETE /memory/{save,list,get/<id>,update/<id>,delete/<id>,search}

MCP Proxy

Method Path
POST /api/mcp/{enable,disable,add-folder,remove-folder,ocr-extract,warm-cache}
GET /api/mcp/{list-files,search-files,read-file,grep,status}

Auth & Quota

Method Path
POST /api/auth/{login,register,change-password,update-profile,request-video-unlock}
GET /api/auth/{me,quota}, /api/features

Admin

Method Path
GET /admin, /api/admin/{stats,users,sessions,images,memory,logs,payments}
POST /api/admin/users/<u>/{toggle,password,quota/reset,video/unlock,video/lock}
POST /api/admin/payments/<id>/{approve,reject}

Stable Diffusion Proxy

Method Path
GET /api/sd-{health,models,presets,samplers,vaes}
POST /api/sd-change-model, /api/generate-image, /api/img2img

Health

Method Path
GET /health, /api/health/databases

Flask blueprints (19 tổng) tại services/chatbot/routes/. FastAPI routers tại services/chatbot/fastapi_app/routers/ — parallel implementations, không merge.


URL Routing (ChatGPT-style)

GET /                       → Homepage, redirect/replace sang /c/<id>
GET /c/<conversation_id>    → Chat page với conversation cụ thể (validate regex [A-Za-z0-9_\-]{1,64})
GET /new                    → Tạo session mới rồi redirect /

Frontend (static/js/modules/chat-manager.js):

  • _syncUrl(id, replace=false) → history.pushState/replaceState
  • popstate listener → switch session khi user Back/Forward
  • URL-first restore on page load → đọc /c/<id> → restore từ localStorage.chatSessions[id]

Stream payload include conversation_id + 3 ảnh gen gần nhất (generated_images[]) để LLM có context về ảnh đã tạo.


Cài đặt & Chạy

1. Clone

git clone https://github.com/SkastVnT/AI-Assistant.git
cd AI-Assistant

2. Setup venv

# Core services (chatbot + MCP)
python -m venv venv-core
venv-core\Scripts\activate          # Windows
source venv-core/bin/activate        # Linux/Mac
pip install -r app/requirements/profile_core_services.txt

# Image services (SD + ComfyUI) — chỉ cần nếu chạy local image gen
python -m venv venv-image
pip install -r app/requirements/profile_image_ai_services.txt

3. Cấu hình env

cp app/config/.env.example app/config/.env
# Sửa app/config/.env, set ít nhất 1 LLM API key

Loader: services/shared_env.py → load_shared_env(__file__) → tìm app/config/.env_{env} rồi fallback app/config/.env. Mỗi service gọi một lần khi khởi động.

4. Chạy chatbot

# FastAPI mode (khuyến nghị)
$env:USE_FASTAPI="true"
cd services\chatbot
python run.py

# Flask modular
$env:USE_NEW_STRUCTURE="true"
python run.py

# Flask monolith (mặc định)
python run.py
# hoặc trực tiếp:
python chatbot_main.py

5. Scripts (Windows / Linux)

app/scripts/ chứa các script khởi động:

app\scripts\start-chatbot.bat
app\scripts\start-stable-diffusion.bat
app\scripts\start-edit-image.bat
app\scripts\start-mcp.bat
app\scripts\start-all.bat
app\scripts\stop-all.bat
app\scripts\health-check-all.bat

6. Docker

# Core (MongoDB + ChatBot)
docker compose up -d

# + last30days sidecar
docker compose --profile tools up -d

# + Hermes sidecar
docker compose --profile hermes up -d

# + Character Select picker
docker compose --profile character-select up -d

# Tất cả
docker compose --profile all up -d

curl http://localhost:5000/health

Image services (Stable Diffusion, ComfyUI) không có trong docker-compose — chạy local vì cần GPU.


Biến môi trường

# ── LLM (chọn ít nhất 1) ──
OPENAI_API_KEY=
GROK_API_KEY=
DEEPSEEK_API_KEY=
QWEN_API_KEY=
GEMINI_API_KEY_1=
OPENROUTER_API_KEY=
STEPFUN_API_KEY=
HUGGINGFACE_API_KEY=

# ── Database ──
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB_NAME=chatbot_db

# ── Image generation ──
FAL_API_KEY=
BFL_API_KEY=
REPLICATE_API_KEY=
TOGETHER_API_KEY=
SD_API_URL=http://127.0.0.1:7861

# ── Web search ──
SERPAPI_API_KEY=
GOOGLE_SEARCH_API_KEY_1=
GOOGLE_SEARCH_API_KEY_2=
GOOGLE_CSE_ID=

# ── Reverse image ──
SAUCENAO_API_KEY=

# ── Image cloud storage ──
IMGBB_API_KEY=
FIREBASE_RTDB_URL=
FIREBASE_DB_SECRET=

# ── Optional sidecars ──
LAST30DAYS_ENABLED=false
LAST30DAYS_SCRIPT_PATH=
HERMES_ENABLED=false
HERMES_API_URL=http://localhost:8080
HERMES_API_KEY=
CHARACTER_SELECT_ENABLED=false
CHARACTER_SELECT_URL=http://localhost:51028
CHARACTER_SELECT_PORT=51028
CHARACTER_SELECT_AUTO_START=false

# ── Runtime flags ──
USE_FASTAPI=true                     # Khuyến nghị
USE_NEW_STRUCTURE=false
AUTO_START_IMAGE_SERVICES=true       # Auto-launch SD + Edit Image
FLASK_PORT=5000
env=dev                              # Chọn .env_dev / .env_prod

Cấu trúc thư mục

services/
  shared_env.py              Bộ tải env dùng chung
  chatbot/
    chatbot_main.py          Flask monolith entry (legacy)
    run.py                   Dispatcher cho 3 startup modes
    core/
      config.py              API keys, system prompts
      chatbot_v2.py          ModelRegistry-based agent
      tools.py               Web search, reverse image, SauceNAO
      thinking_generator.py  Thinking modes
      stream_contract.py     SSE payload contract
      agentic/               4-agent council
        agents/{planner,researcher,critic,synthesizer}.py
        orchestrator.py
        blackboard.py
      image_gen/             7 providers + orchestrator
      skills/                Registry, Router, Resolver, Session
        builtins/            12 YAML skill definitions
    routes/                  19 Flask blueprints
    fastapi_app/             FastAPI routers (parallel implementation)
      routers/               18 router files
    src/
      audio_transcription.py Whisper STT
      ocr_integration.py     Vision OCR
      video_generation.py    Sora 2
      handlers/, utils/, rag/
    templates/               index.html, admin.html, login.html
    static/js/modules/       Vanilla JS (chat-manager, api-service, ...)
    config/                  mongodb_config.py, model_presets.py
    tests/                   40+ test modules
  mcp-server/
    server.py                FastMCP stdio server
  stable-diffusion/          SDXL service (port 7861)
  edit-image/                ComfyUI-based service (port 8100)

app/
  config/                    .env, config.yml, model_config.py
  requirements/              profile_core_services.txt, profile_image_ai_services.txt
  scripts/                   start/stop/health-check scripts
  src/                       Shared modules (utils, db, cache, security)

ComfyUI/                     ComfyUI upstream (vendored)
character_select_stand_alone_app-main/   Standalone character picker (Electron + Express)
configs/                     YAML pipeline configs
docs/                        Documentation
docker-compose.yml           MongoDB + ChatBot + optional sidecars
menu.bat / menu.sh           Service launcher menu

Optional Sidecars & Integrations

Component Type Activation Mô tả
last30days Subprocess LAST30DAYS_ENABLED=true hoặc docker compose --profile tools Multi-source social media research (Reddit, X, YouTube, HackerNews, ...)
Hermes Agent HTTP sidecar (port 8080) HERMES_ENABLED=true hoặc docker compose --profile hermes AI agent với tool registry, memory, subagent delegation
Character Select Electron + WS sidecar (port 51028) CHARACTER_SELECT_ENABLED=true (+ CHARACTER_SELECT_AUTO_START=true to spawn) hoặc docker compose --profile character-select Character picker UI cho image gen workflow. Status endpoint: GET /api/character-select/status. Source: mirabarukaso/character_select_stand_alone_app

Tất cả đều tuỳ chọn — chatbot chạy bình thường khi không bật.


Dependency Profiles

Profile venv Requirements
core-services venv-core app/requirements/profile_core_services.txt
image-ai-services venv-image app/requirements/profile_image_ai_services.txt

Chatbot + MCP → venv-core. SD + ComfyUI → venv-image. Không trộn lẫn.


Tests

venv-core\Scripts\Activate.ps1     # Windows
source venv-core/bin/activate       # Linux/Mac

cd services/chatbot
pytest tests/ -v --tb=short

CI: .github/workflows/tests.yml — chạy với TESTING=True, MONGODB_ENABLED=False, timeout 60s.


Tài liệu


Known Issues

  • menu.sh advertise sai port: SD=7860 (đúng: 7861), Edit Image=7861 (đúng: 8100), MCP=8000 (đúng: stdio). Dùng menu.bat hoặc scripts trực tiếp.
  • Gemini có thể bị disable trong chatbot_main.py khi quota cạn — fallback sẽ dùng provider khác.
  • Multiple venvs: venv/, venv-core/, venv-image/ cùng tồn tại. Default active là venv-core cho chatbot.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About AI Assistant

How do I install AI Assistant?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is AI Assistant safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is AI Assistant still maintained?

Yes — the last commit was 12 days ago. The repository has 2 stars and 0 forks.