h.
HUHU.fr
MODEL CONTEXT PROTOCOLv1.0

HUHU MCP

Branchez Claude Desktop, Claude.ai, Cursor et n'importe quel agent IA compatible MCP directement à la base spam HUHU. Une URL, votre clé API, et vos IA savent vérifier les numéros, lire votre solde et consulter l'historique — sans quitter la conversation.

Pourquoi MCP ?

ZÉRO PLUMBING

Pas de wrapper, pas de glue code. Les IA appellent directement les tools MCP. Une URL, un token, et c'est en ligne dans Claude Desktop en 30 secondes.

🔌

MULTI-CLIENT

Standard ouvert MCP 2025. Claude Desktop, Claude.ai web (Custom Connectors), Cursor, Cline, Continue, Zed — un seul serveur pour tous.

🔒

MÊME API, MÊME SÉCURITÉ

Wrappé sur la même API REST documentée. Mêmes rate limits, mêmes credits, mêmes garanties. Authentification Bearer avec votre clé API existante.

Connecter en 60 secondes

Choisissez votre client IA. Collez la config. C'est tout.

SERVER URL
https://num.huhu.fr/mcp
TRANSPORT
Streamable HTTP
AUTH
Bearer <API key>
Générer ma clé API

1. Claude Desktop

Ajoutez ce bloc à votre fichier de config Claude Desktop : ~/Library/Application Support/Claude/claude_desktop_config.json

json
{
  "mcpServers": {
    "huhu-spam-check": {
      "transport": "streamable-http",
      "url": "https://num.huhu.fr/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_HUHU_API_KEY"
      }
    }
  }
}

2. Claude.ai (Web) — Custom Connectors

Dans Claude.ai → Settings → Custom Connectors → Add MCP Server :

config
Server name:      huhu-spam-check
Server URL:       https://num.huhu.fr/mcp
Transport:        Streamable HTTP
Authentication:   Bearer token
Token:            YOUR_HUHU_API_KEY

3. Cursor / Cline / Continue

Ajoutez à votre fichier de config MCP de Cursor : .cursor/mcp.json

json
{
  "mcpServers": {
    "huhu-spam-check": {
      "url": "https://num.huhu.fr/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_HUHU_API_KEY"
      }
    }
  }
}
NEW · 2026

OAuth 2.1 — Pour Claude.ai & agents avancés

Pas besoin de partager votre clé API. Connectez avec votre compte HUHU comme avec n'importe quelle app moderne.

DANS CLAUDE.AI / CUSTOM CONNECTORS
URL du serveur
https://num.huhu.fr/mcp
ID client OAuth
(laisser vide)DCR auto · pas de secret nécessaire
Secret client OAuth
(laisser vide)DCR auto · pas de secret nécessaire

Comment ça marche

  1. 1Claude.ai fait Dynamic Client Registration sur /oauth/register — récupère un client_id éphémère
  2. 2Vous êtes redirigé sur notre page de consent (style brutaliste huhu) qui liste les scopes demandés
  3. 3Vous cliquez Autoriser → on génère un code OAuth avec PKCE S256
  4. 4Claude échange le code contre un access token, qui est votre clé API HUHU (durée de vie 1 an)
  5. 5Claude appelle /mcp avec ce Bearer pour chaque tool — verify_number, verify_bulk, etc.

Endpoints OAuth

  • GET /.well-known/oauth-authorization-server
  • GET /.well-known/oauth-protected-resource
  • POST /oauth/register (DCR)
  • GET /oauth/authorize
  • POST /oauth/token

Révocation

Pour révoquer l'accès, régénérez votre clé API sur le dashboard. Toutes les sessions OAuth associées seront invalidées immédiatement.

→ Dashboard clés API

Tools exposés

Quatre tools, tous documentés pour que les IA les utilisent correctement.

verify_number1 credit

Vérifie si un numéro est marqué comme spam, robocall, arnaque ou fraude. Signal combiné Hiya + Truecaller + Orange. Retourne score 0-100, type de spam, opérateur. Consomme 1 crédit.

ARGUMENTS
{ phoneNumber: string (E.164) }
EXAMPLE
"+33612345678"
verify_bulk1 credit / number

Lance des vérifications spam sur jusqu'à 100 numéros en une seule requête. Retourne un tableau avec un résultat par numéro. Consomme 1 crédit par numéro.

ARGUMENTS
{ phoneNumbers: string[], stopOnError?: boolean }
EXAMPLE
["+33612345678", "+14155552671"]
get_balanceFREE

Retourne le solde de crédits de l'utilisateur et son plan actif. Gratuit — utile avant un verify_bulk volumineux.

ARGUMENTS
{}
EXAMPLE
get_historyFREE

Liste les dernières vérifications de l'utilisateur, plus récentes en premier. Gratuit. Filtrable par numéro.

ARGUMENTS
{ page?: number, limit?: number, phoneNumber?: string }
EXAMPLE
{ "limit": 10 }

Protocole brut (HTTP)

Pour les agents qui parlent MCP directement, sans SDK.

1. Initialize — handshake JSON-RPC 2.0

curl
curl -X POST https://num.huhu.fr/mcp \
  -H "Authorization: Bearer YOUR_HUHU_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "test-client", "version": "1.0" }
    }
  }'

2. Lister les tools disponibles

curl
curl -X POST https://num.huhu.fr/mcp \
  -H "Authorization: Bearer YOUR_HUHU_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }'

3. Appeler verify_number

curl
curl -X POST https://num.huhu.fr/mcp \
  -H "Authorization: Bearer YOUR_HUHU_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "verify_number",
      "arguments": { "phoneNumber": "+33612345678" }
    }
  }'

4. Avec le SDK MCP officiel (TypeScript / Node)

typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const transport = new StreamableHTTPClientTransport(new URL('https://num.huhu.fr/mcp'), {
  requestInit: {
    headers: { 'Authorization': 'Bearer ' + process.env.HUHU_API_KEY }
  }
});

const client = new Client({ name: 'my-agent', version: '1.0' }, { capabilities: {} });
await client.connect(transport);

const tools = await client.listTools();
console.log(tools);

const result = await client.callTool({
  name: 'verify_number',
  arguments: { phoneNumber: '+33612345678' }
});
console.log(result.content);

Manifeste de découverte

Les agents IA peuvent auto-configurer le serveur en lisant ce manifeste public :

GET https://num.huhu.fr/.well-known/mcp.json

Rate limit & sécurité

RATE LIMITS

  • • 300 requêtes / minute par clé API
  • • Pas de rate limit séparé sur /mcp (hérité de /api)
  • • HTTP 429 si dépassement, retry après ~60s

AUTHENTIFICATION

  • OAuth 2.1 + DCR + PKCE — Claude.ai, Claude Desktop
  • • Bearer token (votre clé API) — agents custom
  • • JWT supporté (sessions dashboard)
  • • Révocation : régénérez votre clé API sur le dashboard

FAQ

C'est quoi MCP exactement ?

Model Context Protocol — standard ouvert lancé par Anthropic en 2024 qui permet aux IA (Claude, etc.) d'appeler des outils externes de façon sûre et structurée. C'est la couche officielle entre une IA et vos APIs.

Combien ça coûte ?

Le serveur MCP est gratuit. Les vérifications de numéros consomment vos crédits HUHU normaux (1 crédit / numéro). Lire le solde et l'historique est gratuit.

Quels clients IA marchent avec ?

N'importe quel client supportant le transport Streamable HTTP : Claude Desktop, Claude.ai (Custom Connectors), Cursor, Cline, Continue, Zed, et tout agent custom basé sur @modelcontextprotocol/sdk.

C'est différent de l'API REST ?

Non — c'est exactement la même API, exposée via le protocole MCP au lieu de REST. Mêmes données, mêmes credits, mêmes rate limits. Le serveur MCP est un wrapper officiel pour les IA.

OAuth ?

Oui — OAuth 2.1 complet avec Dynamic Client Registration (RFC 7591) et PKCE (RFC 7636). Dans Claude.ai, laissez les champs Client ID et Secret vides : Claude fait du DCR automatique. Vous validez l'accès une fois sur notre page de consent, et c'est branché. Bearer token simple reste supporté pour les agents custom.

Connectez votre IA en 60 secondes

Récupérez votre clé API HUHU, collez la config dans Claude Desktop, et vos IA savent désormais détecter les numéros spam en temps réel.

Récupérer ma clé API
Serveur MCP — Détection spam téléphonique pour Claude, IA & agents | HUHU.fr | HUHU.fr