Official server.json
{
"name": "io.github.cyanheads/sanctions-screening-mcp-server",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://sanctions-screening.caseyjhand.com/mcp",
"type": "streamable-http"
}
],
"version": "0.5.1",
"packages": [
{
"version": "0.5.1",
"transport": {
"type": "stdio"
},
"identifier": "@cyanheads/sanctions-screening-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "SANCTIONS_MIRROR_PATH",
"format": "string",
"default": "./data/sanctions.db",
"description": "Filesystem path for the local SQLite mirror. All sources are keyless; no API key is required. Populate the mirror out-of-band with `bun run mirror:init`."
},
{
"name": "SANCTIONS_FUZZY_MIN_SCORE",
"format": "string",
"default": "0.85",
"description": "Default Jaro-Winkler similarity floor (0-1) for fuzzy matches when the caller omits minScore."
}
]
},
{
"version": "0.5.1",
"transport": {
"url": "http://localhost:3010/mcp",
"type": "streamable-http"
},
"identifier": "@cyanheads/sanctions-screening-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_TRANSPORT_TYPE",
"value": "http",
"format": "string",
"description": "Selects the HTTP transport."
},
{
"name": "MCP_HTTP_HOST",
"format": "string",
"default": "127.0.0.1",
"description": "The hostname for the HTTP server."
},
{
"name": "MCP_HTTP_PORT",
"format": "string",
"default": "3010",
"description": "The port to run the HTTP server on."
},
{
"name": "MCP_HTTP_ENDPOINT_PATH",
"format": "string",
"default": "/mcp",
"description": "The endpoint path for the MCP server."
},
{
"name": "MCP_AUTH_MODE",
"format": "string",
"default": "none",
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
},
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "SANCTIONS_MIRROR_PATH",
"format": "string",
"default": "./data/sanctions.db",
"description": "Filesystem path for the local SQLite mirror; a persistent volume on a hosted deployment. All sources are keyless; no API key is required."
},
{
"name": "SANCTIONS_REFRESH_CRON",
"format": "string",
"default": "0 4 * * *",
"description": "Cron for the scheduled mirror refresh (HTTP transport only). A supervised child re-harvests the sanctions lists and rebuilds their indexes, then applies GLEIF deltas under one fresh 4-hour bound. A gap that needs mirror:init is logged; the schedule never loads golden copies."
},
{
"name": "SANCTIONS_REFRESH_SKIP_GLEIF",
"format": "string",
"description": "Set to 1 to skip the GLEIF leg of the scheduled refresh and of mirror:refresh, refreshing only the sanctions lists."
},
{
"name": "SANCTIONS_FUZZY_MIN_SCORE",
"format": "string",
"default": "0.85",
"description": "Default Jaro-Winkler similarity floor (0-1) for fuzzy matches when the caller omits minScore."
}
]
}
],
"repository": {
"url": "https://github.com/cyanheads/sanctions-screening-mcp-server",
"source": "github"
},
"description": "Screen names against OFAC, EU, UK, UN sanctions lists; resolve entities via GLEIF. Screening aid."
}