Open source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support. https://app.dograh.com
Find a file
Leoy 5762095edf
feat(mcp): add search_docs tool over docs corpus (closes #295) (#316)
* feat(mcp): add search_docs tool over Mintlify docs corpus

Closes #295. The docs at https://docs.dograh.com promise "Search the
Dograh docs for how to configure a TURN server" as an MCP example
prompt, but no search_docs tool exists in the MCP server — agents can
list workspace resources but cannot search the documentation.

This adds a dependency-free, in-process keyword search over the
`docs/` tree shipped into the API image (`COPY ./docs ./docs`):

- New `api/mcp_server/tools/docs_search.py` — async `search_docs(query,
  limit=10)` with weighted scoring (path > title > body), a 25-result
  hard cap, snippet extraction around the first term hit, and graceful
  empty-list degradation when docs aren't on disk. `DOGRAH_DOCS_PATH`
  env var overrides location discovery for non-Docker layouts.

- Registered in `api/mcp_server/server.py` alongside the other tools,
  keeping the existing list-alphabetical convention.

- `api/tests/test_mcp_docs_search.py` — 18 unit tests covering the
  pure helpers (tokenizer, frontmatter stripping, title extraction,
  scoring weights, URL building) and end-to-end ranking, limit
  clamping, empty-corpus degradation, and input-validation errors.
  Mocks `authenticate_mcp_request` to avoid the DB dependency,
  mirroring `test_mcp_save_workflow.py`.

Implementation notes:
- The docs corpus is ~100 files / ~140k LoC, so a per-call scan runs
  well under 50 ms; avoiding a vector index / embedding backend keeps
  the tool zero-dependency and works for fully offline self-hosted
  deployments.
- Authentication is required for consistency with the other MCP tools
  (and to route through the existing rate-limit middleware), even
  though docs are not org-scoped data.
- Title/path matches deliberately outweigh body matches so a page
  whose subject IS the query term outranks one that merely mentions
  it incidentally.

* feat: improve docs search

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-20 18:20:35 +05:30
.agents/skills feat: add Review AGENTS.md Skill 2026-05-20 16:20:07 +05:30
.github feat: enable FORCE_TURN_RELAY to diagnose turn connectivity for local deployment setups (#272) 2026-05-11 17:13:01 +05:30
api feat(mcp): add search_docs tool over docs corpus (closes #295) (#316) 2026-05-20 18:20:35 +05:30
config/coturn feat: add coturn configurations (#143) 2026-02-03 13:52:50 +05:30
deploy/templates chore: refactor setup scrpts (#288) 2026-05-14 14:45:34 +05:30
docs chore: refactor AGENTS.md 2026-05-20 15:56:52 +05:30
evals feat: add dictionary support for STT boosting in voice agents (#136) 2026-01-29 11:20:07 +05:30
examples feat: add examples to create workflow and use sdk 2026-04-24 14:09:24 +05:30
nginx feat: add rolling updates for production deployment (#175) 2026-03-02 14:44:04 +05:30
pipecat@ce4ee2d6fc feat(mcp): generic MCP tool source with per-node function filtering (#301) 2026-05-19 16:10:00 +05:30
scripts feat: add Tuner Integration to Dograh (#311) 2026-05-20 14:37:33 +05:30
sdk feat: add Tuner Integration to Dograh (#311) 2026-05-20 14:37:33 +05:30
ui feat: add Tuner Integration to Dograh (#311) 2026-05-20 14:37:33 +05:30
.dockerignore feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30
.gitignore feat: agent stream for cloudonix OPBX (#261) 2026-05-02 15:53:58 +05:30
.gitmodules refactor: change pipecat to submodule & add github alerts 2025-09-29 18:17:04 +05:30
.nvmrc Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
.python-version Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
.release-please-manifest.json chore(main): release dograh 1.30.1 (#304) 2026-05-17 20:48:55 +05:30
AGENTS.md feat: add Review AGENTS.md Skill 2026-05-20 16:20:07 +05:30
CHANGELOG.md chore(main): release dograh 1.30.1 (#304) 2026-05-17 20:48:55 +05:30
CLAUDE.md Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
CONTRIBUTING.md Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
docker-compose-local.yaml chore: update setup docs 2026-05-12 14:25:34 +05:30
docker-compose.yaml chore: refactor setup scrpts (#288) 2026-05-14 14:45:34 +05:30
LICENSE feat: add README, LICENSE, CONTRIBUTING 2025-09-10 09:20:38 +05:30
README.md docs: add Simplified Chinese translation of README (#305) 2026-05-19 16:10:38 +05:30
README.zh-CN.md docs: add Simplified Chinese translation of README (#305) 2026-05-19 16:10:38 +05:30
release-please-config.json fix: fix release please 2026-01-23 19:09:57 +05:30
remote_up.sh chore: refactor setup scrpts (#288) 2026-05-14 14:45:34 +05:30
SECURITY.md feat: add more issue templates 2025-09-30 15:05:06 +05:30

Dograh AI

The open-source, self-hostable alternative to Vapi & Retell — build production voice agents with a drag-and-drop workflow builder. From zero to a working bot in under 2 minutes.

Try the Cloud   Self-host in 60s   Join Slack

📖 Docs  ·  📜 BSD 2-Clause  ·  🌐 中文

Dograh in action — build a workflow, launch a voice agent, talk to it

  • 100% open source, self-hostable — no vendor lock-in, unlike Vapi or Retell
  • Full control & transparency — every line of code is open, with flexible LLM / TTS / STT integration
  • Maintained by YC alumni and exit founders, committed to keeping voice AI open
Dograh featured by Better Stack
Featured by Better Stack — a hands-on look at Dograh
📺 Prefer a 2-minute product walkthrough? Click here.

⚖️ Dograh vs Vapi vs Retell

An honest comparison on the axes that matter most to teams evaluating voice AI platforms.

Dograh Vapi Retell
License BSD 2-Clause (open source) Proprietary Proprietary
Self-hostable Yes — one Docker command SaaS only SaaS only
Pricing Free (self-host) · usage-based (cloud) Per-minute SaaS Per-minute SaaS
Bring your own LLM / STT / TTS Any provider, or use Dograh's stack Configurable within their integrations Configurable within their integrations
Source-level customization Every line is yours to modify Closed source Closed source
Data residency Your infra, your rules Their cloud Their cloud
Vendor lock-in None Full Full

🚀 Get Started

Download and setup Dograh on your Local Machine

Note

We collect anonymous usage data to improve the product. You can opt out by setting the ENABLE_TELEMETRY to false in the below command.

Note

If you wish to run the platform on a remote server instead, checkout our Documentation

curl -o docker-compose.yaml https://raw.githubusercontent.com/dograh-hq/dograh/main/docker-compose.yaml && REGISTRY=ghcr.io/dograh-hq ENABLE_TELEMETRY=true docker compose up --pull always

Note

First startup may take 2-3 minutes to download all images. Once running, open http://localhost:3010 to create your first AI voice assistant! For common issues and solutions, see 🔧 Troubleshooting.

🎙️ Your First Voice Bot

  1. Open http://localhost:3010 in your browser.
  2. Pick Inbound or Outbound, name your bot (e.g. Lead Qualification), and describe the use case in 510 words (e.g. Screen insurance form submissions for purchase intent).
  3. Click Web Call — you're talking to your bot.

🔑 No API keys needed. Dograh ships with auto-generated keys and its own LLM / TTS / STT stack. Connect your own keys for LLM, TTS, STT, or Telephony (e.g. Twilio, Vonage, Telnyx) anytime.

Features

Voice Capabilities

  • Telephony: Built-in telephony integration like Twilio, Vonage, Vobiz, Cloudonix (easily add others), with support for transferring calls to human agents
  • Languages: English support (expandable to other languages)
  • Custom Models: Bring your own TTS/STT models
  • Real-time Processing: Low-latency voice interactions

Developer Experience

  • Zero Config Start: Auto-generated API keys for instant testing
  • Python-Based: Built on Python for easy customization
  • Docker-First: Containerized for consistent deployments
  • Modular Architecture: Swap components as needed

Testing & Quality

  • Test Mode: Try your agent end-to-end before publishing, with no production calls or data affected
  • In-Dashboard Web Calls: Talk to your bot directly while building — no telephony setup required
  • QA Node: A built-in workflow node that analyzes prompt quality across your other nodes

Deployment Options

Local Development

Refer Local Setup

Self-Hosted Deployment

For detailed deployment instructions including remote server setup with HTTPS, see our Docker Deployment Guide.

Cloud Version

Visit https://www.dograh.com for our managed cloud offering.

📚Documentation

You can go to https://docs.dograh.com for our documentation.

🤝Community & Support

👋 Coming from the Better Stack video? Drop your use case in our pinned GitHub Discussion — we read every reply and the founders personally onboard early adopters.

  • Slack — the cornerstone of Dograh AI contributions. Connect with maintainers, discuss features before coding, get help with setup, and stay current on contribution sprints.
  • GitHub Discussions — share use cases, ask questions, swap workflow recipes.
  • GitHub Issues — report bugs or request features.

👉 Join us → Dograh Community Slack

🙌 Contributing

We love contributions! Dograh AI is 100% open source and we intend to keep it that way.

Getting Started

  • Fork the repository
  • Create your feature branch (git checkout -b feature/AmazingFeature)
  • Commit your changes (git commit -m 'Add some AmazingFeature')
  • Push to the branch (git push origin feature/AmazingFeature)
  • Open a Pull Request

Star History

Dograh star history

📄 License

Dograh AI is licensed under the BSD 2-Clause License- the same license as projects that were used in building Dograh AI, ensuring compatibility and freedom to use, modify, and distribute.

🏢 About

Built with ❤️ by Dograh (Zansat Technologies Private Limited) Founded by YC alumni and exit founders committed to keeping voice AI open and accessible to everyone.




Star us on GitHub | ☁️ Try Cloud Version | 💬 Join Slack