| name | mistral-deploy-integration |
| description | Deploy Mistral AI integrations to Vercel, Docker, and Cloud Run platforms.
Use when deploying Mistral AI-powered applications to production,
configuring platform-specific secrets, or setting up deployment pipelines.
Trigger with phrases like "deploy mistral", "mistral Vercel",
"mistral production deploy", "mistral Cloud Run", "mistral Docker".
|
| allowed-tools | Read, Write, Edit, Bash(vercel:*), Bash(docker:*), Bash(gcloud:*) |
| version | 1.12.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","mistral","deployment"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Mistral AI Deploy Integration
Overview
Deploy Mistral AI-powered applications to production with secure API key management. Covers Vercel (Edge + Serverless), Docker, Cloud Run, and self-hosted vLLM deployments. All connect to api.mistral.ai or your own inference endpoint.
Prerequisites
- Mistral AI production API key
- Platform CLI installed (vercel, docker, or gcloud)
- Application using
@mistralai/mistralai SDK
Instructions
Step 1: Platform Secret Configuration
set -euo pipefail
vercel env add MISTRAL_API_KEY production
vercel env add MISTRAL_MODEL production
echo -n "your-key" | gcloud secrets create mistral-api-key --data-file=-
echo "MISTRAL_API_KEY=your-key" > .env.production
echo ".env.production" >> .gitignore
Step 2: Vercel Edge Function
import { Mistral } from '@mistralai/mistralai';
export const config = { runtime: 'edge' };
export default async function handler(req: Request) {
const client = new Mistral({ apiKey: process.env.MISTRAL_API_KEY! });
{ messages, stream = } = req.();
(stream) {
streamResponse = client..({
: process.. ?? ,
messages,
});
encoder = ();
readable = ({
() {
( event streamResponse) {
content = event.?.?.[]?.?.;
(content) {
controller.(encoder.());
}
}
controller.(encoder.());
controller.();
},
});
(readable, {
: {
: ,
: ,
},
});
}
response = client..({
: process.. ?? ,
messages,
});
.(response);
}