A versioned registry of named causal mechanisms, each with definition, scope, boundary and test.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Return the recommended citation line for a version, its version DOI (if it has one), the DOI that covers all versions, and the licence.
Registry version, for example "1.4.0" (a leading "v" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http causal-mechanism-registry https://adenkarabal.com/mcp
Return the recommended citation line for a version, its version DOI (if it has one), the DOI that covers all versions, and the licence.
| Argument | Type | Description |
|---|---|---|
| version | string | Registry version, for example "1.4.0" (a leading "v" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0. |
{
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Registry version, for example \"1.4.0\" (a leading \"v\" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0."
}
},
"additionalProperties": false
}Fetch one entry by identifier as text with its url and metadata. A thin wrapper over get_mechanism for connectors that expect a search and a fetch tool. Entries describe processes in general, not the present state of any country, market or asset.
| Argument | Type | Description |
|---|---|---|
| id* | string | Entry identifier returned by search. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Entry identifier returned by search."
}
},
"additionalProperties": false
}Read one published entry in full: definition, scope, boundary, distinguishing test, related identifiers, phase roles and status fields, with its versioned GitHub address and a citation line. Does not filter by review state; the requested identifier always returns. An unknown or retired identifier is an error that names the replacement or the closest identifiers. Entries describe processes in general, not the present state of any country, market or asset.
| Argument | Type | Description |
|---|---|---|
| id* | string | Entry identifier, for example "energy_supply_shock". |
| version | string | Registry version, for example "1.4.0" (a leading "v" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Entry identifier, for example \"energy_supply_shock\"."
},
"version": {
"type": "string",
"description": "Registry version, for example \"1.4.0\" (a leading \"v\" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0."
}
},
"additionalProperties": false
}List entries with identifier, name, layer, kind and review state, optionally by layer and review state. The default lists every entry; with review=accepted the response states how many entries in review are not shown.
| Argument | Type | Description |
|---|---|---|
| layer | string | Layer: core, social, extension, corpus or crisis_type. |
| review | string | Review state filter (versions 1.3.0 and later): all (default), accepted or in_review. The default covers every published entry and each result states its review state; entries in review are published and usable. With accepted the response says how many more matching entries are in review. |
| version | string | Registry version, for example "1.4.0" (a leading "v" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0. |
{
"type": "object",
"properties": {
"layer": {
"enum": [
"core",
"social",
"extension",
"corpus",
"crisis_type"
],
"type": "string",
"description": "Layer: core, social, extension, corpus or crisis_type."
},
"review": {
"enum": [
"accepted",
"in_review",
"all"
],
"type": "string",
"description": "Review state filter (versions 1.3.0 and later): all (default), accepted or in_review. The default covers every published entry and each result states its review state; entries in review are published and usable. With accepted the response says how many more matching entries are in review."
},
"version": {
"type": "string",
"description": "Registry version, for example \"1.4.0\" (a leading \"v\" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0."
}
},
"additionalProperties": false
}List the published registry versions with release dates, version DOIs, entry counts and changes (kinds, the summary from CHANGELOG.md, the number of change items and a link to them). The first listed with default true is used when a version is not given.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Turn a display name, an identifier or a retired identifier into the current identifier (for example export_pressure becomes export_earnings_shock). If nothing matches it says so and returns the closest three candidates.
| Argument | Type | Description |
|---|---|---|
| name* | string | Display name, identifier or retired identifier. Not empty. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Display name, identifier or retired identifier. Not empty."
}
},
"additionalProperties": false
}Search the registry; returns results with id, title and url. A thin wrapper over search_mechanisms for connectors that expect a search and a fetch tool. It looks in all review states and marks entries in review in the title. Entries describe processes in general, not the present state of any country, market or asset.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search query. Not empty. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query. Not empty."
}
},
"additionalProperties": false
}Search the registry by name, identifier or a word in the definition, scope, boundary or test. Returns matching entries with id, name, layer, kind, review state, name_test and the first sentence of the definition. A term matches the start of a word, terms shorter than 2 characters are ignored and listed in the note. An entry matching every term ranks first; if none does, the closest partial matches are returned and the note says how many terms they match. Each result states its review state. Entries describe processes in general, not the present state of any country, market or asset.
| Argument | Type | Description |
|---|---|---|
| layer | string | Layer: core, social, extension, corpus or crisis_type. |
| limit | integer | Maximum entries returned (default 20). |
| query* | string | Name, identifier or words from the definition. Not empty. |
| review | string | Review state filter (versions 1.3.0 and later): all (default), accepted or in_review. The default covers every published entry and each result states its review state; entries in review are published and usable. With accepted the response says how many more matching entries are in review. |
| version | string | Registry version, for example "1.4.0" (a leading "v" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
{
"type": "object",
"required": [
"query"
],
"properties": {
"layer": {
"enum": [
"core",
"social",
"extension",
"corpus",
"crisis_type"
],
"type": "string",
"description": "Layer: core, social, extension, corpus or crisis_type."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum entries returned (default 20)."
},
"query": {
"type": "string",
"description": "Name, identifier or words from the definition. Not empty."
},
"review": {
"enum": [
"accepted",
"in_review",
"all"
],
"type": "string",
"description": "Review state filter (versions 1.3.0 and later): all (default), accepted or in_review. The default covers every published entry and each result states its review state; entries in review are published and usable. With accepted the response says how many more matching entries are in review."
},
"version": {
"type": "string",
"description": "Registry version, for example \"1.4.0\" (a leading \"v\" is accepted). Default: the latest published version (1.4.0). Available: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0."
}
},
"additionalProperties": false
}