サーバー
- サーバーURL
https://app.musael.com/api/mcp?lang=ja- トランスポート
- Streamable HTTP、ステートレスなJSONレスポンス。JSON-RPCメッセージはPOSTで送ります。GETとDELETEは405を返します。
- サーバー名
musael
認証
すべてのリクエストにAuthorization: Bearer <token>ヘッダーが必要です。トークンがない場合、または取り消された、期限切れの、誤ったトークンの場合、サーバーはOAuthメタデータを指すWWW-Authenticateヘッダーつきで401を返します。
OAuthサインイン
ChatGPT、Claude、Cursor、VS Codeなど、サインインで接続するクライアント向け。クライアントは、MCP認可仕様に従って、401レスポンスからすべてを検出します:
- 保護されたリソースのメタデータ(RFC 9728):
https://app.musael.com/.well-known/oauth-protected-resource/api/mcp - 認可サーバーのメタデータ(RFC 8414):
https://app.musael.com/.well-known/oauth-authorization-server - 動的クライアント登録(RFC 7591):シークレットのない公開クライアントのみ。リダイレクトアドレスは、HTTPS、ループバックのみのHTTP、またはアプリのスキーム。
- PKCEつき認可コード(S256のみ)。書き手がサインインし、「読み取りのみ」か「読み取りと追加」とプロジェクトを選んで、許可またはキャンセルします。
- アクセストークンは1時間、リフレッシュトークンは90日間有効で、使うたびに変わります。
- スコープ:read、suggest(書き手には「読み取りと追加」と表示されます)。
個人用アクセストークン
Codex、Claude Code、スクリプトなど、手動で設定するクライアント向け。書き手がMusaelの「設定 → 連携アプリ」でトークンを作成し、名前、プロジェクト、アクセス範囲、有効期限を選びます。
- トークンはsti_で始まり、表示は一度きりです。Musaelはそのハッシュのみを保持します。
- アカウントは最大20個の有効なトークンを持てます。取り消すと、トークンは直ちに無効になります。
- Authorizationヘッダーで送ってください。URLには決して入れないでください。
アクセスと制限
- 各呼び出しは、接続した書き手として、その時点で持つアクセス権の範囲内で、接続に選ばれたプロジェクトに対して行われます。
- 書き手のテキストを変更または削除するツールはありません。追加するツールは新しい幕、章、シーン、世界観の項目を作り、suggest_editは、書き手がMusael上で承認または却下する提案を残します。
- すべてのツールは常に一覧に表示されます。プランまたは接続が許可しないツールは、理由を返し、何もしません。
- 1トークンあたり5分で最大300回の呼び出し。200,000文字を超える応答は切り詰められ、章またはシーンを一つずつ読むようメモが添えられます。
ツール
15個のツール。本の本文の読み取りと編集の提案は、Pressプランで利用できます。
| ツール | できること | プラン | アクセス |
|---|---|---|---|
list_projects | この接続で見えるプロジェクトを、ワークスペース、書き手のロール、シーン、最終更新とともに。最初に使ってください。ほかのツールはすべて、プロジェクトIDが必要です。 | すべてのプラン | 読み取り |
get_profile | 接続中のMusaelアカウント:変わらないID、名前、メールアドレス。 | すべてのプラン | 読み取り |
get_outline | プロジェクトの構造:巻、幕、あらすじつきの章、状態・視点・語数つきで読む順に並んだシーン、未完了のタスク。 | すべてのプラン | 読み取り |
create_project | アイデアから新しいプロジェクトを作成。幕、章、あらすじつきの空のシーン、世界観の項目を含みます。 | すべてのプラン | 読み取りと追加 |
add_to_plan | 既存のプロジェクトへの新しい幕、章、シーン。 | すべてのプラン | 読み取りと追加 |
add_world_entries | 新しいキャラクター、場所、物、勢力。すでにある名前はそのままにします。 | すべてのプラン | 読み取りと追加 |
read_scene | 1つのシーンをMarkdownで。章、状態、視点、場所、あらすじつき。 | Press | 読み取り |
read_chapter | 章のすべてのシーンを順番に、Markdownで。 | Press | 読み取り |
search_project | シーンと世界観の中の語を、短い抜粋とともに。 | Press | 読み取り |
list_world | 世界観の項目を種類別に。別名、タグ、ノートの冒頭つき。 | Press | 読み取り |
get_world_entry | 1つの世界観の項目を全文で:ノート、関係、記録された事実、それに言及するシーン。 | Press | 読み取り |
get_timeline | 世界観の出来事を物語の順に、それぞれを示すシーンとともに。順序が入れ替わっているものを示します。 | Press | 読み取り |
get_style_report | 固定ルールによる、AIを使わないシーンのスタイルレポート。 | Press | 読み取り |
get_reader_stats | 公開された本の読者を章ごとに、オーナーと編集者向けに。 | Press | 読み取り |
suggest_edit | 箇所の置き換え案、またはコメント。書き手が承認した場合にのみ、テキストが変わります。 | Press | 読み取りと追加 |
表をすべて見るには、横にスクロールしてください。
例
MUSAEL_TOKENに個人用アクセストークンを設定します。initializeの後にnotifications/initializedを送り、ツールを一覧するか呼び出します。
初期化
curl https://app.musael.com/api/mcp?lang=ja \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"example","version":"1.0.0"}}}'ツールを一覧
curl https://app.musael.com/api/mcp?lang=ja \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
curl https://app.musael.com/api/mcp?lang=ja \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'ツールを呼び出す
curl https://app.musael.com/api/mcp?lang=ja \
-H "Authorization: Bearer $MUSAEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'Codex
# ~/.codex/config.toml
[mcp_servers.musael]
url = "https://app.musael.com/api/mcp?lang=ja"
bearer_token_env_var = "MUSAEL_TOKEN"Claude Code
claude mcp add --transport http --scope user musael https://app.musael.com/api/mcp?lang=ja --header "Authorization: Bearer $MUSAEL_TOKEN"トークンなし
HTTP/2 401
www-authenticate: Bearer realm="Musael", resource_metadata="https://app.musael.com/.well-known/oauth-protected-resource/api/mcp"
{"error":"TOKEN_INVALID"}
