I Built an AI Chat Into My Own CRM. It Uses the Same MCP Server You Connect to From Claude Desktop.
A month ago we shipped a Model Context Protocol server so external AI clients — Claude Desktop, ChatGPT, Cursor — could talk to RadiusOS in plain English. 34 tools. Search contacts, move deals, draft emails, send invoices. It works.
The whole time, our own product had no AI chat in it. The CRM and the MCP server lived next to each other in the same codebase, and yet a user inside RadiusOS had to leave the app and open Claude Desktop to ask "what deals need attention today?" That's funny in a bad way.
Today we shipped Ask RadiusOS: a chat panel that lives inside every workspace page. Click the purple Sparkles button in the bottom-right corner (or press ⌘/) and a drawer slides in from the right. You ask anything in plain English. It executes against your live workspace and replies. No tab-switching, no copy-paste, no context loss.
The dogfooding part
Here's the bit that matters technically: Ask RadiusOS uses the same MCP server external clients connect to. Same code, same tool handlers, same auth context. We didn't build a separate AI integration for the in-app chat. We connected the chat directly to our own MCP server using an in-process transport.
Concretely: when you click "Move Sarah to the next stage" in the in-app chat, the request flows through:
- Browser → /api/ai/chat (server route)
- Server spins up the MCP server in-process via InMemoryTransport
- Claude (Haiku 4.5) receives the workspace's full tool list
- Claude calls the move-contact-stage tool — the exact same handler external Claude Desktop users hit
- Result returns to the user as a natural-language reply
This is true dogfooding. Every new tool we ship to the public MCP server is automatically available in the in-product chat, and vice versa. If a tool breaks, both audiences feel it. If a tool gets better, both audiences benefit. There's one definition of "what RadiusOS can do," not two.
What it looks like in practice
You're on the Pipeline page looking at a Kanban board. You think: which of these deals haven't been touched in a week? You hit ⌘/, the chat opens, you type "show me deals stalled 7+ days, sorted by score" and you get back a ranked list with clickable links. Click any contact name → you're on their detail page.
You're drafting a quote. You think: what was the last thing I emailed this client? You hit ⌘/, type "what was the last email to Tom Park?" — back comes the subject and date. No tab-switching. You finish the quote.
You're catching up after a weekend. You hit ⌘/ and type "what did I miss?" The assistant pulls overdue tasks, deals that moved without you, and contacts who replied while you were away. Triage that used to take fifteen minutes of clicking takes fifteen seconds of reading.
What's the same as our MCP server, what's different
Same: the 34 tools, the auth model, the cost guardrails (Claude Haiku 4.5, prompt caching, per-workspace daily caps). Same handlers run for both audiences.
Different: in-app chat skips the OAuth flow because you're already signed in. The reply renders inside the workspace — links open same-origin and feel native. The system prompt knows your workspace's URL prefix so contact names in replies become real navigation links.
External clients (Claude Desktop, ChatGPT, Cursor) still work exactly as before. Most operators end up using both: in-app chat for quick questions while working in the CRM, Claude Desktop for cross-tool workflows that bridge RadiusOS with other apps. The same brain serves both.
What it cost to build
Three small files plus a thin in-process transport bridge. No new database tables. No new auth flow. No streaming complexity (single JSON response after the agent loop completes — V2 might add streaming if anyone asks). The component count is light because the work was already done — the MCP server already existed; we just wired it into a UI panel that lives inside the app.
The real lesson isn't "we shipped a chat panel." The lesson is: build the protocol layer first, ship the UI on top of it. We built MCP because external AI clients were the obvious distribution win. Then it turned out the same protocol layer is the right backbone for our in-product AI too. The same instinct that makes a product extensible to outside developers makes it cheaper to extend internally.
Try it
Ask RadiusOS is included on the Business and Team plans. Sign up free, upgrade to Business when you're ready, and look for the purple Sparkles button in the bottom-right of any workspace page. ⌘/ to toggle from anywhere.
Same MCP server you'd connect to from Claude Desktop. Embedded right where you work.
Ready to try a smarter CRM?
RadiusOS gives you AI-powered deal scoring, automated follow-ups, and a pipeline that fits your workflow. Start free, no credit card required.
Get Started Free