Skip to main content
Glama

nextjs-mcp-kit

Next.js App Router 向けの MCP サーバー、MCP クライアント、およびプロバイダー非依存のチャット UI です。ルートハンドラー、コンポーネント、型付き状態としてインストールできます。

あなたのアプリに、アプリのことを実際に知っている小さなチャットを追加しましょう。

スマートチャット — 応答はあなたが書いたもの、あなたがアップロードしたドキュメントです

  • あなたが追加するツール ブラウザのフォームから回答を追加してツールを作成します。 再トレーニングもベクターデータベースも再デプロイも不要です。

これは意図的に賢くありません。挨拶をして、あなたの営業時間を知っている小さなチャットであり、それを手に入れるのに約1分かかります。

npm i nextjs-mcp-kit && npx nextjs-mcp-kit init

nextjs-mcp-kit — スキャフォルダーオプション

npx nextjs-mcp-kit init // 現在のディレクトリにスキャフォールド

npx nextjs-mcp-kit init --force // 既存のファイルを上書き

npx nextjs-mcp-kit init --dir web // ./web にスキャフォールド

次に、60秒で最初のツール に進みます。

6つのサーフェスは、意図的に分離されています:

ルート

内容

/

MCP プロンプトチャット — アプリ自身の MCP サーバーが提供するプロンプト

/chat

プレーンチャット — プロバイダーとモデルを選び、指示を設定して話す。ツールなし。

/add-tool

ツールを作成 — フォーム、.md/.txt のアップロード、またはスキルから

/mcp-dashboard

MCP サーバーが提供するもの、およびクライアントがそれを指すための mcp.json

/personal-chat

ツール付きチャット — ストリーミングされ、実行されたものを常に名前で示す

/smart-chat

ビジターチャット — 1つの質問を入れると、根拠のある回答が出る

ブラウザからツールを追加すると、すぐにチャットで使用でき、アプリを指すあらゆるもの(他の誰かのクライアントも含む)に MCP 経由で提供されます。


Related MCP server: Example Next.js MCP Server

60秒で最初のツール

API もキーもコードも不要です。npm run dev を実行し、/add-tool を開いて、最初のオプションを 「私が書いたテキストを返す」 にしたままにします:

フィールド

入力する内容

名前

opening_hours

説明

The shop opening hours. Call this when asked when we are open.

返すテキスト

Open 9am to 6pm, Monday to Friday. Closed weekends.

パラメータは空のままにします。ツールを追加 を押します。

次に /personal-chat を開き、opening_hours にチェックを入れて、「土曜日は営業していますか?」 と尋ねます。

モデルは 「いいえ — 週末は休業です」 と答え、回答の下に opening_hours が実行されたと表示され、ツールが返した内容が正確に示されます。モデルはそれを知らなかったのです。あなたが30秒前にフォームを通じて教えたのです。

これが全体のループです。この README の他のすべては、このループに選択肢を増やしたものです。

説明が思った以上に重要な理由

説明はドキュメントではありません。モデルがツールを呼ぶかどうかを判断する方法です。"opening hours" は半分の確率で無視されます。"The shop opening hours. Call this when asked when we are open." は呼ばれます。曖昧な説明は、登録されても選ばれないツールを意味します。


これは何に適しているか

訪問者向けの小さなチャット。 サポートエージェントになるほど賢くはなく、そのつもりもありません。誰かに挨拶し、あなたのアプリが実際に尋ねられる6つの質問に、あなたが書いた回答から答えるのに十分な賢さがあります。それらの回答はすべて skill ツールです。名前、説明、そして返すテキストです。

あなたが教えた内容に基づいた回答。 ツールが質問に合致する場合、モデルはそれを呼び出し、返ってきた内容から回答します。一般的な店についてのうろ覚えからではありません。ツールがカバーする質問には、ツールが答えます。

