poranos-mcp-ainpc
Enables Claude Desktop/Code to read and edit Poranos AI NPC scenarios and conversation logs via natural language, including scenario versioning and audit logging.
README
poranos-mcp-ainpc
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 側の ScenarioVersion に edit_source='mcp' で自動記録され、Web 管理画面の「履歴」セクションから 1-click でロールバック可能。
セットアップ
1. API キーを発行する
https://poranos.com/app/account/ にログインし、「AI NPC API キー」セクションから新しいキーを発行する。
- アクセスレベルは 「閲覧 + 編集」 (
ai-npc:write) を推奨。「閲覧のみ」を選ぶと編集系の Tool が 403 を返す - 発行直後に表示される
pk_...を必ずコピーして保管する (二度と表示できない)
2. uv のインストール (まだなら)
uvx は uv に同梱されています。
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) |
自然言語フィードバックから編集案を提案 → 承認 → 反映 |
create_scenario_guide(intent) |
新規シナリオを「執筆ガイドを踏まえて」作成 |
これらは Claude Desktop の / メニュー (slash commands) から呼び出せる。
全ての prompt は処理開始前に prompt 執筆ガイド (下記 Resource) を読むよう Claude に指示する。
提供される MCP Resources (静的参考資料)
| URI | 内容 |
|---|---|
poranos://prompt-authoring-lessons |
Scenario の focus_block_template / role_addendums 等を書くときの実践ガイド (Markdown)。Realtime モデルの素の癖、典型的な落とし穴、効くテクニックを集約 |
ツール経由でも同じ内容を取得可能 (get_prompt_authoring_lessons())。
Claude Desktop の UI から直接閲覧 / コンテキスト添付できる他、prompt の指示で
内部的に resources/read 経由で読む。
典型的な使い方
- Claude Desktop を開く
/propose_editを選択 (または「Library Tour の昨日のログを見て、Sub が冒頭で『なるほど』と言ってるから直して」のように直接話しかける)- Claude が
list_scenarios→list_conversation_logs→get_conversation_logで材料を集める - Claude が違反を抽出して報告し、編集案 (diff) を提示
- ユーザーが「OK」と承認
- 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 側 ソフト削除)
- 全編集が
ScenarioVersionにedit_source='mcp'+edited_by付きで記録される - 不安なら read scope のキー で運用を始め、誤編集の心配を排除してから write に切り替えるのが安全
環境変数
| 変数 | 必須 | 既定 | 用途 |
|---|---|---|---|
PORANOS_API_KEY |
✓ | — | poranos.com で発行した API キー |
PORANOS_API_BASE |
— | https://api.poranos.com |
テスト用に dev サーバを指す等 |
ライセンス
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。