SSOT-MCP
by ysok
README.md
# SSOT-MCP (Single Source of Truth — MCP)
**SSOT-MCP** is a **free, open-source** system for teams who want **one place** to index **many Git repositories** and query them from MCP-capable tools (for example **Cursor**).
Ingest GitHub or GitLab organizations or individual repositories, run a **Prefect** pipeline per repo (**clone → chunk → embed → index → cross-deps**), then search through **Chroma** (semantic) and **Zoekt** (lexical) via a **dashboard**, **REST/WebSocket API**, or **MCP**.
## Demo
[](https://youtu.be/vAMQ8tqVxHU)
## Requirements
| Category | What you need |
|----------|----------------|
| **Runtime** | [Podman](https://podman.io/) and [podman-compose](https://github.com/containers/podman-compose) |
| **Imports** | **GitHub** or **GitLab** token, plus a **[Hugging Face](https://huggingface.co/docs/hub/security-tokens)** token for the embedding model |
| **GPU (embedding)** | **NVIDIA GPU** strongly recommended for production embed throughput; see **[docs/README.md](docs/README.md#gpu-for-embedding)** |
## Quick start
```bash
git clone https://github.com/ysok/ssot-mcp.git
cd ssot-mcp
cp .env.example .env
# Edit .env: GITHUB_TOKEN or GITLAB_TOKEN, HF_TOKEN, postgres UIDs, GPU settings
podman-compose up --build
```
Compose creates `data/app` and `data/postgres` on the host. Finish **Settings** (tokens) before **Import** or **Scan**.
| Service | URL |
|---------|-----|
| Dashboard | http://localhost:8080 |
| API docs | http://localhost:8000/docs |
| Prefect UI | http://localhost:4200 |
## Documentation
| Document | Contents |
|----------|----------|
| **[docs/README.md](docs/README.md)** | Configuration, data layout, MCP, auth, troubleshooting, local dev |
| **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** | Stack, features, deployment topology, Mermaid diagrams |
| **[docs/PRESENTATION.md](docs/PRESENTATION.md)** | Marp slide deck (overview for teams) |
| **[.env.example](.env.example)** | Environment variables |
| **[CONTRIBUTING.md](CONTRIBUTING.md)** | Development and PR expectations |
| **[CHANGELOG.md](CHANGELOG.md)** | Release notes |
## Legal
- **License:** [MIT](LICENSE)
- **Third-party components:** [NOTICE](NOTICE) (Zoekt, Chroma, Prefect, PyTorch/CUDA, container bases, embedding model)
- **Indexed repositories:** You must have rights to clone and index any code you register; SSOT-MCP does not grant those rights.
- **Trademarks:** Names such as Cursor, GitHub, GitLab, and Hugging Face are trademarks of their respective owners; this project is not affiliated with them unless stated otherwise.
## Contributing
See **[CONTRIBUTING.md](CONTRIBUTING.md)**.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues