Zum Inhalt springen
ecdsa.com

MCP-Server

Über das Model Context Protocol (MCP) können KI-Agenten und IDE-Assistenten Tools aufrufen. Der Server von ecdsa.com stellt ihnen die Operationen der API und die Referenzkataloge der Website bereit – so kann ein Assistent eine Signatur prüfen oder einen TLS-Fehler erklären, statt zu raten.

Endpunkt

https://ecdsa.com/api/mcp

Streamable HTTP, zustandslos – keine Sitzungen und nichts zu installieren. Jeder MCP-Client, der sich mit Remote-Servern verbindet, funktioniert.

Kein API-Schlüssel nötig: Jedes Tool funktioniert anonym. Sobald API-Schlüssel mit den Konten starten, gilt für Aufrufe mit Schlüssel statt des Limits pro IP das eigene Limit des Schlüssels.

Client verbinden

Claude Code

Der erste Befehl fügt den Server für dich hinzu; mit --scope project landet er in der Datei .mcp.json des Repositorys und funktioniert für alle, die das Projekt öffnen.

Terminal
claude mcp add --transport http ecdsa https://ecdsa.com/api/mcp
claude mcp add --transport http ecdsa --scope project https://ecdsa.com/api/mcp
.mcp.json
{
  "mcpServers": {
    "ecdsa": {
      "type": "http",
      "url": "https://ecdsa.com/api/mcp"
    }
  }
}
Mit API-Schlüssel

Für später, wenn API-Schlüssel verfügbar sind. Schreib den Schlüssel in keine Datei, die du eincheckst.

Füge den Schlüssel im lokalen Scope hinzu, wo er auf deinem Rechner bleibt: Ein lokaler Eintrag ersetzt den gemeinsamen Eintrag mit demselben Namen – nur für dich.

Terminal
claude mcp add --transport http ecdsa https://ecdsa.com/api/mcp \
  --header "Authorization: Bearer ecdsa_live_…"

Claude Desktop und claude.ai

Anpassen → Konnektoren → Hinzufügen → Benutzerdefinierten Connector hinzufügen. URL https://ecdsa.com/api/mcp, Authentifizierung: Keine Anmeldung. Konnektoren gehören zu deinem Claude-Konto – einer, den du auf claude.ai hinzufügst, funktioniert also auch in Claude Desktop; der Free-Tarif erlaubt einen benutzerdefinierten Konnektor.

Mit API-Schlüssel

Für später, wenn API-Schlüssel verfügbar sind. Schreib den Schlüssel in keine Datei, die du eincheckst.

Wo der Konnektor-Dialog Request-Header anbietet, füge Authorization mit dem Wert Bearer ecdsa_live_… hinzu; wo noch nicht, nutze die stdio-Brücke unten mit ihrer Option --header. Konnektoren rufen aus der Cloud von Anthropic auf, daher teilen sich ohne Schlüssel alle, die sie nutzen, ein Budget pro IP.

Cursor

In ~/.cursor/mcp.json für alle Projekte oder in .cursor/mcp.json für ein einzelnes:

mcp.json
{
  "mcpServers": {
    "ecdsa": {
      "url": "https://ecdsa.com/api/mcp"
    }
  }
}
Mit API-Schlüssel

Für später, wenn API-Schlüssel verfügbar sind. Schreib den Schlüssel in keine Datei, die du eincheckst.

Für einen Schlüssel ist die globale Datei die bessere Wahl. Cursor setzt ECDSA_API_KEY aus der Umgebung ein, die Variable muss also gesetzt sein.

~/.cursor/mcp.json
{
  "mcpServers": {
    "ecdsa": {
      "url": "https://ecdsa.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:ECDSA_API_KEY}"
      }
    }
  }
}

VS Code

In .vscode/mcp.json des Arbeitsbereichs oder über die Befehlszeile:

.vscode/mcp.json
{
  "servers": {
    "ecdsa": {
      "type": "http",
      "url": "https://ecdsa.com/api/mcp"
    }
  }
}
Terminal
code --add-mcp '{"name":"ecdsa","type":"http","url":"https://ecdsa.com/api/mcp"}'
Mit API-Schlüssel

Für später, wenn API-Schlüssel verfügbar sind. Schreib den Schlüssel in keine Datei, die du eincheckst.

VS Code fragt beim ersten Start des Servers nach dem Schlüssel und bewahrt ihn in seinem Secret-Speicher auf.

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "ecdsa-api-key",
      "description": "ecdsa.com API key",
      "password": true
    }
  ],
  "servers": {
    "ecdsa": {
      "type": "http",
      "url": "https://ecdsa.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:ecdsa-api-key}"
      }
    }
  }
}

Clients, die nur stdio unterstützen

Verbinde sie über mcp-remote mit dem Remote-Server:

mcp.json
{
  "mcpServers": {
    "ecdsa": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://ecdsa.com/api/mcp"
      ]
    }
  }
}

Tools

