SimpleChatJS
AI Chat Frontend with MCP Function Calling
Documentation
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 devBuild
npm install
npx electron-builder install-app-deps
npm run buildOutput 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/ # LoggingAPI 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.json` differs from the latest git tag. Creates a draft GitHub Release with all platform builds attached.
Development
- Edit files in `src/js/` or `backend/`
- Reload the app (Ctrl+R) for frontend changes
- Restart the app for backend changes
Frequently asked questions
What is SimpleChatJS?
SimpleChatJS is AI Chat Frontend with MCP Function Calling
How do I install SimpleChatJS?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is SimpleChatJS open source?
Yes — it is hosted on GitHub at https://github.com/Tomobobo710/SimpleChatJS and has 3 stars.
Related MCP tools
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Use any LLMs (Large Language Models) for Deep Research. Support SSE API and MCP server.
Enhanced MCP server for interactive user feedback and command execution in AI-assisted development, featuring dual interface support (Web UI and Desktop Application) with intelligent environment detection and cross-platform compatibility.
A powerful Zotero AI and MCP plugin with ChatGPT, Gemini 3.7, Claude Fable 5, Claude Opus 5, DeepSeek V4, Grok, OpenRouter, Kimi k3, GLM 5.3, SiliconFlow, GPT-oss, Gemma 4, Qwen 3.8
Connect your browser to AI models. Just use Dia on Chrome, Arc or Firefox.
文颜 MCP Server 可以让 AI 自动将 Markdown 文章排版后发布至微信公众号。
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP