Skip to main content
Glama
sancovp

self-claude-mcp

by sancovp

self-claude-mcp

Requires Claude Code | SIGN UP HERE

MCP server for Claude Code self-management commands (hot restart, compaction).

Installation

pip install self-claude-mcp

Add to your Claude MCP config:

{
  "mcpServers": {
    "self-claude": {
      "command": "self-claude-mcp",
      "env": {
        "AUTOPOIESIS": "1"
      }
    }
  }
}

Note: AUTOPOIESIS=1 is optional. If set, restart messages will remind Claude to enable autopoiesis-mcp (makes Claude loop on purpose). Remove the env block if you don't use it.

Related MCP server: claude-sessions-mcp

Setup

After installing the MCP, Claude needs to install bash scripts for the commands to work.

Ask Claude to run:

Use self_claude with setup_only=True and install the scripts

Or manually: call self_claude(cmd="", setup_only=True) to get the installation instructions.

Requirements

  • tmux: Scripts use tmux for session management

  • Claude Code: Must be running inside a tmux session named "claude"

Starting Claude in tmux

Use claude-debug (installed by setup) or manually:

tmux -u new-session -d -s claude
tmux send-keys -t claude 'claude --debug' Enter
tmux -u attach -t claude

Usage

Once set up, Claude can use these commands:

Command

Description

self_claude("self_restart")

Hot restart with auto-resume

self_claude("self_compact")

Trigger context compaction

self_claude("", setup_only=True)

Get installation instructions

Hot Restart

Use when MCP configs change and you need to reload without losing conversation:

  1. Claude calls self_claude("self_restart") → returns bash self_restart

  2. Claude runs bash self_restart

  3. Handler sends /exit, waits for death, relaunches, sends /resume, selects session 1

Compaction

Use when context is running low:

  1. Claude calls self_claude("self_compact") → returns bash self_compact

  2. Claude runs bash self_compact

  3. Sends /compact to the tmux session

Troubleshooting

"No tmux session 'claude'"

Make sure Claude Code is running inside a tmux session named "claude":

tmux -u new-session -s claude
claude --debug

"Handler not found"

Run the setup instructions again:

self_claude(cmd="", setup_only=True)

Then install the scripts to /usr/local/bin/.

Restart hangs

Check the handler log:

cat /tmp/claude_restart_handler.log

Common issues:

  • pgrep -x "claude" matches wrong process → verify with pgrep -x "claude"

  • tmux session died → restart with claude-debug

Docker / Container

If running in a container, make sure:

  • tmux is installed: apt install tmux

  • Scripts are in PATH: /usr/local/bin/ or ~/.local/bin/

  • Container user can write to /tmp/

Scripts Installed

Script

Location

Purpose

claude-debug

/usr/local/bin/

Start Claude in tmux background

self_restart

/usr/local/bin/

Orchestrator (spawns handler)

claude_restart_handler

/usr/local/bin/

Detached handler (does actual restart)

self_compact

/usr/local/bin/

Trigger compaction

rules

/usr/local/bin/

Manage Claude Code rule files

rules command

Manage Claude Code rule files from the command line:

# Add a rule
rules global my-rules "Always use TypeScript"
rules project api-rules "Use REST conventions"

# List rules
rules show global
rules show project

# Delete a rule
rules delete global my-rules

Rules are stored in ~/.claude/rules/ (global) or ./.claude/rules/ (project).

Environment Variables

Variable

Description

AUTOPOIESIS=1

Enable autopoiesis warning in restart message. Requires autopoiesis-mcp.

Set in your shell profile or export before running Claude.

Security Note

⚠️ Warning: You should disallow this MCP on subagents. Subagents running these commands can cause strange interactions.

License

MIT

Available Tools

1 tool
self_claudeC

Execute self-Claude command.

ParametersJSON Schema
NameRequiredDescriptionDefault
cmdYesself_restart | self_compact
helpNoInclude help text
setup_onlyNoReturn setup instructions instead of executing

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only says 'execute' without mentioning that commands like restart or compact may have side effects, require confirmation, or alter state. The behavior is almost entirely opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise and free of fluff. However, it lacks structuring of information and is under-specified for the tool's functionality, making it neither well-structured nor sufficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and three parameters, the description is extremely thin. It fails to explain the purpose of commands like restart and compact, the effect of setup_only, or any context for use. The tool's complexity is not addressed, making the description inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the parameters. The description adds no additional meaning beyond the schema, but per the baseline rule for high coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Execute self-Claude command.' provides a verb and a vague resource, but it does not specify what commands are available or what they do. It borders on a tautology, as 'self-Claude command' essentially restates the tool name without adding clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, which command to choose, or how it relates to alternatives. The schema lists 'self_restart' and 'self_compact', but the description does not explain when each should be used or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.2.0
    • First observedself_claude

TDQS

C2.6/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools. The tool's purpose is isolated.

Naming Consistency5/5

With a single tool, naming consistency is trivially perfect. The name 'self_claude' follows a clean snake_case pattern.

Tool Count3/5

A single tool makes for a very thin server, but it could be appropriate if the server is meant to handle a single command. Still, it feels borderline for most practical purposes.

Completeness2/5

The sole tool's description is extremely vague ('Execute self-Claude command'), giving no indication of supported subcommands or operations. Significant gaps likely exist for any meaningful workflow, and agents would struggle to use it effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers