二次創作版 v1.1:友だちリンクの二重検証、MCP サーバー、キータイプの分離
リリース日: 2026年10月26日
現在のバージョン: v1.1.2(最新)
このページは v1.1 ラインのすべての変更をまとめたもので、v1.1.0、v1.1.1、v1.1.2 を対象としています。同じライン内のパッチはこのページに統合されます。新しいライン(1.2 など)が始まると新しいページが作成され、告知は変更の規模と必要性に応じて作成されます。
このラインのリリース
v1.1.0 友だちリンクの2つの検証方法
申請が JSON 検証を通過すると、ボットは awaiting_method_choice ステージに入り、申請者に選択を求めます:
- DNS TXT レコードの場合、
1(または一/方案一/方法一)と返信 - HTML ファイルをアップロードする場合、
2(または二/方案二/方法二)と返信
DNS の場合、手順にはホスト _jiaofriend、タイプ TXT、値として検証コードが記載されます。検証では Cloudflare DNS-over-HTTPS 経由で _jiaofriend.<visitor-domain> の TXT レコードを照会し、いずれかにコードが含まれているかを確認します。ファイル方式では厳格なチェックを維持します:GET が 200 を返し、タグとスクリプトを除去した後の <body> テキストにコードが含まれている必要があります。
状態機械には awaiting_verification ステージが追加され、verifyMethod が記録されます。変更申請では旧サイトと新サイトの両方で再度方法を選択します。アップグレード前の verifying 状態はファイル検証にフォールバックします。DNS 検索は注入可能な依存関係 resolveTxt(name) => Promise<string[]> を経由し、リゾルバをテスト可能かつ交換可能に保ちます。
このリリースでは、友だちリンク検証が SPA フォールバック、カスタム 404 ページ、403/500 応答、30x リダイレクトを受け入れてしまう問題、/friends-sitemap.xml がフロントエンドルーターに飲み込まれる問題、キー表示時に暗号化ストレージが平文になる問題、キャプチャの繰り返し初期化で申請がクラッシュする問題、CJS / ESM バンドル下での受信メール解析の問題も修正されています。
v1.1.1 MCP サーバー
サイトに /mcp エンドポイントが追加され、記事、モーメント、友だちリンク、サイト設定が MCP(Model Context Protocol)経由で公開されます。これにより Claude Code、Cursor、Claude Desktop、MCP Inspector がコンテンツを読み取り、維持できます。
- トランスポート: Streamable HTTP。リクエストごとに新しいインスタンスを作成し、リクエスト間で状態を共有しません
- 認証:
X-API-KeyまたはAuthorization: Bearer。設定ページのキーを再利用し、最終使用日時を更新します - スコープフィルタリング:
tools/listはキーのスコープでフィルタリングされ、新しいcontent.readスコープがあります - 安全性チェック: Host と Origin の検証が DNS リバインディングをブロックし、カスタムドメインは
MCP_ALLOWED_HOSTSを通じて有効化されます
クライアント設定の例:
カスタムドメインでは、Cloudflare でドメインを Worker のカスタムドメインまたはルートとして関連付け、ドメインを MCP_ALLOWED_HOSTS に追加します(または FRONTEND_URL をサイトのオリジンに設定します)。421 Misdirected Request は Cloudflare エッジから、403 Invalid Host はサーバーの許可リストから返されます。両方の詳細は API ガイド を参照してください。
v1.1.2 REST API キーと MCP キーの分離
以前は両方のエンドポイントが同じキーとスコープのセットを共有していたため、スクリプト自動化用に作成したキーでも MCP エンドポイントを呼び出せました。キーは現在2つのタイプに分離されています:
- タイプは作成時に固定され、設定ページでは REST API と MCP の別タブでキーが一覧表示され、作成されます
- エンドポイントと一致しないタイプは、ビジネスロジックが実行される前に認証段階で
403として拒否されます content.readは MCP キーのみ利用可能です。REST API キーはfeed.write、moment.write、friend.write、およびconfig.*スコープを選択します
データベースに key_type カラムが追加され、マイグレーション 0021.sql が既存キーを自動分類します:スコープに content.read を含むキーは MCP キーになり、それ以外は REST API キーになります。既存の MCP クライアントはキーを再作成せずにアップグレード後も動作します。スクリプトと MCP クライアントの両方に使われていたキーは1つの機能のみを保持するため、用途別に分割してください。
バージョンステータスと番号付け
プロジェクトは標準的なセマンティックバージョニングに従い、バージョンラインは v1.0.0 から始まり、リリースタグは vX.Y.Z を使用します:
- MAJOR: 互換性のない変更。
Xが増加し、下位の番号はリセットされます - MINOR: 後方互換性のある機能。
Yが増加し、Zはリセットされます - PATCH: 修正と小さな変更。
Zが増加します - プレリリース:
-betaや-rc.1などのサフィックス。例:v1.2.0-beta.1
すべてのリリースは変更履歴に記録されます。告知ページは変更の規模と必要性に応じて維持され、1つのラインの複数リリースが同じページを共有できます。項目が公式アップストリームと本プロジェクトのバージョンの両方に言及する場合、本プロジェクトのバージョンは yjvX.Y.Z と表記されます。現在 v1.1 が最新ラインです。
アップグレードに関する注意
- コードをプルして再デプロイします。マイグレーションはデプロイフローの一部として実行され、手動の手順はありません
- カスタムドメインのサイトは
MCP_ALLOWED_HOSTSを設定する必要があります。設定しない場合、MCP ハンドシェイクは403を返します - 既存のキーは自動的に分類されます。クライアントが
403を報告する場合は、キーのタブがエンドポイントと一致しているか確認してください
エンドポイントの詳細は API ガイド、変更の完全なリストは 変更履歴 を参照してください。
フィードバック
v1.1.0~v1.1.2 の検証中に問題を見つけた場合は、以下から報告してください:
- 二次創作版 issues: https://github.com/wool-hmq/Rin/issues
- 二次創作版 discussions: https://github.com/wool-hmq/Rin/discussions
- 公式アップストリーム issues: https://github.com/openRin/Rin/issues