The Chronicle MCP server leverages Stdio and is packaged as a container. In your tool, configure it using that.
Note: You must have a Chronicle server running.
In VSCode you would do this by adding a tool to your agent.
This can done either by adding it to the global user settings or through an mcp.json
file in
the .vscode
folder of your project.
For the global user settings, you simply do the following:
"mcp": {
"servers": {
"Chronicle": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-eCratis__Chronicle__Mcp__ConnectionString=chronicle://host.docker.internal:35000",
"cratis/chronicle-mcp"
]
}
}
}
Note: To configure the connection string for Chronicle you pass it an environment variable;
Cratis__Chronicle__Mcp__ConnectionString
running locally - on MacOS and Windows the host machine is found athost.docker.internal
.
For a local mcp.json
file, its almost the same:
{
"servers": {
"Chronicle": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-eCratis__Chronicle__Mcp__ConnectionString=chronicle://host.docker.internal:35000",
"cratis/chronicle-mcp"
]
}
}
}
You can see this in action in the mcp.json in this repository.
Note: The
cratis/chronicle-mcp
is a multi CPU architecture image supporting both x64 and arm64 automatically.
You can ask it things like:
- List all event types in the [put name here] event store
- List all observers in the [put name here] event store
- List all observers in the [put name here] event store and namespace [put namespace here]
- What observers in the [put event store name here] use event type [put event type name]
Using VSCode, the mcp.json in the .vscode
folder of this repository is automatically supported.
Open it and click the Start button:
During development, compile and click the Restart button when having the mcp.json
open:
To get Chronicle running, there is a docker-compose.yml
file in the Source
folder.
Simply do docker compose up -d
and you'll have a Chronicle instance running.
If you want some data, we recommend using our samples and specifically the console to initialize it with some data.