ワープキャスト MCP サーバー
Warpcast 統合用の Model Context Protocol (MCP) サーバー。これにより、Claude を使用して Warpcast アカウントと対話できるようになります。
特徴
Warpcastアカウントにキャストを投稿する
Warpcast からキャストを読む
キーワードまたはハッシュタグでキャストを検索
チャンネルを閲覧して交流する
チャンネルをフォロー/フォロー解除する
トレンドキャストを入手
Related MCP server: MCP Fetch
設定
このリポジトリをクローンする
git clone https://github.com/zhangzhongnan928/mcp-warpcast-server.git cd mcp-warpcast-server依存関係をインストールする
npm installAPIキーを生成し、認証を構成する
この MCP サーバーは、必要な Ed25519 キー ペアを生成するためのヘルパー スクリプトを提供します。
npm run generate-keys指示に従って次の操作を行います。
ランダムなEd25519キーペアを生成する
キーを
.envファイルに保存しますWarpcastでキーを登録するための手順を入手する
あるいは、手動で設定したい場合は、次のようにします。
オプション1: 署名付きキーリクエストの使用
Ed25519キーペアを生成する
Warpcast 署名キーリクエスト API を使用して、アカウントに代わってメッセージに署名する許可を求めます。
Warpcastアプリで認証を完了する
実装例を次に示します。
import * as ed from '@noble/ed25519';
import { mnemonicToAccount, signTypedData } from 'viem/accounts';
import axios from 'axios';
// Generate a keypair
const privateKey = ed.utils.randomPrivateKey();
const publicKeyBytes = await ed.getPublicKey(privateKey);
const key = '0x' + Buffer.from(publicKeyBytes).toString('hex');
// EIP-712 domain and types for SignedKeyRequest
const SIGNED_KEY_REQUEST_VALIDATOR_EIP_712_DOMAIN = {
name: 'Farcaster SignedKeyRequestValidator',
version: '1',
chainId: 10,
verifyingContract: '0x00000000fc700472606ed4fa22623acf62c60553',
};
const SIGNED_KEY_REQUEST_TYPE = [
{ name: 'requestFid', type: 'uint256' },
{ name: 'key', type: 'bytes' },
{ name: 'deadline', type: 'uint256' },
];
// Generate a Signed Key Request signature
const appFid = process.env.APP_FID;
const account = mnemonicToAccount(process.env.APP_MNEMONIC);
const deadline = Math.floor(Date.now() / 1000) + 86400; // signature is valid for 1 day
const signature = await account.signTypedData({
domain: SIGNED_KEY_REQUEST_VALIDATOR_EIP_712_DOMAIN,
types: {
SignedKeyRequest: SIGNED_KEY_REQUEST_TYPE,
},
primaryType: 'SignedKeyRequest',
message: {
requestFid: BigInt(appFid),
key,
deadline: BigInt(deadline),
},
});
// Create a Signed Key Request
const warpcastApi = 'https://api.warpcast.com';
const { token, deeplinkUrl } = await axios
.post(`${warpcastApi}/v2/signed-key-requests`, {
key,
requestFid: appFid,
signature,
deadline,
})
.then((response) => response.data.result.signedKeyRequest);
console.log('Deep link URL:', deeplinkUrl);
console.log('Open this URL on your mobile device with Warpcast installed to authorize this key');オプション2: 既存のアプリキーを使用する
Farcaster アカウントにすでにアプリ キーが設定されている場合は、FID、秘密キー、公開キーを直接使用できます。
サーバーを構築する
npm run buildこのサーバーを使用するようにClaude for Desktopを構成する
Claude for Desktop による構成
claude_desktop_config.jsonに以下を追加します。
{
"mcpServers": {
"warpcast": {
"command": "node",
"args": [
"/absolute/path/to/mcp-warpcast-server/build/index.js"
],
"env": {
"WARPCAST_FID": "your_fid_here",
"WARPCAST_PRIVATE_KEY": "your_private_key_here",
"WARPCAST_PUBLIC_KEY": "your_public_key_here"
}
}
}
}/absolute/path/to/mcp-warpcast-serverこのリポジトリのクローンを作成した実際の絶対パスに置き換え、環境変数を実際の資格情報で更新します。
使用法
設定が完了したら、Claude に次のことを依頼できます。
「[トピック]についてのキャストを投稿する」
「[ユーザー名]の最新のキャストを読む」
「[トピック]に関するキャストを検索」
「ワープキャストでトレンドのキャストを表示」
「ワープキャストで人気のチャンネルを表示」
「[チャンネル] チャンネルからキャストを取得する」
「[チャンネル] チャンネルをフォローしてください」
利用可能なツール
この MCP サーバーは、Claude が使用できるいくつかのツールを提供します。
post-cast : Warpcast に新しい投稿を作成する (最大 320 文字)
get-user-casts : 特定のユーザーからの最近のキャストを取得する
search-casts : キーワードまたはフレーズでキャストを検索
get-trending-casts : Warpcast で現在トレンドになっているキャストを取得します
get-all-channels : Warpcast で利用可能なチャンネルを一覧表示する
get-channel : 特定のチャネルに関する情報を取得する
get-channel-casts : 特定のチャンネルからキャストを取得する
follow-channel : チャンネルをフォローする
unfollow-channel : チャンネルのフォローを解除する
認証に関する注意事項
このサーバーはWarpcastのApp Key認証方式を使用しており、Farcasterアカウントに登録されたEd25519キーペアが必要です。認証フローは以下のとおりです。
FIDと公開鍵を含むヘッダーを作成する
有効期限付きのペイロードを作成する
秘密鍵を使用してヘッダーとペイロードに署名します
生成されたトークンをAPI呼び出しに使用する
実稼働アプリケーションでは、認証トークンを生成するために公式の Farcaster SDK を使用することをお勧めします。
セキュリティに関する考慮事項
秘密鍵を安全に保管し、決して共有しないでください
定期的にキーをローテーションすることを検討してください
サーバーはデバッグを支援するために認証エラーを記録します
トラブルシューティング
問題が発生した場合:
環境変数が正しく設定されていることを確認してください
キーがFarcasterアカウントに正しく登録されていることを確認してください
Claude for Desktop のログにエラーがないか確認します
Warpcastアカウントに必要な権限があることを確認してください
ライセンス
マサチューセッツ工科大学