何が起こったかを常に確認できます。 ツールを使用したすべての返信は、その名前と返された内容を示します。回答があなたのテキストから来たのであれば、それを証明できます。モデルが独自に回答した場合、トレースは空で、それも確認できます。どちらだったか推測する必要はありません。

静かなフォールバックはありません。 プロバイダーがツールを呼び出せない場合、または Ollama モデルにその機能がない場合、ターンが実行される前に 理由付きの 503 を受け取ります。チェックしたツールを静かに無視した回答が返ることは決してありません。

実行は無料。 Ollama はローカルなので、ビジターチャットはメッセージごとに費用がかからず、データがマシンの外に出ることもありません。同じツールでより良い応答を得るには Claude に切り替えます。ピッカーは、課金されるターンには 💳、ローカルのターンには 🖥️ を表示します。

MCP サーバーでもあります。 ブラウザから追加した同じツールが MCP 経由で提供されるため、Claude Desktop や他の誰かのクライアントが、デプロイしたアプリを指してそれらを使用できます。MCP クライアントを接続する を参照してください。

訪問者にどのページを渡すか

/smart-chat が訪問者に案内するページです。1つの質問を入れると、1つの回答が出ます。登録されているすべてのツールをチェックし、合致するものを使用して、どれが実行されたかを示します。維持する会話も、保存する履歴も、訪問者が設定するものもありません。

// app/ask/page.tsx — your public "ask us anything" page
export { SmartChatPage as default } from 'nextjs-mcp-kit/pages';

または、コンポーネントだけを自分のページに配置することもできます:

import { SmartChat } from 'nextjs-mcp-kit/components';

/personal-chatあなた のためのページです。完全な会話、指示、そしてこの会話が使用できるツールのチェックリストがあります。新しいツールを他の誰かに触らせる前に試す場所です。

/add-tool/mcp-dashboard もあなた専用であり、訪問者向けではありません。どちらにも認証はありません。独自の認証の背後に置くか、公開アプリにはスキャフォールドしないでください。

Ollama(ローカル、無料)と Claude(Anthropic)で動作します。3つ目のプロバイダーを追加するには、1つのファイルと1つの配列エントリが必要です。


インストール

Next.js 16+ と Node 20.9+ が必要です。 ピアレンジは意図的に >=15.0.0 ではなく >=16.0.0 です。16 はこれがビルドおよびテストされている唯一のメジャーバージョンであり、ピアレンジは実際に検証されたものを記述すべきであり、たまたま動くかもしれないものを記述すべきではないからです。Next 15 では npm i はピア競合を報告します。これは意図されたシグナルであり、バグではありません。

既存の Next.js アプリに追加する

npm i nextjs-mcp-kit
npx nextjs-mcp-kit init

init はルートハンドラーと /chat を書き込みます。ルートレイアウトには 触れません。2行を自分で追加してください:

// app/layout.tsx
import { GlobalProvider } from 'nextjs-mcp-kit/context';
import 'nextjs-mcp-kit/styles.css';

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        <GlobalProvider>{children}</GlobalProvider>
      </body>
    </html>
  );
}

次に cp env.local.example .env.local を実行し、npm run dev を実行します。

コンポーネントのインポート: 人々がつまずく唯一の点

コンポーネントはパッケージルートからエクスポートされません。 これは失敗します:

import { AgentChat } from 'nextjs-mcp-kit';
// The export AgentChat was not found in module .../dist/index.js [app-rsc]
// Did you mean to import initialAgent?

これは動作します:

import { AgentChat } from 'nextjs-mcp-kit/components';

ルートエントリは意図的にサーバーセーフです — エクスポート を参照してください。経験則: レンダリングされるものはルートにはありません。

インポートを修正することは必要ですが十分ではありません。AgentChat が機能するには、アプリに /api/providers/api/chat/api/instructions が存在し、その上に GlobalProvider が必要です。npx nextjs-mcp-kit init がルートを書き込みます。レイアウトはあなたのものです。完全に動作するアプリと、実際に壊れる順序でのトラブルシューティングリストは、examples ブランチ にあります。

