MCP 服务器
模型上下文协议(MCP)让 AI 智能体和 IDE 助手能够调用工具。ecdsa.com 的服务器向它们提供 API 的各项操作和本站的参考资料目录,让助手能够验证签名或解释 TLS 错误,而不是靠猜。
端点
https://ecdsa.com/api/mcpStreamable HTTP,无状态——没有会话,也无需安装任何东西。任何能连接远程服务器的 MCP 客户端都可以使用。
无需 API 密钥:所有工具都可以匿名使用。API 密钥随账号推出后,携带密钥的调用将不再受按 IP 计算的限额约束,改用该密钥自己的限额。
连接客户端
Claude Code
第一条命令为你自己添加该服务器;加上 --scope project 后,它会写入仓库的 .mcp.json,对所有打开该项目的人生效。
claude mcp add --transport http ecdsa https://ecdsa.com/api/mcp
claude mcp add --transport http ecdsa --scope project https://ecdsa.com/api/mcp{
"mcpServers": {
"ecdsa": {
"type": "http",
"url": "https://ecdsa.com/api/mcp"
}
}
}使用 API 密钥
适用于 API 密钥推出之后。切勿把密钥写入会提交到仓库的文件。
在本地(local)作用域中添加密钥,这样它只保存在你的机器上:同名的本地条目会替换共享条目,且只对你生效。
claude mcp add --transport http ecdsa https://ecdsa.com/api/mcp \
--header "Authorization: Bearer ecdsa_live_…"Claude Desktop 和 claude.ai
依次打开 Customize → Connectors → Add → Add custom connector。URL 填写 https://ecdsa.com/api/mcp,身份验证选择 No sign in。连接器属于你的 Claude 账号,因此在 claude.ai 上添加的连接器在 Claude Desktop 中同样可用;Free 套餐允许添加一个自定义连接器。
使用 API 密钥
适用于 API 密钥推出之后。切勿把密钥写入会提交到仓库的文件。
如果连接器对话框提供 Request headers 选项,就添加请求头 Authorization,值为 Bearer ecdsa_live_…;如果还没有提供,就使用下方的 stdio 桥接工具及其 --header 选项。连接器从 Anthropic 的云端发起调用,因此不带密钥时,所有连接器用户共享同一个按 IP 计算的额度。
Cursor
写入 ~/.cursor/mcp.json 对所有项目生效,写入 .cursor/mcp.json 只对单个项目生效:
{
"mcpServers": {
"ecdsa": {
"url": "https://ecdsa.com/api/mcp"
}
}
}使用 API 密钥
适用于 API 密钥推出之后。切勿把密钥写入会提交到仓库的文件。
使用密钥时,优先写入全局文件。Cursor 会从环境变量中填入 ECDSA_API_KEY,因此必须设置该变量。
{
"mcpServers": {
"ecdsa": {
"url": "https://ecdsa.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:ECDSA_API_KEY}"
}
}
}
}VS Code
写入工作区的 .vscode/mcp.json,或者通过命令行添加:
{
"servers": {
"ecdsa": {
"type": "http",
"url": "https://ecdsa.com/api/mcp"
}
}
}code --add-mcp '{"name":"ecdsa","type":"http","url":"https://ecdsa.com/api/mcp"}'使用 API 密钥
适用于 API 密钥推出之后。切勿把密钥写入会提交到仓库的文件。
VS Code 会在服务器首次启动时要求输入密钥,并将其保存在自己的机密存储中。
{
"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}"
}
}
}
}仅支持 stdio 的客户端
用 mcp-remote 将它们桥接到远程服务器:
{
"mcpServers": {
"ecdsa": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://ecdsa.com/api/mcp"
]
}
}
}工具
服务器列出 11 个工具,此处的列表直接读取自服务器自身的注册表——与 tools/list 返回的列表相同。
verify_signatureVerify an ECDSA signatureVerifies 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位POST/v1/verify
convert_signatureConvert a signature between DER and raw r‖sDecodes 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位POST/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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位POST/v1/jwt/decode
verify_jwtVerify an ES256/ES384/ES512 JWT signatureVerifies 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位POST/v1/jwt/verify
decode_certificateDecode an X.509 certificate or chainAccepts 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).
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位POST/v1/cert/decode
get_domain_healthTLS signature-health grade for a domainConnects 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.
只读,会连接到你指定的主机范围 scan · 使用密钥时每次调用消耗 5 个配额单位GET/v1/health/{domain}
explain_errorExplain an error messageLooks 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位
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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位
lookup_algorithmLook up a cryptographic algorithm identifierResolves 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位
lookup_curveLook up an elliptic curveDescribes 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位
glossaryDefine a cryptography termDefines 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.
只读范围 api · 使用密钥时每次调用消耗 1 个配额单位
限制
匿名调用与 REST API 共享额度:每个 IP 每分钟 60 次请求,get_domain_health 另有每分钟 10 次,其实际扫描还会消耗共享的扫描额度。托管客户端——claude.ai 和 Claude Desktop 的连接器——从 Anthropic 的云端发起调用,因此它们的用户都计入同一个按 IP 计算的额度,用量大时会收到 rate_limited。
私钥
包含私钥内容的参数——PEM PRIVATE KEY 块,OpenSSH、SSH2 或 PuTTY 私钥,或者带有“d”的 JWK——会在任何其他处理之前被拒绝,并返回 private_key_rejected,与 REST API 完全一致。参数从不写入日志。