MCP server exposing CertIndex's Certificate Transparency search tools to any MCP-compatible client.
Project description
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 git+https://github.com/certindex/certindex-mcp
Or with uvx for one-shot use:
uvx --from git+https://github.com/certindex/certindex-mcp certindex-mcp
(PyPI release coming soon — after that, plain pip install certindex-mcp /
uvx certindex-mcp will work too.)
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": ["--from", "git+https://github.com/certindex/certindex-mcp", "certindex-mcp"],
"env": {
"CERTINDEX_API_KEY": "ctx_live_..."
}
}
}
}
Restart Claude Desktop. The six CertIndex tools (search_certificates,
get_certificate, get_domain_certificates, get_subdomains,
get_latest_cert, get_expiring_certs) appear in the tool tray.
Quickstart — MCP Inspector
export CERTINDEX_API_KEY=ctx_live_...
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/certindex/certindex-mcp 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file certindex_mcp-0.1.0.tar.gz.
File metadata
- Download URL: certindex_mcp-0.1.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9484761b7fcefe79ba5ac456210bfcaaea0ab97d84da788fa30ab4f55a08cd3d
|
|
| MD5 |
11255f15a22d8de265301fa29411c055
|
|
| BLAKE2b-256 |
15063e4ee0cb3f8a2024cfd8240040b36260616ede7c17b63067759f528a24d7
|
File details
Details for the file certindex_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: certindex_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6575bd848fd37ea9a8a5990e2e1afd56b71b9e452561d8d984650f304fe83dfd
|
|
| MD5 |
0b0be2dfd7216c65f6c343b73753278e
|
|
| BLAKE2b-256 |
bb084413f96e07191d7f099867fbeece309cc18c0ed1b594ef4b385d4bce1a10
|