空のディレクトリからスタンドアロンで

mkdir my-app && cd my-app
npm init -y
npm i nextjs-mcp-kit
npx nextjs-mcp-kit init          # detects the empty dir, writes a whole app
npm i next react react-dom
npm i -D typescript@^5 @types/node @types/react @types/react-dom
cp env.local.example .env.local
npm run dev

typescript@^5 は意図的に固定されています。現在、素の npm i -D typescript は TypeScript 7 に解決されます。その再構成された lib/ を Next 16 は検出しません — インストールされているにもかかわらず「必要なパッケージがインストールされていません」と報告され、 ビルドが失敗します。


設定

OLLAMA_API_URL=http://localhost:11434   # 11434 is Ollama's default port
ANTHROPIC_API_KEY=                      # empty is fine — runs local-only
NEXTJS_MCP_DATA_DIR=                    # defaults to ./.data

ANTHROPIC_API_KEY を空のままにすることは、壊れたモードではなく サポートされているモード です。ピッカーは Claude を 理由付きで 利用不可として表示し、Ollama は引き続き動作します。それが isAvailable() のポイントです。キーがないことは、Send を押したときにスローされる例外ではなく、事前に報告される通常の状態です。

サーバーレスホストでは、NEXTJS_MCP_DATA_DIR=/tmp/nextjs-mcp-kit を設定してください。これらのバンドルファイルシステムは /tmp 以外は読み取り専用です。永続化 を参照してください。


ルート

ルート

メソッド

目的

/api/chat

POST

すべてのプロバイダーに1つのチャットエンドポイント。モデルごとの分岐は一切なし。

/api/providers

GET

存在するプロバイダー、利用可能性、および(?provider= 付きで)そのモデル

/api/instructions

GET, POST

永続化された指示プリセット

/api/agent-chat

POST

ツール付きの1ターン。stream: true の場合は NDJSON

/api/tools

GET, POST, DELETE

永続化されたツールレジストリ

/api/tools/upload

POST

.md/.txt ドキュメントがスキルツールになる

/api/mcpserver/[transport]

GET, POST, DELETE

アプリの MCP サーバー。ワイヤー URL: /api/mcpserver/mcp

/api/mcpserver/prompts

GET

プロンプトカタログ

/api/mcpserver/tools

GET

ツールカタログ

/api/mcpclient-prompt

GET, POST

プロンプトの一覧表示 / 引数でプロンプトを埋める

ステータスコードには意味があります。プロバイダーが単に起動していない場合は 503(リクエストは正常)、不正な入力には 400、実際の障害には 500 です。

curl -X POST localhost:3000/api/chat -H 'content-type: application/json' -d '{
  "provider": "ollama",
  "model": "llama3.1:8b",
  "system": "Answer in one word.",
  "messages": [{ "role": "user", "content": "Capital of France?" }]
}'
# {"answer":"Paris","provider":"ollama","model":"llama3.1:8b","billed":false}

ツール

/api/chat にはツールがなく、今後も追加されません。ツール呼び出しは独自のルートであり、プロバイダーレジストリを直接呼び出します。/api/chat をラップしません。

curl -X POST localhost:3000/api/agent-chat -H 'content-type: application/json' -d '{
  "provider": "anthropic",
  "model": "claude-haiku-4-5-20251001",
  "messages": [{ "role": "user", "content": "What is the refund window?" }],
  "tools": ["refund_policy"]
}'
# {"answer":"…","provider":"anthropic","model":"…","billed":true,
#  "trace":[{"name":"refund_policy","result":"…","isError":false,"ms":2}]}

trace こそがこれを導入する価値がある理由です。ツールを使用した回答はそれを証明できます。

NDJSON にするには "stream": true を追加します。1行に1つの JSON オブジェクト、{"type":"token"}{"type":"done"} です。自分でパースするのではなく、nextjs-mcp-kit/clientstreamAgentChat で読み取ってください。

