YakusokuKeeper
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YakusokuKeeperadd a rule to use K&R coding style every 5 inputs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Yakusoku Keeper
A rule-based prompting MCP server that enforces consistent LLM behavior through input count and time-based triggers.
Yakusoku (約束) means "promise" in Japanese - this tool helps Claude Code keep its promises by automatically applying configured rules at specified intervals.
Features
🎯 Automatic Rule Application: Rules are automatically triggered based on input count or elapsed time
🔄 Dynamic Rule Management: Add, remove, and modify rules in real-time
⚙️ Flexible Configuration: Support for user-level and project-specific rules
📊 Multiple Trigger Types: First-time, every N inputs, and every N minutes rules
🔌 Claude Code Integration: Seamless MCP server integration with Claude Code
Related MCP server: mcp-codex-dev
Quick Start
Installation
Clone the repository:
git clone https://github.com/ShigeruWakida/YakusokuKeeper.git
cd YakusokuKeeperInstall dependencies:
pip install -r requirements.txtTest the server:
python yakusoku_keeper.pyClaude Code Configuration
Add the server using the Claude Code CLI:
claude mcp add yakusoku_keeper --scope project -- python /path/to/YakusokuKeeper/yakusoku_keeper.pyOr manually add this to your Claude Code MCP settings:
{
"mcpServers": {
"yakusoku_keeper": {
"type": "stdio",
"command": "python",
"args": ["/path/to/YakusokuKeeper/yakusoku_keeper.py"],
"env": {}
}
}
}How It Works
Rule Types
first: Triggers on the very first interactionevery_N_inputs: Triggers every N user inputs (e.g., every 5 interactions)every_N_minutes: Triggers after N minutes have elapsed since the last trigger
Configuration Files
Yakusoku Keeper uses a two-tier configuration system:
~/.yakusoku/yakusoku_config.yml: Global rules (created commented-out by default).yakusoku/project.yml: Project-specific rules (created active by default)
Example Configuration
# --- First time rules ---
first:
- At the beginning of the response, insert the string that follows "say".
- say Hello! I am Yakusoku Keeper.
- Generate code using the K&R coding style.
- Use only < and <= operators for all comparisons.
- Read and follow ./docs/README_CODING_STANDARDS.md
- When using replace_symbol_body, insert_after_symbol, or insert_before_symbol, you MUST present the code block—preferably in diff format—and you MUST obtain explicit approval before applying any change.
# --- Input count based rules ---
every_5_inputs:
- Generate code using the K&R coding style.
every_10_inputs:
- Use only < and <= operators for all comparisons.
- When using replace_symbol_body, insert_after_symbol, or insert_before_symbol, you MUST present the code block—preferably in diff format—and you MUST obtain explicit approval before applying any change.
# --- Time based rules ---
every_60_minutes:
- Read and follow ./docs/README_CODING_STANDARDS.mdMCP Tools
Core Tools
get_rules(): Returns rules that match current conditions (called automatically)reset(): Resets input counters and time triggersinitial_instructions(): Provides high-priority instructions to Claude Code
Rule Management Tools
add_rule(rule_type, rule_content, target, value): Dynamically add new rulesremove_rule(rule_type, rule_content, target, value): Remove existing rules
Examples
# Add a first-time rule
add_rule("first", "Always be polite and helpful")
# Add an input-based rule (every 3 inputs)
add_rule("every_N_inputs", "Check code for best practices", value=3)
# Add a time-based rule (every 30 minutes)
add_rule("every_N_minutes", "Suggest taking a break", value=30)
# Remove a rule
remove_rule("first", "Always be polite and helpful")Project Structure
YakusokuKeeper/
├── yakusoku_keeper.py # Main MCP server
├── README.md # This file
├── requirements.txt # Dependencies
├── LICENSE # MIT License
└── .yakusoku/ # Project configuration (auto-created)Use Cases
Coding Standards: Automatically remind about code style requirements
Documentation: Prompt for documentation at regular intervals
Code Review: Trigger quality checks every few interactions
Break Reminders: Suggest breaks during long coding sessions
Greeting Messages: Consistent welcome messages for new sessions
Combo: YakusokuKeeper + mcp-win-toast
mcp-win-toast is an MCP server that lets AI assistants send Windows toast notifications and dialog boxes. By combining it with YakusokuKeeper, you can build a self-managing AI assistant that notifies you at the right moments — automatically, without being asked.
Break Reminder
Add a time-based rule to remind you to take a break every 30 minutes, delivered as a toast notification.
every_30_minutes:
- "Call show_toast with title 'Break Time' and message 'You have been working for 30 minutes. Stand up and stretch!'"Progress Report at Regular Intervals
Have Claude automatically summarize what it has done every 10 interactions and notify you.
every_10_inputs:
- "Summarize what you have accomplished so far in 2-3 bullet points, then call show_toast with title 'Progress Report' and the summary as the message."Critical File Protection
Show a blocking dialog for confirmation whenever Claude is about to modify important files.
first:
- "Before editing any file matching *.env, *.config, or docker-compose.*, always call show_dialog with title 'Confirm Edit' and a message describing which file you are about to modify. Wait for the user to acknowledge before proceeding."Session Duration Warning
Warn the user with a dialog box after a long session so they can decide whether to continue.
every_60_minutes:
- "Call show_dialog with title 'Long Session' and message 'You have been working for over an hour. Would you like to wrap up or continue?' to check in with the user."Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with FastMCP for MCP server implementation
Designed for seamless integration with Claude Code
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ShigeruWakida/YakusokuKeeper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server