Der Server listet 11 Tools auf, hier direkt aus seiner eigenen Registry ausgelesen – dieselbe Liste, die tools/list zurückgibt.

  • verify_signatureVerify an ECDSA signature

    Verifies a signature over a message (or a precomputed digest) against a public key. Curves: P-256, P-384, P-521, secp256k1. Signature formats auto-detected: ASN.1 DER or raw r‖s, in hex, base64 or base64url. Public key formats: PEM SPKI ("PUBLIC KEY"), EC JWK, or a bare SEC1 point in hex/base64. A signature that simply does not verify returns valid: false with HTTP 200; only unparseable input yields 400.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit SchlüsselPOST/v1/verify

  • convert_signatureConvert a signature between DER and raw r‖s

    Decodes a signature (DER or raw, auto-detected; hex/base64/base64url) and returns both encodings plus r, s and the high-S flag. normalize: "low-s" replaces a high-S s with n − s. Warnings list DER canonicality deviations (BER lengths, missing 0x00 pads, trailing bytes) and curve-ambiguity notes.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit SchlüsselPOST/v1/convert

  • decode_jwtDecode a JWT (no signature check)

    Decodes a compact JWS token: header, payload, enriched exp/iat/nbf time claims and a classification of the algorithm. The signature is NOT verified — the response carries verified: false explicitly. Use /v1/jwt/verify to check ES* signatures.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit SchlüsselPOST/v1/jwt/decode

  • verify_jwtVerify an ES256/ES384/ES512 JWT signature

    Verifies the token's ECDSA signature against a public key (PEM SPKI, EC JWK, or bare SEC1 point). Non-ECDSA algorithms (HS*, RS*, PS*, EdDSA, ES256K, none) return 400 with code unsupported_algorithm. A signature that fails verification returns valid: false with HTTP 200. Time claims are noted in explanations but do not affect valid.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit SchlüsselPOST/v1/jwt/verify

  • decode_certificateDecode an X.509 certificate or chain

    Accepts PEM (one or more CERTIFICATE blocks — a whole chain works) or a single DER certificate as base64/hex. Returns a structured summary per certificate — subject, issuer, validity, key and signature algorithms, SAN, key usage, fingerprint — plus assessments (weak hashes, expiry, CA/Browser Forum lifetime limits, post-quantum notes).

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit SchlüsselPOST/v1/cert/decode

  • get_domain_healthTLS signature-health grade for a domain

    Connects to the domain on port 443, examines the served certificate chain, key and signature algorithms, protocol versions and lifetimes, and returns a letter grade with findings, plus the leaf certificate's expiry and key algorithm as structured fields. Results are cached for 1 hour. Only public DNS hostnames are accepted — IP addresses, single-label names and private/reserved addresses are refused. Extra rate limit: 10 requests/minute per IP. A fresh scan can take several seconds.

    Nur lesend, verbindet sich mit dem Host, den du angibstScope scan · 5 Kontingenteinheiten pro Aufruf mit SchlüsselGET/v1/health/{domain}

  • explain_errorExplain an error message

    Looks up an error message from a cryptography, TLS, certificate, JWT, SSH, code-signing or Web3 library in the ecdsa.com error catalog (299 messages, reproduced against the libraries that print them) and returns what it means, its likely causes and step-by-step fixes with code. Paste the message as printed; a whole log excerpt or stack trace works too. Never include private keys or secrets: input containing a private key is refused.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit Schlüssel

  • lookup_oidLook up an object identifier (OID)

    Resolves an ASN.1 object identifier used in X.509 certificates, CSRs, CMS/PKCS#7, PKCS#8/#12 and post-quantum PKI against the ecdsa.com OID catalog (938 identifiers: curated, IANA SMI arcs, CCADB EV policies). Accepts a dotted OID, its DER encoding in hex, or a name such as prime256v1 or ecdsa-with-SHA256; returns the name, aliases, category, DER encoding, OpenSSL names and references. Unknown OIDs still get their DER encoding and nearest known ancestor.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit Schlüssel

  • lookup_algorithmLook up a cryptographic algorithm identifier

    Resolves an algorithm identifier against the IANA registries for JOSE and COSE (algorithms, key types, curves), TLS (cipher suites, signature schemes, supported groups), SSH, DNSSEC and HPKE: what it is, its code point, recommendation status, parameters (curve, hash, key size), names in OpenSSL/GnuTLS/NSS and the defining RFCs. Accepts names (ES256, TLS_AES_128_GCM_SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ecdsa-sha2-nistp256, X25519MLKEM768) or code points (-7, 0x0403, 13); `registry` narrows the search.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit Schlüssel

  • lookup_curveLook up an elliptic curve

    Describes a named elliptic curve from the ecdsa.com curve catalog (54 curves, each checked arithmetically): its names in every standard (SEC 2, NIST, ANSI X9.62, JOSE/COSE, SSH, TLS), OIDs with DER encoding, domain parameters, security level, status (recommended to broken) and where it is used. Accepts any spelling — P-256, secp256r1, prime256v1, nistp256, X25519, Ed25519, brainpoolP256r1 — or the curve's OID.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit Schlüssel

  • glossaryDefine a cryptography term

    Defines a term from the ecdsa.com glossary (302 terms on signatures, JOSE, PKI, TLS, email authentication, Web3, post-quantum cryptography, identity and supply chain): a one-sentence definition, the explanation from the term's page, references to the standards and related terms, tools and errors.

    Nur lesendScope api · 1 Kontingenteinheit pro Aufruf mit Schlüssel

Limits

Anonyme Aufrufe teilen sich das Budget der REST-API: 60 Anfragen pro Minute und IP, dazu 10 pro Minute für get_domain_health, dessen echte Scans außerdem von den gemeinsamen Scan-Budgets zehren. Gehostete Clients – Konnektoren in claude.ai und Claude Desktop – rufen aus der Cloud von Anthropic auf; alle, die sie nutzen, verbrauchen daher dasselbe Budget pro IP, und bei starker Nutzung erscheint rate_limited.

Private Schlüssel

Argumente, die Material eines privaten Schlüssels enthalten – einen PEM-Block „PRIVATE KEY“, einen OpenSSH-, SSH2- oder PuTTY-Schlüssel, einen JWK mit „d“ –, werden mit private_key_rejected abgewiesen, bevor irgendetwas anderes passiert, genau wie bei der REST-API. Argumente werden nie protokolliert.