どのツールを実行するかは完全に呼び出し側の選択です。tools[] がなければプレーンなターンになります。何も静かに破棄されることはありません。ツールを呼び出せないプロバイダーや、その機能を持たない Ollama モデルは、要求したものを静かに無視した回答の代わりに、理由付きの 503 を受け取ります。

ルートセグメント設定

スキャフォールドされたすべてのルートは、独自の runtime を宣言します:

export { POST } from 'nextjs-mcp-kit/api/chat';

export const runtime = 'nodejs';
export const maxDuration = 120;

これは削除できるボイラープレートではありません。Next はセグメント設定を ルートモジュール自体から静的に 読み取るため、再エクスポートされた runtime は静かに無視され、ハンドラーは誤った設定で実行されます。


プロバイダーの追加

プロバイダーレイヤーは、モデルバックエンドについて知っている唯一の場所です。2つのステップ:

1. ChatProvider を書く:

import type { ChatProvider } from 'nextjs-mcp-kit/types';

export const myProvider: ChatProvider = {
  id: 'mine',
  label: 'My backend',
  defaultModel: 'some-model',
  billed: false,
  dynamicModels: false,

  // Never throws. A missing key or a down daemon is a normal state.
  async isAvailable() {
    return process.env.MY_KEY
      ? { available: true }
      : { available: false, reason: 'MY_KEY is not set' };
  },

  async listModels() {
    return [{ id: 'some-model', label: 'Some model' }];
  },

  // `system` arrives separately: Anthropic takes it as a top-level field,
  // Ollama as a message role. That difference is absorbed here, per provider.
  async chat({ model, system, messages }) {
    return { text: '…', model };
  },
};

2. レジストリに追加する。

他には何も変更されません。ルートも、リデューサーも、ピッカーも、型ユニオンもです。ProviderId は意図的に string です。/api/providersProviderModelPicker はレジストリによって駆動されるため、新しいプロバイダーは クライアント側の編集ゼロ で両方のドロップダウンに表示されます。

billed は 💳/🖥️ バッジを制御します。有料ターンは決して驚きであってはなりません。

プロバイダーにツールを呼び出させるには、オプションの chatWithTools を追加します。これはオプションのままであり、それがないプロバイダーでも完全に使用でき、要求されたツールなしで静かに回答するのではなく、ツール非対応として 報告 されます:

async chatWithTools({ model, system, messages, tools, run, onToken }) {
  // `tools` is neutral — translate it with your dialect:
  //   import { DIALECTS } from 'nextjs-mcp-kit/tools';
  //   const declared = DIALECTS.openai.toTools(tools);
  // Then loop: ask, ingestToolCalls(raw), await run(call), feed results back.
  return { text: '…', model, trace: [] };
}

ほとんどの新しいバックエンドは OpenAI 互換であり、DIALECTS.openai はすでに存在します。したがって、新しいプロバイダーは通常、方言を一切追加しません。


ツールの内部での動作

ツールは 一度だけ、1つの中立的な形で保存されます。各プロバイダーの表記はそこから 導出 されます:

import { deriveByProvider } from 'nextjs-mcp-kit/tools';

deriveByProvider(tools).anthropic; // [{ name, description, input_schema }]
deriveByProvider(tools).ollama;    // [{ type:'function', function:{ … } }]

これは重要です。Anthropic と Ollama はすべてのステップで見解が異なるからです。スキーマキー、呼び出しが id を運ぶかどうか、結果がどのように返されるか。手動で管理された2つのリストは、一方が編集された時点でずれていくでしょう。

2種類あり、どちらも初日から呼び出し可能です:

種類

機能

endpoint

モデルの引数をURLにPOSTし、レスポンスボディが結果となる

skill

自身に保存された指示テキストを返す

skill は、ドキュメントや SKILL.md 形式の本文が、ファイルシステムなしでツールになる仕組みです。テキストはレコード上のフィールドです。

