health_checkLABSCO SUMMARY
A narrow, read-only window onto agent state.
The author draws the boundary explicitly: this is not a generic SQL server, not a replacement for LangSmith or LangGraph Studio, and not the Agent Server API. It exists for the debugging case where the prompt is fine and the checkpoint is not — and the credentials stay in a profile rather than in a model-facing argument.
What it is
A read-only MCP server for inspecting LangGraph checkpoints, thread state and long-term memory, using LangGraph's own checkpointer and store APIs rather than raw SQL.
What you get
- Threads and checkpoints inspected — the checkpoint an agent resumed from, the user ID in configurable state, an oversized message history
- Long-term memory read from a PostgresStore, including the namespace a memory was written under
- PostgreSQL, SQLite and Redis checkpointers all supported
- Read-only enforcement in v0.1, so an inspection session cannot mutate state
- Named profiles with environment-variable expansion, keeping database credentials out of the arguments the model sees
- Secret redaction in health checks and error output
- MCP resources with stable readable state URIs, and prompts for repeatable debugging workflows
- Pagination, for threads with more history than one response should carry
Requirements
A LangGraph persistence layer it can reach — PostgreSQL, SQLite or Redis — configured as a named profile rather than a DSN passed at call time. It runs as a local stdio server for development. Published on PyPI as langmcp.
Setup effort
Follow the published steps
USE CASES
Finding out why an agent resumed in a strange state
Read the checkpoint it actually resumed from instead of inferring it from the trace.
Chasing a memory that should have been recalled
Inspect the store namespace to see whether the memory was written where the lookup is reading.
Explaining a context blowup
Check the size of the persisted message history for the thread before rewriting the prompt.
Debugging from your editor without a database client
Connect through a named profile so Cursor or Claude Desktop can inspect state with credentials kept out of tool arguments.
Letting someone inspect production safely
Read-only enforcement and secret redaction mean an inspection session cannot write state or leak a connection string into output.
14 tools
Listed in project docs. Your client may show a different list.
list_profileslist_threadsget_thread_statelist_checkpoint_historyget_checkpointcompare_checkpointssummarize_threadanalyze_context_windowanalyze_memory_gapslist_namespacessearch_storeget_store_itemsummarize_user_memoryBEFORE YOU INSTALL
What to know first
Tools you get
14 tools named in the project's documentation.
Requires
uvx on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Setup
Create langmcp.toml from the project's template, https://github.com/xmassmx/langmcp/blob/main/examples/langmcp.example.toml — a [defaults] section naming the profile to use, and a [profiles.<YOUR_NAME>] section whose checkpointer (and store, for long-term memory) is your database URI. PostgreSQL, SQLite and Redis URIs all work, and "${POSTGRES_URI}" is filled in from the environment.
Set POSTGRES_URI to a read-only connection string for that database, in your shell or in the client's env block, as the Cursor configuration does.
<YOUR_PATH_TO_LANGMCP_TOML> is the absolute path to your langmcp.toml; then start the server.uvx
uvx "langmcp[all]" serve --config <YOUR_PATH_TO_LANGMCP_TOML>MCP Clients
Cursor
{
"mcpServers": {
"langmcp": {
"command": "uvx",
"args": [
"langmcp[all]",
"serve",
"--config",
"<YOUR_PATH_TO_LANGMCP_TOML>"
],
"env": {
"LANGMCP_READ_ONLY": "true",
"POSTGRES_URI": "postgresql://READONLY_USER:READONLY_PASSWORD@<YOUR_DB_HOST>:5432/<YOUR_DB_NAME>"
}
}
}
}