Skip to main content

MCP server for managing Poranos AI NPC scenarios from Claude Desktop / Claude Code

Project description

poranos-mcp-ainpc

PyPI

Claude Desktop / Claude Code から Poranos AI NPC のシナリオ・会話ログを操作するための MCP (Model Context Protocol) サーバ。

非エンジニアの運用担当が会話ログを読みながら自然言語で「Sub が冒頭で『なるほど』と言ってる、修正して」と Claude に伝えれば、Claude が必要なツールを呼び出してシナリオの prompt を編集する — というワークフローを実現する。

何ができるか

会話ログ閲覧 → 違反抽出 → プロンプト編集 → 履歴記録 までを Claude Desktop / Claude Code 内で完結させる:

  • シナリオの一覧・詳細取得・編集 (PATCH)
  • シナリオの複製、過去版へのロールバック
  • 編集履歴 (audit log) の閲覧
  • 会話ログの一覧・詳細取得 (Unity からアップロードされたセッションログ)

全編集は poranos.com 側の ScenarioVersionedit_source='mcp' で自動記録され、Web 管理画面の「履歴」セクションから 1-click でロールバック可能。

セットアップ

1. API キーを発行する

https://poranos.com/app/account/ にログインし、「AI NPC API キー」セクションから新しいキーを発行する。

  • アクセスレベルは 「閲覧 + 編集」 (ai-npc:write) を推奨。「閲覧のみ」を選ぶと編集系の Tool が 403 を返す
  • 発行直後に表示される pk_... を必ずコピーして保管する (二度と表示できない)

2. uv のインストール (まだなら)

uvxuv に同梱されています。

Linux / macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

3. Claude Desktop の設定

設定ファイルに以下を追加:

Linux: ~/.config/Claude/claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "poranos-ainpc": {
      "command": "uvx",
      "args": ["poranos-mcp-ainpc"],
      "env": {
        "PORANOS_API_KEY": "pk_あなたのキー"
      }
    }
  }
}

設定を保存したら Claude Desktop を再起動。

メモ: 初回起動時に uvx が PyPI からパッケージを fetch するため少し時間がかかります (5-15 秒)。2 回目以降はキャッシュされます。

Windows で command: "uvx" が見つからないと言われる場合は、uvx のフルパス (例: C:\\Users\\<user>\\.local\\bin\\uvx.exe) を指定してください。

Claude Code で使う場合

claude mcp add poranos-ainpc \
  -e PORANOS_API_KEY=pk_あなたのキー \
  -- uvx poranos-mcp-ainpc

ローカル開発

git clone https://github.com/kkoba23/poranos-mcp-ainpc.git
cd poranos-mcp-ainpc
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# 環境変数で API キーをセット
export PORANOS_API_KEY=pk_あなたのキー

# サーバー起動 (stdio transport)
poranos-mcp-ainpc

提供される MCP Tools

Scenario 系

Tool 用途
list_scenarios() シナリオ一覧
get_scenario(scenario_id) シナリオ詳細 (focus_block_template / role_addendums 等を含む)
create_scenario(fields) 新規シナリオ作成 (name 必須、他はサーバ既定値)
update_scenario(scenario_id, fields) シナリオを部分更新 (PATCH)
duplicate_scenario(scenario_id) シナリオを private コピーとして複製
get_scenario_versions(scenario_id) 編集履歴 (meta のみ)
get_scenario_version(scenario_id, content_version) 特定版の snapshot
rollback_scenario(scenario_id, content_version, note?) 過去版に戻す

Personality 系

Tool 用途
list_personalities() NPC 人格 (Personality) 一覧
get_personality(personality_id) 人格詳細 (system_prompt / voice / character_id 等)
create_personality(fields) 新規人格作成 (name / system_prompt / character_id 必須)
update_personality(personality_id, fields) 人格を部分更新

ConversationLog 系

Tool 用途
list_conversation_logs(scenario_id?, personality_id?, since?, until?) 会話ログ一覧 (フィルタ可)
get_conversation_log(log_id) 会話ログ詳細 (utterances / personalities_snapshot / metadata)

提供される MCP Prompts (定型ワークフロー)

Prompt 用途
analyze_log(scenario_id, log_id) ログを scenario と照合して違反を抽出
propose_edit(scenario_id, feedback) 自然言語フィードバックから編集案を提案 → 承認 → 反映

これらは Claude Desktop の / メニュー (slash commands) から呼び出せる。

典型的な使い方

  1. Claude Desktop を開く
  2. /propose_edit を選択 (または「Library Tour の昨日のログを見て、Sub が冒頭で『なるほど』と言ってるから直して」のように直接話しかける)
  3. Claude が list_scenarioslist_conversation_logsget_conversation_log で材料を集める
  4. Claude が違反を抽出して報告し、編集案 (diff) を提示
  5. ユーザーが「OK」と承認
  6. Claude が update_scenario を呼んで反映、get_scenario_versions で履歴記録を確認

セキュリティ

  • API キーは SHA-256 ハッシュで poranos.com 側に保存され、生キーは発行時のみ表示される
  • スコープは ai-npc:read / ai-npc:write の 2 種。read は GET のみ、write は read + 編集系
  • キー漏洩時は Account Detail 画面 の「無効にする」ボタンで即座に失効可能 (DB 側 ソフト削除)
  • 全編集が ScenarioVersionedit_source='mcp' + edited_by 付きで記録される
  • 不安なら read scope のキー で運用を始め、誤編集の心配を排除してから write に切り替えるのが安全

環境変数

変数 必須 既定 用途
PORANOS_API_KEY poranos.com で発行した API キー
PORANOS_API_BASE https://api.poranos.com テスト用に dev サーバを指す等

ライセンス

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poranos_mcp_ainpc-0.3.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poranos_mcp_ainpc-0.3.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file poranos_mcp_ainpc-0.3.0.tar.gz.

File metadata

  • Download URL: poranos_mcp_ainpc-0.3.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for poranos_mcp_ainpc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c0451f5b5f632139b60e00ffb57f6e7f4087586cced3178a9689854c0a29d6ef
MD5 561f6b40004faf4e572067bba0b6c77d
BLAKE2b-256 7febfb57382ec660c2b78881cbc8cdd2a3e307b517129c71b869cda6a26c19b8

See more details on using hashes here.

File details

Details for the file poranos_mcp_ainpc-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for poranos_mcp_ainpc-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47f616f683eede9976fc74a417d2793753edef38148a7564aa0f20d9a4283567
MD5 6986850bdb34eb8c81cbbeddea8a4aad
BLAKE2b-256 9e2e7500ec597436097a8b2330d981923c99356bcff44b5775b1a37ffcad23e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page