mucgpt

MUCGPT logo


### Project Information [![Made with love by it@M][made-with-love-shield]][itm-opensource] [![Gitmoij][gitmoij-shield]][gitmoij] [![GitHub license][license-shield]][license] [![GitHub release version][github-release-shield]][releases] [![Demo-Frontend][pages-shield]][pages] ### Technology Stack ![Supported python versions][python-versions-shield] ![Supported npm versions][npm-versions-shield] [![uv][uv-shield]][uv] [![FastAPI][fastapi-shield]][fastapi] [![React][react-shield]][react] [![Postgres][postgres-shield]][postgres] [![LangGraph][langgraph-shield]][langgraph] ### Build Status [![Assistant-service tests][assistant-service-tests-shield]][assistant-service-tests] [![Core service tests][core-service-tests-shield]][core-service-tests] ### Container Images [![Frontend version][frontend-version-shield]][frontend-container] [![Core service version][core-service-version-shield]][core-service-container] [![Assistant service version][assistant-service-version-shield]][assistant-service-container] [![Migrations service version][migrations-service-version-shield]][migrations-service-container]

MUCGPT is a system that enables users to interact with a large language model (LLM) through a web interface. This interaction is facilitated by an agentic system that can access several tools. To get a feel for it, take a look at our demo frontend.

Roles and rights management is facilitated by access to an OpenID Connect provider.

Users can create their own assistants and share them within the organization. A personal assistant is a configuration of the MUCGPT agent, particularly the activated tools and system prompts.

See the open issues for a full list of proposed features (and known issues).

Table of contents

⚒️ Built With

Backend

Frontend

Deployment

🏃‍♂️‍➡️ Getting started

Please check the Getting Started documentation for detailed instructions on configuration, LDAP, SSO, MCP setup, and running the application.

🛤️ Roadmap

%%{init:
{
  "theme": "base",
  "themeVariables": {
      "primaryColor": "#F8B6B8",
      "primaryTextColor": "#222222",
      "primaryBorderColor": "#F6A6A6",
      "lineColor": "#FFE5B4",
      "secondaryColor": "#B6E2D3",
      "tertiaryColor": "#FFFFFF",
      "background": "#FFF8F0",
      "fontSize": "18px",
      "fontFamily": "Inter, sans-serif"
  }
}
}%%
timeline
  title 🚀 MUCGPT Roadmap (July 2026)

  section 🔄 Ongoing
    Improve UI/UX
    Improve agentic capabilities

  section 2.0.x 🛠️ Admin Tools
    Add admin/beta user roles
    Delete/disable assistants
    Track assistant stats 📊

  section 2.1 📄 Chat with Docs
    Upload docs (limited)
    Search web 🌐

  section 2.2 🔒 Privacy Update
    Internal vs. confidential areas
    Restrict models/tools/assistants in each area

  section 2.3 🧠 Knowledge Base
    Sync chats across devices
    Assistants use KB data

📃 Documentation

Architecture Overview

MUCGPT uses a modern microservices architecture optimized for scalability and maintainability:

MUCGPT Architecture Diagram

The architecture of MUCGPT is structured into these primary components: the frontend, the core service for handling tools and the communication with the LLM, and the assistant service. Additionally, it features an API Gateway, a database, and integrates Single Sign-On (SSO) for authentication.

The frontend is based on a template from Microsoft Azure and is implemented using React, Typescript and Javascript.

The framework used to implement the backends (the core- and the assistant service) of MUCGPT is called FastAPI. It is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. The core service uses LangGraph to connect to LLMs. Each service provides specialized functionality:

The API Gateway is developed in Java based on the Spring Cloud Gateway, providing robust routing, security, and scalability for all services. IT@M distributes the gateway as a container image: ghcr.io/it-at-m/refarch/refarch-gateway. For detailed documentation, see the gateway documentation.

Authentication is managed using Keycloak, a robust open-source identity and access management solution. Keycloak handles user authentication, authorization, and user management for the MUCGPT platform, enabling secure Single Sign-On (SSO) across all services. For more details on customizing authentication or extending user management, refer to the Keycloak Migration Framework documentation.

Langfuse is an open-source LLM observability platform that supports agent tracing and prompt management. It is optional in MUCGPT. Internal prompts can also be retrieved from Langfuse through PROMPTS in core.config.yaml; see the Getting Started guide.

For more information, see the MUCGPT Features documentation.

🖊️ Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please open an issue with the tag “enhancement”, fork the repo and create a pull request. You can also simply open an issue with the tag “enhancement”. Don’t forget to give the project a star! Thanks again!

  1. Open an issue with the tag “enhancement”
  2. Fork the Project
  3. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

More about this in the CODE_OF_CONDUCT file.

📝 License

Distributed under the MIT License. See LICENSE file for more information.

📬 Contact

it@M - ki@muenchen.de