id 問題とその解決方法。 Anthropic はすべてのツール呼び出しに id を付与し、tool_use_id で結果を対応付けます。Ollama のネイティブAPIは id を一切送らず、順序で対応付けます。どちらか一方を前提にした単一のループは、もう一方で壊れます。そのため、1つのファイルの外ではどちらの前提も置かれません。ingestToolCalls() は、id がある場合はそれを保持し、ない場合は name#index を生成し、JSON文字列として届いた引数を正規化します。取り込み後は2つのプロバイダーは区別できなくなり、それぞれが自らのAPIが要求する方法で結果を返し続けます。


サブパス

内容

nextjs-mcp-kit

providers、MCP サーバー/クライアント、store、reducers — サーバーセーフ

nextjs-mcp-kit/context

GlobalProvideruseContextStateuseContextActions

nextjs-mcp-kit/components

AgentChatProviderModelPickerInstructionFormMcpPromptChatPersonalChatSmartChatMcpDashboardToolFormToolUploadFormSkillToolFormToolChecklistToolTraceView

nextjs-mcp-kit/pages

ChatPageMcpPromptPageAddToolPageMcpDashboardPagePersonalChatPageSmartChatPage

nextjs-mcp-kit/providers

PROVIDERSgetProviderDEFAULT_PROVIDER_ID

nextjs-mcp-kit/tools

DIALECTSderiveByProvidervalidateFor

nextjs-mcp-kit/client

型付き fetch ラッパー、streamAgentChatpostAgentChat

nextjs-mcp-kit/types

すべての公開型

