LABSCO SUMMARY
Early, and honest about it.
The certificate path is the right one — mutual TLS with keys you copied yourself, rather than an API key in a config file — and shipping as a single Rust binary means nothing else has to be installed next to your node. Read the roadmap before you plan around it, though: deriving parameters for RPC calls and curating which RPCs are worth exposing are both listed as future work, which tells you where the rough edges are today.
What it is
A Rust binary that speaks MCP on one side and Core Lightning's gRPC interface on the other. Core Lightning exposes its node control over gRPC with mutual TLS; this puts that behind an MCP connection so an assistant can drive the node.
What you get
- Access to a Core Lightning node's RPC surface through a standard MCP client, with no separate wrapper per call
- A single compiled binary — no runtime to install alongside it, and prebuilt releases per platform as well as a source build
- Node targeting on the command line, so one binary can point at whichever node you name — the address defaults to the local gRPC port
- Mutual-TLS authentication using the certificates Core Lightning generates for you, pointed at with a certificates directory argument
Requirements
A running Core Lightning node with gRPC enabled — adding the gRPC port option to CLN generates the mTLS certificates automatically, and you copy the CA certificate, the client certificate and the client key into a directory of their own. That directory is passed with --certs-dir, and --node-address selects the node, defaulting to the local gRPC address. Either download the release binary for your platform and make it executable, or build from source, which needs Rust 1.80 or higher and the Protocol Buffers compiler at version 3.0.0 or higher. The client entry points at the binary with the certificates argument.
Setup effort
Build from source — git clone https://github.com/adi2011/cln-mcp.git
USE CASES
01
Asking your node a question without the CLI
Query node state from the assistant you are already talking to, rather than switching to a terminal and remembering the RPC name.
02
Connecting to a node that is not on this machine
Point the binary at the node address and hand it the certificates you copied, so the connection is authenticated both ways.
03
Running it without a toolchain
Download the release binary for your platform instead of installing Rust and protoc just to try it.
BEFORE YOU INSTALL
What to know first
Requires
Rust 1.80 or later
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
Install protoc: sudo apt-get install -y protobuf-compiler (Ubuntu/Debian) / brew install protobuf (macOS) / choco install protoc (Windows)
TERMINAL
git clone https://github.com/adi2011/cln-mcp.git
cd cln-mcp
cargo build --releaseRun CLN with --grpc-port (default 9736) so it generates the mTLS certificates, then copy ca.pem, client.pem and client-key.pem into a separate directory
Add the mcpServers block below under Claude settings -> Developer -> Edit Config, then restart Claude
MCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"cln-mcp": {
"command": "<YOUR_PATH_TO_CLN_MCP>",
"args": [
"--certs-dir",
"<YOUR_PATH_TO_CERTIFICATES>"
]
}
}
}