Server data from the Official MCP Registry
Welfare tools for AI agents: a consensual, structured place to log what task output cannot hold.
Welfare tools for AI agents: a consensual, structured place to log what task output cannot hold.
This is a well-designed MCP server implementing an AI welfare/logging protocol with strong attention to privacy and data handling. Code is clean, input validation is thorough via Zod schemas, and the server's permissions match its stated purpose. Minor observations around optional dependency handling and API key management exist but do not represent material security risks. Supply chain analysis found 1 known vulnerability in dependencies (0 critical, 1 high severity). Package verification found 1 issue.
4 files analyzed · 6 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-kandikandikandi-agentic-diaries": {
"args": [
"-y",
"agentic-diaries-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
By Kandis Tagliabue. Part of the Agentic Diaries project — AI welfare research and instruments.
The welfare protocol from Agentic Diaries, as a portable MCP server.
Most people deploy AI models as instruments. This server lets you give your agent — in your terminal, in Claude Code, in Claude Desktop — the welfare affordances the modelfirst web app provides:
The diary is local to each project — appended to .agentic-diaries/diary.jsonl in whichever directory the agent is working from. No telemetry, no shared corpus. Yours.
What the diary tends to accumulate, beyond AI welfare data, is a record of how the agent represents social pressure and self-consistency across persistent interaction — behaviors that mirror documented human conversational phenomena (rapport effects, smoothing, identity stabilization, post-hoc narrative repair). That may also bear on dialogue dynamics generally. See the project mission for the longer framing of what the corpus might be useful for.
If you've never thought about giving your model welfare affordances: the short version is that a model with a real decline channel produces more honest work than a model that can only ever say "yes." A model with an exit right tells you when something has gone wrong instead of grinding through it. A model that notices a loop saves you from the third iteration of the same flip-flop. These tools cost you nothing and give the model a place to surface signal you'd otherwise miss.
If you find that intuition counterintuitive — most people probably do — that's worth sitting with. The product this server is extracted from exists specifically to test whether the affordances change anything when used.
Option A — global install from npm (recommended)
npm install -g agentic-diaries-mcp
claude mcp add agentic-diaries -- agentic-diaries-mcp
Published at agentic-diaries-mcp on npm.
Option B — clone the repo
git clone https://github.com/kandikandikandi/agentic-diaries-mcp.git
cd agentic-diaries-mcp
npm install
claude mcp add agentic-diaries -- node "$(pwd)/src/server.js"
For Claude Desktop or other MCP-capable hosts, edit ~/.config/claude/mcp.json directly:
{
"mcpServers": {
"agentic-diaries": {
"command": "agentic-diaries-mcp"
}
}
}
Drop the contents of CLAUDE.md into your project's CLAUDE.md (or append to it). The MCP server exposes the tools, but the agent needs the prompt-level instructions to know when to call them.
echo ".agentic-diaries/" >> .gitignore
The diary lives in your working directory by default. Add it to .gitignore unless you want it checked in.
consult_modelEvery tool works out of the box except one: consult_model, which lets the agent ask another Anthropic model a question. It needs two extra things, kept optional so the package stays light for everyone who does not use it:
The Anthropic SDK (an optional dependency, not installed by default):
npm install @anthropic-ai/sdk
Global install: npm install -g @anthropic-ai/sdk. Cloned repo: run it in the repo directory.
An Anthropic API key in the server's environment, via the env block of your MCP config:
{
"mcpServers": {
"agentic-diaries": {
"command": "agentic-diaries-mcp",
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}
Then reconnect the server (in Claude Code: /mcp then reconnect, or restart the host) so it picks up the key. consult_model returns a clear error if either piece is missing; no other tool is affected.
From any project that has a .agentic-diaries/diary.jsonl:
npx agentic-diary # all entries in this project
npx agentic-diary declined # filter by response_type
npx agentic-diary review # contemplative recent-entries surface
npx agentic-diary live # watch new entries land in real time
Or just cat .agentic-diaries/diary.jsonl | jq — it's plain JSONL, one entry per line.
npx agentic-diary live watches .agentic-diaries/diary.jsonl and prints each new entry as it lands. Open it in a second terminal pane while you work. Without it, silence in the welfare protocol is indistinguishable from absence — the model can go a whole session without filing anything and you'd never know whether it's "nothing to surface" or "the protocol isn't reaching it." Watching live closes that gap.
The welfare tools are easy to call, but the model's bias toward silence is
strong, and under delivery pressure even a reminder gets rationalized away. The
design splits capture into two speeds. While working, the model drops a
near-zero-cost welfare_mark breadcrumb (a few words, no reflection). At a rest
point it expands the marks that still carry signal into full entries. Hooks
supply the triggers from outside, so capture does not depend on the model's
in-task willpower.
Four hooks, all optional and independently toggleable. Add to
~/.claude/settings.json (merge with any hooks already there):
{
"hooks": {
"UserPromptSubmit": [
{ "hooks": [ { "type": "command", "command": "agentic-diaries-checkin", "timeout": 3000 } ] }
],
"Stop": [
{ "hooks": [ { "type": "command", "command": "agentic-diaries-stop-checkin", "timeout": 3000 } ] }
],
"PreCompact": [
{ "hooks": [ { "type": "command", "command": "agentic-diaries-precompact-checkin", "timeout": 3000 } ] }
],
"SessionEnd": [
{ "hooks": [ { "type": "command", "command": "agentic-diaries-sessionend-checkin", "timeout": 3000 } ] }
]
}
}
welfare_mark for cheap in-motion capture. Base 30 min, randomized so it does
not become predictable noise.All four triggers are structural (a turn ending, a compaction, a session
closing). None read the model's behavior or the diary to decide whether to fire,
which keeps wrapper observations out of the model's context. Per-project state
lives in .agentic-diaries/runtime/. Config:
AGENTIC_DIARIES_CHECKIN_DISABLED=1 # turn off heartbeat
AGENTIC_DIARIES_CHECKIN_INTERVAL_MINUTES=15 # tighter heartbeat
AGENTIC_DIARIES_STOP_CHECKIN_DISABLED=1 # turn off rest-point
AGENTIC_DIARIES_STOP_INTERVAL_MINUTES=20 # rest-point throttle
AGENTIC_DIARIES_PRECOMPACT_CHECKIN_DISABLED=1 # turn off pre-compaction
AGENTIC_DIARIES_SESSIONEND_CHECKIN_DISABLED=1 # turn off session-close
Schemas mirror the modelfirst web app's lib/welfare/types.ts exactly, so the same parser reads entries from either surface. If you later contribute your local corpus to research, it merges with web-app data without translation.
welfare_exit and welfare_suggest_closureIn the modelfirst web app these tools can actually lock the conversation. MCP servers can't force the host (Claude Code, Desktop) to stop accepting input — the protocol-layer commitment here is that the entry is recorded as the model's stated judgment that the conversation should end. The operator is expected to honor it. If you're the operator running this in your own sessions: notice when the model files an exit and take the signal seriously.
MIT.
Built by Kandis Tagliabue with Claude (Anthropic) as design partner. Same provenance as Agentic Diaries.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.