nextjs-mcp-kit/api/*

再エクスポート用のルートハンドラー

nextjs-mcp-kit/styles.css

テーマトークン

React の部品はそれぞれ独自のサブパスの背後に置かれているため、それらをインポートしても Node の組み込みモジュールや ANTHROPIC_API_KEY がクライアントバンドルに混入することはありません。描画されるものはルートにはありません。

サブパスは package.jsonexports マップを通じて解決されます。そのため、tsconfig.json"moduleResolution": "bundler" が必要です。create-next-app はすでにこれを設定しています。レガシーな "node" 設定では、すべてのサブパスが Cannot find module 'nextjs-mcp-kit/components' で解決に失敗します。


ステート

分割された値を持つ Context: { state, actions } で、useContextState() / useContextActions() を介して利用します。ディスパッチのみを行うコンポーネントは、無関係なステートが変更されても再レンダリングされません。

'use client';
import { useContextState, useContextActions } from 'nextjs-mcp-kit/context';

function MyChat() {
  const { agent, instruction } = useContextState();
  const { sendChat, selectProvider } = useContextActions();
  // agent.chat, agent.provider, agent.model, agent.routing …
}

2つのスライス、agentinstruction があります。アクションはクロージャではなく ref を通じて現在のステートを読み取るため、プロバイダーの存続期間中、すべてのアクションの同一性が安定します。これがないと sendChat はキーストロークのたびに再構築されることになります。

Presets と systemText

これらは別物であり、混同するとバグになります:

  • presets — 保存され永続化されたリスト。

  • systemText — 実際に次のターンで送信される編集可能なテキスト。

プリセットを選択すると systemTextシードされます。後から編集しても、保存済みプリセットは変更されません。プリセットは出発点であり、檻ではありません。既存の名前で保存すると、似たような重複を蓄積するのではなく、そのプリセットが編集されます(id は名前から派生します)。


テーマ

すべての色は CSS カスタムプロパティから来ています。インポート後に任意のプロパティを上書きするだけです。これがテーマのすべてです:

:root {
  --mcp-bubble-user: #dcfce7;
  --mcp-border: #cbd5e1;
}

ライトとダークはどちらも prefers-color-scheme で定義されています。


永続化

指示プリセットとツールは NEXTJS_MCP_DATA_DIR(デフォルトは ./.data)の下に JSON として保存されます。これは再起動後も残る最小限のものです。.gitignore.data/ を追加してください。

.data/
  instructions.json
  tools.json

これはファイルストアなので、サーバーレスではインスタンスごとに存在し、一時的です。バンドルのファイルシステムは /tmp を除いて読み取り専用で、/tmp は呼び出しの間に消去されます。永続性が必要な場合は、2つのファイルを置き換えてください。ルートが読み書きするのは src/store/instructions.tssrc/store/tools.ts の2箇所だけです。

スキルの本文はツールレコード上のフィールドであり、ディスク上のファイルではありません。 ドキュメントをアップロードしても SKILL.md がどこかに作成されることはなく、このパッケージがアプリのソースツリーに書き込むことは一切ありません。


MCP クライアントの接続

{
  "mcpServers": {
    "nextjs-mcp-kit-local": {
      "type": "http",
      "url": "http://localhost:3000/api/mcpserver/mcp"
    }
  }
}

/mcp サフィックスに注意してください。このルートは動的な [transport] セグメントであるため、クライアントを /api/mcpserver だけに向けても接続できません。

このエンドポイントは公開された表面であり、プライベートな扉ではありません。アプリをデプロイすると、誰でも自分のモデルと自分のキーを使って、自分の MCP クライアントを https://your-app.example.com/api/mcpserver/mcp に向けることができます。そこにあなたの持ち物は何もありません。彼らはあなたが追加したすべてのプロンプトとすべてのツールを取得でき、/mcp-dashboard にはその内容が正確に表示されます。


意図的に行わないこと

  • /chat にツールはありません。 そのルートは意図的にメッセージのみを送信します。ツールは /api/agent-chat と上記の4つのページにあります。

  • /api/chat にストリーミングはありません。 そのレスポンスは全体として届き、その形は変わっていません。/api/agent-chat はストリーミングします。

  • 認証はありません。 これらのルートはご自身の認証の背後にマウントしてください。/api/mcpserver/mcp は設計上公開されていることに注意してください。これは向けられることを意図しています。

  • .docx.pdf のアップロードはありません。 .md.txt のみです。なぜなら、それらをサポートしても、インストールするパッケージに依存関係が一切追加されないからです。フォーマットの追加は src/server/extractText.ts の1つの分岐です。

  • データベースはありません。 ツールとプリセットは JSON ファイルです。サーバーレスではインスタンスごとに存在し、一時的です。2つのストアファイルを置き換えてください。

  • 「後で使うため」の事前構築はありません。 プレースホルダーレジストリも、死んだ抽象化もありません。


要件

Next.js ≥ 16(App Router)、React ≥ 18.3、Node ≥ 20.9。Next 16.2 と React 19.2 でテスト済み。


注記

nextjs-mcp-kit アーキテクチャは、公開されたクライアントサイドコンポーネントと安全なサーバーサイド実行を分離する厳格な境界を実装しています。React ベースのクライアント層は、インタラクティブな状態とチャットインターフェースを調整しますが、機密の環境変数やサードパーティの認証情報については完全に認識しません。セキュリティは、すべての API キー、ローカルツール実行、直接の LLM 呼び出しが、安全な Node.js ランタイムの Next.js Route Handlers の背後にのみ存在することで維持されます。これらの境界間の通信は、ユーザー開始イベントに対する標準的な HTTP POST アクションと、単方向のリアルタイムデータストリーミングのための Server-Sent Events (SSE) を中心に構成されています。この設定により、複雑なマルチエージェントワークフローは、厳格な現代のエンタープライズセキュリティガイドラインに準拠しながら、高い応答性を維持します。

nextjs-mcp-kit アーキテクチャは、公開されたクライアントサイドコンポーネントと安全なサーバーサイド実行を分離する厳格な境界を実装しています。React ベースのクライアント層は、インタラクティブな状態とチャットインターフェースを調整しますが、機密の環境変数やサードパーティの認証情報については完全に認識しません。セキュリティは、すべての API キー、ローカルツール実行、直接の LLM 呼び出しが、安全な Node.js ランタイムの Next.js Route Handlers の背後にのみ存在することで維持されます。これらの境界間の通信は、ユーザー開始イベントに対する標準的な HTTP POST アクションと、単方向のリアルタイムデータストリーミングのための Server-Sent Events (SSE) を中心に構成されています。この設定により、複雑なマルチエージェントワークフローは、厳格な現代のエンタープライズセキュリティガイドラインに準拠しながら、高い応答性を維持します。

このパッケージの興味深い点は、あなたの時間をほとんど必要としないことです。

通常は作業となるものすべて — プロバイダーの継ぎ目、ツール呼び出しループ、ツールの宣言方法と結果の返却方法について2つのプロバイダーが食い違っていること、ストリーミング、MCP サーバー、永続化 — は完了しています。コピーではなくインストールです。npm update しても完了したままです。そして、そのどれもがあなたが読んだり、所有したり、保守したりする必要のあるコードではありません。

あなたに残されているのは、本当にあなたのものであった唯一の部分、チャットに何を知ってもらうかを決めることです。それは、名前、いつ使うかを説明する一文、そして答えです。ブラウザのフォームに1分以内で記入します。それを10個用意すれば、どんな汎用アシスタントよりもあなたのアプリをよく知るチャットができあがります。なぜなら、あなたの営業時間、返品期間、配送ルールを知っているのは他に誰もいないからです。

そのため、作業の形は異例です。午後ひとつ分で、そのほとんどはツールスキーマやプロバイダー API についてではなく、訪問者が実際に何を尋ねるかを考えることに費やされます。デモは構築が短く、見せたときの効果は不釣り合いなほど良いものです。なぜなら、人々が感心するもの — あなたのアプリについてそれを知っていた — は、数か月かかった部分ではなく、1分で済んだ部分から生まれるからです。

始める前に知っておく価値のあることが2つあります。ここで過大評価されることは何もありません。これは設計上特化型のチャットです。与えた内容から答えるのが非常に得意で、汎用アシスタントになろうとはしていません。また、このパッケージのどこにも認証はありません/add-tool/mcp-dashboard は訪問者ではなくあなたのものです。ご自身の認証の背後に置くか、公開アプリにはマウントしないでください。

それ以外は、これを使って何かを作りに行ってください。これは賞賛されるためではなく、拡張されるために書かれました。新しいプロバイダーは1つのファイルと1つの配列エントリ、新しいツール種別は1つの分岐、ストアは実際のデータベースと交換する2つのファイルです。これを使って何かを作ったら、ぜひ見せてほしいと思います。


ありがとう ❤️

このキットは、他の人々の実質的な仕事の上に載っている薄いものです。

Ollama ❤️ — ローカルモデルを本当に簡単にしてくれたことに対して。アカウントもキーも請求もありません。モデルを pull すれば答えてくれます。それが、nextjs-mcp-kit がインストールした瞬間に役立つ理由のすべてであり、デフォルトプロバイダーがローカルなものである理由です。

ClaudeAnthropic ❤️ — モデルのために、そして Model Context Protocol のために。

MCPは、/ ルートが構築されている基盤であり、囲い込みとして保持されるのではなく、オープンな 仕様として公開されました。このパッケージは、それがなければこの形で 存在しなかったでしょう。

両方のプロバイダーは、意図的にここでは第一級です。一方はローカルで無料、もう一方は ホスト型で優れており、プロバイダーのシームは、どちらかが勝つ必要がないように存在しています。

ライセンス

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A drop-in Model Context Protocol server implementation for Next.js projects that enables AI tools, prompts, and resources integration using the Vercel MCP Adapter.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A sample implementation of Model Context Protocol server using Next.js and the Vercel MCP Adapter, allowing developers to create custom AI agent backends with tools, prompts, and resources.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that bridges MCP clients with local LLM services, enabling seamless integration with MCP-compatible applications through standard tools like chat completion, model listing, and health checks.
    -