Integrate a Custom Server into Vibe
On this page
Update November 2, 2026 — Le Chat is now Vibe. As of May 28, 2026, Le Chat has been rebranded as Vibe (still at chat.mistral.ai): a single agent for work and code, carrying over your conversations, settings, and subscriptions. The legacy Le Chat experience remains accessible in Chat mode; in Work mode, agents have become skills (invoked with
@), memories have become the knowledge base, and deep search has become the Deep Research skill. Plans are now called Mistral Free, Pro, Team, and Enterprise. This lesson uses the name Vibe; note that some menus described here may have changed names or locations.
Connect Your MCP Server to Vibe
Your server is deployed and responding over HTTPS at a stable address. Now comes the step that gives meaning to all your previous work: making it usable in conversation by your intended audience, including those who will never open a terminal. Vibe accepts any compliant MCP server as a custom connector. This lesson covers adding the connector, walking through call flows in conversation, and diagnosing failures—because the first attempt often fails.
Add the Connector
Open Vibe at chat.mistral.ai and navigate to the Connectors tab in the sidebar. You will find two distinct sections: featured connectors, preconfigured by Mistral (GitHub, Notion, and others), and your own custom connectors, initially empty. Click Add Custom Connector and fill in the fields:
- Name: A descriptive name (e.g., “Task Manager”)
- Server URL: The full URL of your MCP endpoint (e.g.,
https://my-server.com/tasks/mcp) - Description: What your server does (optional but recommended)
Next, choose your authentication method: No authentication for a public server, Token if you paste your API token, or OAuth 2.0 for a full consent flow. Clicking Connect triggers discovery: if successful, Vibe displays the list of tools found on your server, showing the name and description of each. This is your first real feedback on the quality of your docstrings—you read them here exactly as the model will receive them.
What Happens in Conversation
Once connected, your server appears in the Tools section of the chat sidebar, marked by an icon indicating external tool availability. The user states their request in natural language, and the model translates:
User: Create a high-priority task to prepare the MCP demo
Vibe: [Calling create_task with the following arguments]
- title: "Prepare the MCP demo"
- priority: "high"
→ Do you want to authorize this tool call?
User: [Authorize]
Vibe: The task "Prepare the MCP demo" has been successfully created
with high priority. Its ID is abc123.
This confirmation prompt is the default behavior. You can approve it ad hoc or switch a tool to permanent authorization. Resist the temptation to do this for any server you do not own. Confirmation protects not only against bugs; it is your only defense against prompt injections, where instructions hidden in data returned by a tool steer the model toward calls no one requested. Seeing the arguments scroll by before validation is what allows you to spot the anomaly.
When It Doesn’t Work
The message “Unable to connect” almost always stems from one of these four causes: the URL is unreachable from the outside, the protocol is not HTTPS (which Vibe requires), the server simply isn’t running, or CORS is not configured even though Vibe sends requests from a browser. The following command distinguishes between the first two hypotheses in seconds:
# Test accessibility
curl -X POST https://your-url/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
If the connection succeeds but no tools appear, trace the chain back on the server side: verify that the @app.tool() decorator is present on every function, that no docstrings are missing, and that the MCP server is mounted on the route you think it is. Use MCP Inspector before any other investigation.
The most confusing case is when everything works, but the model calls the wrong tool or none at all. The problem is then not technical: the model chooses based on descriptions, and if two tools look alike or if one remains vague, it chooses poorly. Use three levers, in this order: make the description more specific by clarifying the use case, rename the tool to remove ambiguity, and reduce the number of tools active simultaneously. Finally, if a tool returns an error, check the server logs, replay the call manually in the inspector, and verify that environment variables are set and that the token or OAuth scopes grant the expected permissions.
The MCP Inspector: Use It Before Vibe
The inspector tests your tools without involving the model, isolating half the variables in the problem:
npx @modelcontextprotocol/inspector
It opens a web interface where you connect to your remote server via its URL, list all tools with their descriptions and parameters, execute a tool with arguments of your choice, and read the raw server response. Make it a habit to perform this check systematically before adding a server to Vibe, as it gives you an immediate diagnosis: if a tool responds correctly in the inspector but fails in Vibe, the server is not at fault, and the issue lies with the description or the prompt.
Living with Multiple Servers
Once you have installed several connectors, discipline becomes the primary factor in quality. Vibe lets you toggle each connector: keep active only the tools necessary for the current task, because a model drowned in fifty tools chooses less accurately and responds more slowly. This hygiene relies on the domain separation covered in Lesson 10—one server for project management, one for monitoring, one for internal tools—since you then need only activate the one matching the current conversation.
Finally, adapt your prompts to the capabilities actually exposed:
# Good: reflects tool capabilities
"Create a high-priority task titled 'Prepare the demo'"
# Bad: too vague, the model doesn't know which tool to use
"Manage my project"
One last point worth knowing before designing your servers: MCP connectors configured in Vibe remain available on the mobile app. Your internal tools thus become accessible from a phone, opening up field-use scenarios you might not consider when developing on a desktop.
Key Takeaways
- Adding a custom connector in Vibe takes 3 steps: name, URL, auth
- Keep manual confirmation of tool calls enabled for security
- Use the MCP Inspector to test and debug before integrating into Vibe
- Improve tool descriptions if the model isn’t using them correctly
- Keep active only the tools necessary for the current task
- Your MCP servers are also accessible on mobile