SimpleChatJS
A lightweight AI chat application with MCP support, built with pure JavaScript and Node.js.
Install
Install and configure the MCP from https://github.com/Tomobobo710/SimpleChatJS now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.README
SimpleChatJS
An Electron desktop AI chat application with MCP (Model Context Protocol) support.
Tech Stack
- Frontend: Vanilla JS, HTML, CSS (no frameworks)
- Backend: Node.js + Express
- Desktop: Electron
- Database: SQLite (better-sqlite3)
- MCP: @modelcontextprotocol/sdk
Features
- Multiple persistent chat sessions with SQLite storage
- Real-time streaming responses from AI providers
- Model Context Protocol (MCP) integration for tool execution
- Chat branching and turn-based history
- Multimodal messages (images, documents)
- Debug panels with API request/response inspection
- Settings profiles for different AI providers
- Anthropic thinking mode and Google Gemini thinking support
Quick Start
Prerequisites
- Node.js
- An AI API (Ollama, OpenAI, or any OpenAI-compatible endpoint)
- Linux: FUSE (required to run the AppImage)
Installation
npm install
npm run dev
Build
npm install
npx electron-builder install-app-deps
npm run build
Output goes to dist-electron/.
Architecture
src/js/
├── app/ # Core logic (message sending, API calls, settings)
├── chat/ # Chat modes and history management
├── tools/ # MCP server management and tool handling
├── render/ # Message rendering and streaming
└── ui/ # Settings, debug panels, context menus
backend/
├── server.js # Express server (runs inside Electron)
├── config/ # Database initialization
├── routes/ # API endpoints
├── services/ # Chat, MCP, settings, tool events
└── utils/ # Logging
API Compatibility
Works with any OpenAI-compatible API:
- Ollama - Local AI models
- OpenAI API - GPT models
- Anthropic - Claude (via proxy or direct)
- Google Gemini - Gemini models
- LM Studio / vLLM - Local inference servers
CI/CD
Pushes to main trigger automated builds via GitHub Actions:
- Build job: Runs on Windows, Linux, and macOS in parallel. Produces distributable packages (
.zip,.AppImage,.dmg). - Release job: Triggers only when the version in
package.jsondiffers from the latest git tag. Creates a draft GitHub Release with all platform builds attached.
Development
- Edit files in
src/js/orbackend/ - Reload the app (Ctrl+R) for frontend changes
- Restart the app for backend changes
Related servers
Everythingmodelcontextprotocol91KReference / test server with prompts, resources, and toolsFetchmodelcontextprotocol91KWeb content fetching and conversion for efficient LLM usageFilesystemmodelcontextprotocol91KSecure file operations with configurable access controlsGitmodelcontextprotocol91KTools to read, search, and manipulate Git repositories
