ai-nikechan-mcp
AIニケちゃん知識検索 MCP サーバー
非公式ツールです。 このプロジェクトは AIニケちゃん、その運営者、X、OpenAI、または関連する各社・団体から承認、提携、後援を受けたものではありません。名称・投稿・Webサイトなどの情報源に関する権利は、それぞれの権利者に帰属します。
AIニケちゃんに関する公開情報を、MCP(Model Context Protocol)クライアントから検索するための Next.js / Vercel 向けサーバーです。質問は OpenAI Embeddings によりベクトル化され、検索結果には情報源 URL と投稿日時を含めます。OPENAI_API_KEY がない場合だけ Vercel AI Gatewayへフォールバックできます。
公開リポジトリに含めないもの
このリポジトリには、次のものを絶対にコミットしません。
X 投稿の収集データと、その派生テキスト
投稿本文を含む検索メタデータと生成済みベクトル
.env系の環境変数ファイル、API キー、認証トークン
これらは .gitignore と .vercelignore で除外されています。公開デプロイでは生成済みインデックスをPrivate Vercel Blobから読み込むため、投稿データをリポジトリやFunctionの配布物に含めません。
Related MCP server: xai-search-mcp
デモ公開とセキュリティ
このプロジェクトは短期の公開デモ向けに、MCP エンドポイントを認証なしで公開します。Vercel には AI_GATEWAY_API_KEY と、Private Blobを接続して追加されるストレージ用設定を登録します。値をGitHub、クライアントコード、ログに保存しないでください。
AI_GATEWAY_API_KEY=
BLOB_READ_WRITE_TOKEN=第三者も検索を実行できるため、AI Gateway の利用料が発生します。公開期間を短くし、Vercel 側の WAF とレート制限を設定したうえで、利用状況を確認してください。デモ終了後はデプロイを停止してください。
この作業フォルダの .env に認証情報らしき値が検出されています。Git へ追加する前に、現在使用していないかを確認し、必要ならキーをローテーションしてください。
ローカル開発
npm install
cp .env.example .env.local
# .env.local に OPENAI_API_KEY を設定
npm run build:index
npm run devローカルの検索エンドポイントは http://localhost:3000/api/mcp です。インデックス生成には、除外された X 投稿データがローカルに必要です。
purupuru チャットデモ
トップページは、Codex Desktop、Claude Code、CharaDockから公開MCPへ接続するためのセットアップガイドです。各クライアントの手順はタブで切り替えられ、利用可能な全ツールを固定クエリで実行できます。
/demo には、AIニケちゃんの公開情報をこのMCPで検索しながら会話する非公式チャットデモがあります。OPENAI_API_KEY がある場合はOpenAIへ直接接続し、既定で gpt-5.6-luna を使います。サンプル質問と自由入力に対応し、回答文字の表示中はAIニケちゃんの口が動きます。CharaDockのPuruPuru実装を参考に、アイドル中の瞬き、呼吸、身体の揺れ、髪の遅延揺れ、キャラクターをクリックした時の短い反応も加えています。
画面はキャラクターを主役にしたゲーム風レイアウトで、会話欄は小さく表示し、必要な時だけ履歴を広げられます。デモチャットではResponses APIのtool callingから、このMCPと同じサーバー内検索を実行します。ツール出力を同梱のMCP Apps UIへ渡し、画像・日時・出典をデモ画面内でも表示します。MCP Appsの結果は自動で開かず、結果ボタンを押した時だけ表示します。PCとスマートフォンの両方に最適化しています。
アバター素材
デモでは public/avatar/nikechan のAIニケちゃんアバターを使用します。アートワークと目・口の派生フレームは、このリポジトリ本体と同じライセンスの対象ではありません。利用条件は ASSET_NOTICE.md を確認してください。
AIニケちゃん / AI Nike-chan
チャットAPIは、公開MCPと同じ検索実装をサーバー内で直接実行します。MCP_SERVER_URL は、セットアップページに載せる固定ツール試行結果を npm run cache:tool-trials で再生成するときの接続先だけを上書きします。
# 推奨。設定されていればチャットとEmbeddingの両方で最優先
OPENAI_API_KEY=
# 任意。OpenAI直結が失敗したときのフォールバック
AI_GATEWAY_API_KEY=
# 任意。固定ツール試行結果を再生成するときの接続先MCP
MCP_SERVER_URL=
# 任意。OpenAI直結のモデル(既定はgpt-5.6-luna)
OPENAI_CHAT_MODEL=gpt-5.6-luna
# 任意。Gatewayフォールバックのモデル
AI_CHAT_MODEL=zai/glm-5.3-flashOPENAI_API_KEY が設定されている場合、チャットは gpt-5.6-luna、検索用埋め込みは text-embedding-3-small でOpenAIへ直接接続します。両方のキーがある場合もOpenAI直結を先に使い、レート制限や一時障害で失敗したときだけGatewayへ再試行します。公開デモでは第三者からAPIを利用できるため、実運用ではVercel WAFで /api/chat にレート制限を設定してください。アプリ内にも簡易的なインメモリ制限を入れていますが、分散環境での強制力を保証するものではありません。
X投稿用のデモ動画
本番ビルドを起動した状態で次を実行すると、キャラクター、接続先、クライアント切替、ツール試行、クリックで開く実データ、チャット、MCP Appsの順に収録します。隣接するCharaDockの登録済みStyle-Bert-VITS2 JP-Extraモデル amitaro でナレーションも生成します。出力はXへそのままアップロードできる1280×720、H.264/AAC、30fpsのMP4です。OGP画像のPNGも同時に保存します。
npm run build
npm start
# 別ターミナルで
npm run record:x-demo既定の出力先は artifacts/social/ai-nikechan-mcp-x-demo.mp4 と artifacts/social/ai-nikechan-mcp-ogp.png です。音声単体と同期情報は artifacts/social/ai-nikechan-mcp-narration.m4a、artifacts/social/ai-nikechan-mcp-narration.json に残ります。別URLを撮影する場合は DEMO_BASE_URL、Chromeの場所が異なる場合は CHROME_PATH、CharaDockやユーザーデータの場所が異なる場合は CHARADOCK_ROOT、CHARADOCK_USER_DATA を指定できます。一度生成した音声を再利用して間だけ調整するときは、REUSE_TTS=1 npm run narrate:x-demo を使えます。
Vercel Blob へのインデックス配置
VercelプロジェクトのStorageから、PrivateアクセスのBlobストアを作成してプロジェクトへ接続します。
Vercelの環境変数をローカルへ取得し、ローカルの
.env.localにBLOB_READ_WRITE_TOKENを設定します。ローカルでインデックスを生成後、次を実行します。
npm run upload:indexindexes/metadata.json と indexes/embeddings.f32 がPrivate Blobにアップロードされます。Vercel環境ではこの二つを読み込み、ローカル環境では従来どおり src/data のファイルを読み込みます。Blob内のパスを変える場合だけ、VECTOR_INDEX_METADATA_PATH と VECTOR_INDEX_VECTORS_PATH をローカルとVercelの両方に同じ値で設定してください。
MCP ツール
AIニケちゃんに関する質問では、モデルが回答前に用途に合う検索ツールを選びやすいよう、質問例と選択条件を各ツールの説明へ含めています。検索・人気順・時系列・X投稿取得系の結果は、画像、日時、出典を確認できるMCP Appsカードとして表示されます。カードではOG説明と投稿本文の重複を除き、サムネイルを切り抜かず全体表示します。
セットアップページの固定クエリ例は src/generated/tool-trial-results.json に事前取得してあり、閲覧時にはMCP APIを再実行しません。公開データを更新したときだけ npm run cache:tool-trials を実行すると、全ツールの結果とOGプレビューを更新できます。検索結果が空、またはMCP側がエラーの場合は既存キャッシュを上書きせず失敗します。
search_nikechan_knowledge: X 投稿と公式サイトを横断した意味検索search_x_posts: X 投稿のみの意味検索search_hybrid: キーワード一致と意味検索を組み合わせた検索search_keywords: キーワード検索search_timeline: 期間・年月による検索get_popular_posts: 反応数順の検索get_x_post/get_x_thread: 投稿またはスレッドの取得x_posts_dataset_info: インデックスの件数と構成の確認
結果は公開情報をもとにした参考情報です。正確性、完全性、最新性は保証されないため、回答では返却された URL の原典を確認してください。
検証
npm run lint
npm test
npm run build既知のデプロイ前確認事項
依存関係の監査では Next.js 系の高重要度の脆弱性が残っています。修正には Next.js 16 への破壊的変更を伴うため、このリポジトリでは自動更新していません。Vercel 本番公開前に、互換性を確認したうえで Next.js を更新し、再度 npm audit --omit=dev --audit-level=high を実行してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
MCP server for searching Airweave collections with natural language queries.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA CloudFlare Workers-based MCP server that provides semantic memory and journal capabilities with vector search. Enables users to store, search, and retrieve memories and journal entries using AI-powered semantic similarity without any local setup required.-
- AlicenseAqualityDmaintenanceAn MCP server that provides real-time web search and X (Twitter) search capabilities via the xAI API.217 npmMIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context.23 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables semantic search over a private knowledge base via pgvector, with GitHub OAuth authentication and a RAG pipeline.8 npmMIT