About MCP Server for Bitcoin Lightning
MCP Server for Bitcoin Lightning wraps a local Lightning Network Daemon (lnd) for Agentic systems to interact with the Lightning Network. It connects over SSE and requires a running lnd instance.
Key features
- 01Connect to a local lnd instance
- 02Expose Lightning Network communication through MCP
- 03Use SSE transport
Use cases
- 01Enable Agentic systems to interact with Lightning Network
- 02Connect to the Lightning MCP server through LangGraph
MCP support
The server exposes Lightning Network capabilities backed by a local lnd to MCP clients and uses SSE transport.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server for Bitcoin Lightning
This repository uses https://github.com/ehallmark/btc-lightning-client for communicating with a local Lightning Network Daemon (lnd) and wraps it in a Model Context Protocol (MCP) server. This MCP server can be used with Agentic systems to interact with the Lightning Network.
Prerequisites
- Python >= 3.10
uvfor package management- You must have a running Lightning Network Daemon (
lnd) running on your machine. For more information onlnd, visit https://github.com/lightningnetwork/lnd.
Running the MCP Server
export LIGHTNING_RPC_PORT=<lnd_port>
export LIGHTNING_CERT_PATH="/path/to/lnd/tls.cert"
export LIGHTNING_MACAROON_PATH=/path/to/bitcoin/simnet/admin.macaroon
export UVICORN_PORT=<some port>
export UVICORN_HOST=<some host>
uv run main.py
Connecting to the MCP Server
This server uses SSE for transport.
With the LangGraph framework, you can connect to it using the following adapter:
from contextlib import asynccontextmanager
from langchain_mcp_adapters.client import MultiServerMCPClient
@asynccontextmanager
async def make_graph():
async with MultiServerMCPClient(
{
'lightning': {
'url': 'http://localhost:8000/sse',
'transport': 'sse',
}
}
) as lightning_mcp:
workflow = create_workflow(user, lightning_mcp)
graph = workflow.compile()
yield graph
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.