Agent Skills: Mistral AI Install & Auth

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/mistral-install-auth

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/mistral-pack/skills/mistral-install-auth

Skill Files

Browse the full folder contents for mistral-install-auth.

Download Skill

Loading file tree…

plugins/saas-packs/mistral-pack/skills/mistral-install-auth/SKILL.md

Skill Metadata

Name
mistral-install-auth
Description
|

Mistral AI Install & Auth

Overview

Set up the official Mistral AI SDK (@mistralai/mistralai for TypeScript, mistralai for Python) and configure authentication for chat completions, embeddings, function calling, vision, and agents.

Prerequisites

  • Node.js 18+ or Python 3.9+
  • Package manager (npm, pnpm, yarn, or pip)
  • Mistral AI account at console.mistral.ai
  • API key from La Plateforme (Settings > API Keys)

Instructions

Step 1: Install SDK

Node.js (TypeScript/JavaScript) — ESM only

set -euo pipefail
# npm
npm install @mistralai/mistralai

# pnpm
pnpm add @mistralai/mistralai

# yarn
yarn add @mistralai/mistralai

Python

set -euo pipefail
pip install mistralai

Step 2: Configure Authentication

Environment Variables (Recommended)

# Set in shell
export MISTRAL_API_KEY="your-api-key"

# Or create .env file (add to .gitignore!)
echo 'MISTRAL_API_KEY=your-api-key' >> .env
echo '.env' >> .gitignore

Using dotenv (Node.js)

set -euo pipefail
npm install dotenv
import 'dotenv/config';

Step 3: Verify Connection

TypeScript

import { Mistral } from '@mistralai/mistralai';

const client = new Mistral({
  apiKey: process.env.MISTRAL_API_KEY,
});

async function testConnection() {
  try {
    const models = await client.models.list();
    console.log('Connection successful! Available models:');
    for (const model of models.data ?? []) {
      console.log(`  - ${model.id}`);
    }
  } catch (error: any) {
    if (error.status === 401) {
      console.error('Invalid API key. Check your key at console.mistral.ai');
    } else {
      console.error('Connection failed:', error.message);
    }
  }
}

testConnection();

Python

import os
from mistralai import Mistral

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

def test_connection():
    try:
        models = client.models.list()
        print("Connection successful! Available models:")
        for model in models.data:
            print(f"  - {model.id}")
    except Exception as e:
        print(f"Connection failed: {e}")

test_connection()

Step 4: Production — Secret Manager

// GCP Secret Manager (recommended for production)
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';

const sm = new SecretManagerServiceClient();

async function getMistralKey(): Promise<string> {
  const [version] = await sm.accessSecretVersion({
    name: 'projects/my-project/secrets/mistral-api-key/versions/latest',
  });
  return version.payload?.data?.toString() ?? '';
}
// AWS Secrets Manager alternative
import { SecretsManager } from '@aws-sdk/client-secrets-manager';

const sm = new SecretsManager({ region: 'us-east-1' });

async function getMistralKey(): Promise<string> {
  const { SecretString } = await sm.getSecretValue({
    SecretId: 'mistral/api-key',
  });
  return SecretString!;
}

Output

  • Installed SDK package (@mistralai/mistralai or mistralai)
  • Environment variable or .env file with API key
  • Successful connection verification listing available models

Error Handling

| Error | Cause | Solution | |-------|-------|----------| | 401 Unauthorized | Invalid or missing API key | Verify key at console.mistral.ai | | Module not found | SDK not installed | Run npm install @mistralai/mistralai | | ERR_REQUIRE_ESM | Using CommonJS require | SDK is ESM-only; use import or dynamic await import() | | Network Error | Firewall blocking HTTPS | Ensure outbound HTTPS to api.mistral.ai is allowed |

Examples

TypeScript Client with Retry

import { Mistral } from '@mistralai/mistralai';

const client = new Mistral({
  apiKey: process.env.MISTRAL_API_KEY,
  timeoutMs: 30_000,
  maxRetries: 3,
});

export default client;

Python Client with Retry

import os
from mistralai import Mistral

client = Mistral(
    api_key=os.environ["MISTRAL_API_KEY"],
    timeout_ms=30_000,
    max_retries=3,
)

Validate API Key Format

function validateMistralApiKey(key: string): boolean {
  // Mistral keys are typically 32-char hex strings
  return /^[a-zA-Z0-9]{20,}$/.test(key);
}

Resources

Next Steps

After successful auth, proceed to mistral-hello-world for your first chat completion.