pypi certindex-mcpstdioupdated 1mo ago
An MCP (Model Context Protocol) server that exposes CertIndex's Certificate Transparency search tools to any MCP-compatible client (Claude Desktop, the MCP Inspector, Continue, etc.).
What can you do with certindex mcp?
certindex-mcp
An MCP (Model Context Protocol) server that exposes CertIndex's Certificate Transparency search tools to any MCP-compatible client (Claude Desktop, the MCP Inspector, Continue, etc.).
CertIndex indexes the full public CT corpus (~5 M certificates, growing ~100 k/day). This server wraps the public CertIndex REST API so an LLM can ask questions like:
- "List every TLS certificate ever issued for
example.com." - "What subdomains has Let's Encrypt seen for
mycompany.io?" - "Show me certs expiring in the next 30 days for
api.mycompany.io." - "Pull the full PEM and CT log metadata for SHA-256
<fingerprint>."
Why this repo exists
The CertIndex monorepo bundles an MCP server (mounted at
https://api.ctindex.io/mcp) that talks directly to the production
Postgres index. This standalone package is a thin client-side
shim: it speaks MCP to your editor / agent and forwards every tool
call to the hosted CertIndex REST API over HTTPS. Two consequences:
- You don't need a copy of the index — sign up for a free API key at https://ctindex.io and you're done.
- The package has a tiny dependency footprint (
mcp,httpx,pydantic) — easy to audit, easy to vendor, no DB drivers.
Install
pip install certindex-mcp
Or with uvx for one-shot use:
uvx certindex-mcp
To install the latest development version from source instead:
pip install git+https://github.com/certindex/certindex-mcp
Quickstart — Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"certindex": {
"command": "uvx",
"args": ["certindex-mcp"],
"env": {
"CERTINDEX_API_KEY": "ctx_live_..."
}
}
}
}
Restart Claude Desktop. The ten CertIndex tools appear in the tool tray.
Tools
Ten tools, matching the hosted CertIndex MCP server 1:1:
| Tool | What it does | Notable parameters |
|---|---|---|
search_certificates |
Search the CT index by domain, CN, issuer, SAN, validity, or wildcard status. | domain, cn, issuer, san, expired, is_wildcard, page/limit |
get_certificate |
Fetch a single cert by SHA-256 fingerprint. | sha256, include_enrichment |
get_domain_certificates |
Every cert ever issued for an exact domain. | valid_only, include_enrichment, include_signals (paid plans), page/limit |
get_subdomains |
Enumerate unique subdomains seen in CT. | Offset (page/limit) or keyset cursor mode — pass cursor="" to start, then feed back each response's next_cursor |
get_latest_cert |
Most recent currently-valid cert for a domain. | include_enrichment, include_signals, include_precerts (let precertificates compete for "latest") |
get_expiring_certs |
Certs for a domain expiring within days days. |
days |
submit_global_sweep |
Submit an async, domain-less CN/SAN substring sweep of the entire index (POST /v1/sweeps). |
cn/san_contains (3+ chars, at least one required), issuer, is_wildcard, is_precert, expired, first_seen_*/not_after_* date bounds, strict_attribution, resume_token (continuation past the result cap) |
get_sweep_results |
Poll a sweep job and paginate its results when done (GET /v1/sweeps/{id}). |
sweep_id, page/limit (up to 1,000) |
get_usage |
Caller's tier, current usage, remaining quota, and entitlements. | — |
get_historical_backfill_status |
Check / start the paid deep-history backfill for a domain. | domain |
Quickstart — MCP Inspector
export CERTINDEX_API_KEY=ctx_live_...
npx @modelcontextprotocol/inspector uvx certindex-mcp
Configuration
| Env var | Default | Description |
|---|---|---|
CERTINDEX_API_KEY |
(required) | Your CertIndex API key. Mint one at https://ctindex.io/app/keys |
CERTINDEX_BASE_URL |
https://api.ctindex.io |
Override for self-hosted deployments / staging |
CERTINDEX_TIMEOUT |
30 |
Per-request HTTP timeout (seconds) |
Security
Input validation, rate-limit handling, and our supply-chain posture are documented in SECURITY.md. Please report vulnerabilities to security@ctindex.io rather than filing public issues.
Development
git clone https://github.com/certindex/certindex-mcp
cd certindex-mcp
pip install -e ".[dev]"
pytest
CI runs on Python 3.11 / 3.12 / 3.13.
License
MIT © CertIndex contributors.
Install
Add certindex mcp to your client. Pick the one you use.
claude mcp add certindex-mcp -- uvx certindex-mcpcodex mcp add certindex-mcp -- uvx certindex-mcpamp mcp add certindex-mcp -- uvx certindex-mcp{
"mcpServers": {
"certindex-mcp": {
"command": "uvx",
"args": [
"certindex-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"certindex-mcp": {
"command": "uvx",
"args": [
"certindex-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"certindex-mcp","command":"uvx","args":["certindex-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"certindex-mcp": {
"command": "uvx",
"args": [
"certindex-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"certindex-mcp": {
"command": "uvx",
"args": [
"certindex-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"certindex-mcp": {
"command": "uvx",
"args": [
"certindex-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"certindex-mcp": {
"type": "local",
"command": "uvx",
"args": [
"certindex-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"certindex-mcp": {
"command": {
"path": "uvx",
"args": [
"certindex-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx certindex-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
10 tools
certindex mcp exposes 10 tools to a connected agent.
- search_certificates
- Search the CT index by domain, CN, issuer, SAN, validity, or wildcard status.
- get_certificate
- Fetch a single cert by SHA-256 fingerprint.
- get_domain_certificates
- Every cert ever issued for an exact domain.
- get_subdomains
- Enumerate unique subdomains seen in CT.
- get_latest_cert
- Most recent currently-valid cert for a domain.
- get_expiring_certs
- Certs for a domain expiring within `days` days.
- submit_global_sweep
- Submit an async, domain-less CN/SAN substring sweep of the entire index (`POST /v1/sweeps`).
- get_sweep_results
- Poll a sweep job and paginate its results when done (`GET /v1/sweeps/{id}`).
- get_usage
- Caller's tier, current usage, remaining quota, and entitlements.
- get_historical_backfill_status
- Check / start the paid deep-history backfill for a domain.
Score
73 / 100
Good
- Documentation25/25
- Maintenance22/25
- Trust6/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 34 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 10 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.2.0Latest | Jul 28, 2026 |
| 0.1.3 | Jul 22, 2026 |
| 0.1.2 | Jul 22, 2026 |
| 0.1.1 | Jul 11, 2026 |