Skip to main content
Glama
iamsrishanth

OpenTeleCRM MCP Server

by iamsrishanth

OpenTeleCRM

1:1 FOSS clone of TeleCRM — a telecalling-first sales CRM. Multi-tenant from line one, self-hosted natively (no Docker), PostgreSQL with RLS.

Surface

Status

Details

REST API

✅ 75/75 tests

NestJS + Fastify on port 3005

JSON-RPC MCP

✅ 15/15 tests · 13 tools

Streamable HTTP on port 3100 (dev)

Bruno collection

✅ 27 reqs, 58 assertions

TeleCRM wire-compatible

WhatsApp

✅ 14/14 tests · wwebjs driver

Pairing-code auth, templates, broadcasts

Telephony

✅ 11/11 tests

Dialer + callbacks, OSS provider on Asterisk


Quick start

make setup      # provision deps + install + db-init + db-migrate + db-seed
pnpm dev        # API on :3005, MCP on :3100
pnpm test       # 75 API + 15 MCP + 14 whatsapp + 11 telephony tests, 13 suites

Or step by step:

make provision         # system deps (Debian)
make install           # pnpm install
make db-init           # create DB + role
make db-migrate        # Drizzle migrations
make db-seed           # demo enterprise, 5000 leads, 3 users, 2 pipelines

Bruno collection

cd collections/opentelecrm
bash ../../scripts/bruno-bootstrap-jwt.sh   # inject a dev JWT
npx @usebruno/cli run --env local -r .       # 27 requests, 58 assertions

Related MCP server: Outlet das Cores CRM

Architecture

A Turborepo monorepo (pnpm@9.15.4, turbo run …). ESM-only, Node ≥ 22.

opentelecrm/
├── services/
│   ├── api/          # NestJS REST API  (Fastify, port 3005)
│   ├── mcp/          # JSON-RPC MCP     (Express, port 3006)
│   └── whatsapp/     # WhatsApp driver  (whatsapp-web.js, pairing-code)
├── packages/
│   └── db/           # Drizzle schema, RLS, migrations, seed data
├── apps/
│   ├── web/          # Next.js web app  (placeholder)
│   ├── widget/       # Embeddable widget(placeholder)
│   ├── extension/    # Browser extension(placeholder)
│   └── mobile/       # React Native app (placeholder)
├── collections/
│   └── opentelecrm/  # Bruno API test collection
├── docs/             # ARCHITECTURE.md, PARITY.md, ADRs
└── scripts/
    └── provision/    # Native Debian setup (no Docker)

Auth flow

  1. Dev JWT — HS256 signed with DEV_JWT_SECRET, used in local dev + Bruno

  2. API tokenstelekrm_async_ / telekrm_sync_ tokens, stored as SHA-256 hash

  3. OIDC — Zitadel id-tokens (future)

All requests route through AuthGuard + RLS via withTenant(eid) — no row can leak across tenants.

TeleCRM parity

Area

Status

Foundation (multi-tenant, RLS, seed data)

Lead CRUD + search + upsert

Action logging (note, call, WhatsApp)

Async autoupdate + validation

API token management

Team member list

Custom actions

WhatsApp (conversations, send, templates)

Telephony (calls, dialer, callbacks, recordings)

Automation (rules, schedule, distribution, webhook)

Web app, widget, extension, mobile

🚧 — web desk shipped (real-stats dashboard, lead action bar, dialer, automations, templates, broadcasts, callbacks, webhooks); widget/extension/mobile empty

Full detail: docs/PARITY.md


Test surface

pnpm test              # all workspace tests (75 API + 15 MCP + 14 whatsapp + 11 telephony)
cd services/api && npx vitest run --config vitest.contract.config.ts  # focused: 75 tests, 9 files
make typecheck         # tsc --noEmit across all workspaces
pnpm lint              # Biome

Tests spin up the real API (dev JWT + seeded DB), hit authGuard + RLS — no mocking.


Tech stack

  • Runtime — Node.js ≥ 22, ESM

  • Package management — pnpm + Turborepo

  • API — NestJS 10 + Fastify adapter

  • DB — PostgreSQL 16, Drizzle ORM + Drizzle Kit, native RLS

  • Auth — HS256 JWTs + SHA-256 API tokens + Zitadel OIDC (future)

  • Deps — TypeScript 5.7, Biome 1.9, Vitest

  • WhatsApp — whatsapp-web.js (wwebjs), pairing-code auth

  • Infra — Native Debian 13, systemd units, no Docker


License

AGPL-3.0 — see docs/LICENSES.md.

This is not affiliated with TeleCRM. It is an independent, clean-room implementation of the documented API surface for self-hosted use.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to interact with Bitrix24 CRM through standardized MCP tools, including searching and managing contacts, deals, leads, tasks, and replying in chats.
    Last updated
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    A multi-tenant MCP server that exposes DataCrazy CRM REST API as 63 auto-generated tools, allowing AI assistants to query leads, conversations, pipelines, and more through natural language.
    Last updated
    MIT

View all related MCP servers

Related MCP Connectors

  • Agent-native CRM. 25 tools — contacts, deals, sequences, enrichment waterfall, audit log.

  • LeadConnector / GoHighLevel MCP Pack — wraps the GoHighLevel CRM for AI agents.

  • Vruum AI revenue platform — outbound, deals, pipeline & CRM automation over one MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamsrishanth/OpenTeleCRM'

If you have feedback or need assistance with the MCP directory API, please join our Discord server