m5-petit-desire
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., "@m5-petit-desirecheck my current desire levels"
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.
M5 Petit Desire
EnglishPage
M5 Petitに、時間経過とセンサー入力に基づいて変化する内的な「欲求」を持たせる自律欲求システムです。
desire_config.json(キャラクターごとの設定ファイル)で定義した欲求それぞれについて、3段階で欲求レベル(0.0〜1.0)を計算します。
時間ベース計算 — m5-petit-memoryのSQLite DBをキーワード検索し、最後にその欲求が満たされてからの経過時間を欲求レベルに変換
センサー効果の適用 — M5の
/sensorsエンドポイント(m5-petit-mcpが公開)から取得したセンサー値で欲求を増減欲求間の相互作用 — ある欲求が閾値を超えたときに他の欲求へ影響を与える(
cross_effects)
desire_updater.pyをcronで定期実行してdesires.jsonを更新し、MCPサーバー(server.py)がそれを読んでClaudeにツールとして提供します。
Related MCP server: Mnemonic
必要環境
Python 3.10+
セットアップ
uvが未インストールの場合は先にインストールします。
curl -LsSf https://astral.sh/uv/install.sh | shgit clone https://github.com/PetitOnes/m5-petit-desire.git
cd m5-petit-desire
uv syncdesire_config.jsonをキャラクターごとに用意します($PETIT_DATA_DIR/characters/<character_id>/config/desire_config.json)。
{
"desires": {
"curiosity": {
"name_ja": "知りたい",
"description": "気になることを調べたい、新しいことを知りたい好奇心",
"satisfaction_hours": 2.0,
"keywords": ["調べた", "検索した", "発見した", "学んだ"],
"color": "#5bc8d4"
},
"miss_companion": {
"name_ja": "会いたい",
"description": "一緒にいる人と話したい、一緒にいたい気持ち",
"satisfaction_hours": 3.0,
"keywords": []
}
},
"sensor_effects": [
{
"sensor": "battery",
"condition": { "op": "range", "min": 1, "max": 20 },
"effects": { "*": { "multiply": 0.5 } },
"description": "電池が減ると他の欲求が下がる"
}
],
"cross_effects": [],
"priority": ["miss_companion", "curiosity"]
}keywordsが空の欲求のうちmiss_companionは、COMPANION_NAME環境変数から自動でキーワードを生成します(「〇〇と話した」「〇〇に伝えた」など)time_driven: falseを指定すると時間経過では変化せず、base_levelに留まります(センサー・相互作用のみで変化)
cronで5分ごとに更新します。
# crontab -e
*/5 * * * * cd /path/to/m5-petit-desire && CHARACTER_ID=petit uv run desire-updater環境変数
変数名 | デフォルト | 説明 |
|
| キャラクターID。 |
|
| データディレクトリ(m5-petit-appと共有) |
|
| 一緒にいる人の名前( |
|
| m5-petit-memoryが使うSQLite DBのパス |
|
| 欲求レベルの出力先 |
Claude Code連携
.mcp.json(または~/.claude/settings.json)に追加します。
{
"mcpServers": {
"desire-system": {
"command": "uv",
"args": ["run", "--directory", "/path/to/m5-petit-desire", "desire-system"],
"env": {
"CHARACTER_ID": "petit"
}
}
}
}ツール一覧
get_desires
現在の欲求レベルを取得します。レベルが0.7以上の欲求があれば、すぐに行動することが期待されます。
satisfy_desire
行動した後に欲求を満たします(レベルが0.4下がる)。
{ "desire_name": "curiosity" }boost_desire
驚き・新規性による欲求のブースト(ドーパミン応答のシミュレーション)。
{ "desire_name": "curiosity", "amount": 0.3 }開発
# 開発依存をインストール
uv sync --all-extras
# テスト実行
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run pytest
# lint
uv run ruff check .アーキテクチャ
m5-petit-desire/
├── desire_updater.py # 欲求レベルの計算・desires.jsonへの保存(cronから実行)
├── server.py # MCPサーバー(get_desires/satisfy_desire/boost_desireを提供)
└── tests/License
Apache License 2.0
本プロジェクトは lifemate-ai/embodied-claude(MITライセンス)の desire-system コンポーネントを元に、M5 Petit向けに大幅に改変したものです。元のライセンスと著作権表示は NOTICE を参照してください。
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/PetitOnes/m5-petit-desire'
If you have feedback or need assistance with the MCP directory API, please join our Discord server