AI Agent with MCP について
AI Agent with MCPは、MCPで外部リソースを扱うAIエージェントを示すNode.jsプロジェクトです。ユーザーと挨拶のリソース、MCPクライアント、ターミナル・REST API・Cursorからの利用例を含みます。
主な機能
- 01ユーザーと挨拶のリソースを公開するMCPサーバー
- 02リソース取得用のMCPクライアント
- 03REST APIによる直接アクセス
- 04ターミナルとCursorの利用例
活用シーン
- 01登録ユーザー一覧の取得
- 02挨拶リソースの取得
- 03CursorやターミナルからMCPアクセスを試す
MCP 対応
ユーザーと挨拶のリソースを公開するMCPサーバーと、それらを利用するMCPクライアントを提供します。REST APIから直接アクセスする方法も示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
NodeJS で MCP サーバーを作成する(ai-agent-with-mcp)
このプロジェクトは、Model Context Protocol(MCP)を使用して外部リソースとやり取りする AI エージェントを実装します。
リポジトリに含まれるもの:
ユーザーとメッセージ向けの REST リソースを備えた、動作する MCP サーバー。
プロトコル経由でこれらのリソースを利用する MCP クライアント。
ターミナル、REST API、または Cursor から直接リソースにアクセスする実践的な例。
利用可能なリソース
MCP サーバーは次のリソースを提供します:
ユーザーリソース
- api://users: システムに登録されているすべてのユーザーを一覧表示します
- ID、名前、電話番号、スレッド ID などの情報を返します
- 形式:JSON
- 応答例:
{ "content": [ { "id": 1, "phoneNumber": "553496341404", "name": "Moisés Paschoalick", "threadId": "thread_bZEPVYVBvHxY9Ok6WqR63M2D" }, { "id": 2, "phoneNumber": "553496338888", "name": "José Silva", "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__" }, { "id": 3, "phoneNumber": "553496338889", "name": "Maria Antonia", "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__" } ], "pageable": { "pageNumber": 0, "pageSize": 12, "sort": { "empty": false, "sorted": true, "unsorted": false }, "offset": 0, "paged": true, "unpaged": false }, "last": true, "totalPages": 1, "totalElements": 3, "first": true, "size": 12, "number": 0, "sort": { "empty": false, "sorted": true, "unsorted": false }, "numberOfElements": 3, "empty": false }
メッセージリソース
- hello://world: シンプルな挨拶メッセージを返します
- 形式:プレーンテキスト(text/plain)
- 応答例:"Hello, World! This is my first MCP resource."
Cursor へのインストール
まず、Cursor がインストールされており、システムで npm が設定されていることを確認してください。
オプション 1:ターミナルからインストール
ターミナルで次のコマンドを実行します:
npx -y @smithery/cli@latest install @wonderwhy-er/desktop-commander --client cursor --key dda23bec-caa6-4487-a1e9-eb74e22e33eb
注:記載されているキーはあくまで例です。ご自身のキーを追加してください。
Cursor の実行中に設定を変更した場合は、再起動してください。
オプション 2:手動でインストール
mcp.json ファイルに適切なエントリを追加します:
Mac/Linux の場合:
Linux の場合:~/.config/cursor.json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@wonderwhy-er/desktop-commander",
"--key",
"dda23bec-caa6-4487-a1e9-eb74e22e33eb"
]
}
}
}
Windows の場合:
{
"mcpServers": {
"desktop-commander": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@wonderwhy-er/desktop-commander",
"--key",
"dda23bec-caa6-4487-a1e9-eb74e22e33eb"
]
}
}
}
Cursor の実行中に設定を変更した場合は、再起動してください。
オプション 3:ローカルにクローン
クローンしてビルドします:
git clone https://github.com/moises-paschoalick/ai-agent-with-mcp.git
cd ai-agent-with-mcp
npm run setup
Cursor の実行中に設定を変更した場合は、再起動してください。
セットアップコマンドは次の処理を行います:
- 依存関係をインストールする
- サーバーをビルドする
- Cursor を設定する
- 必要に応じて、Cursor の設定に MCP サーバーを追加する
使い方
MCP クライアント
このプロジェクトには、利用可能なリソースへのアクセスに使用できる MCP クライアントが含まれています:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
const client = new Client({
name: "hello-mcp-client",
version: "1.0.0"
});
const transport = new StdioClientTransport({
command: "node",
args: ["build/index.js"]
});
try {
await client.connect(transport);
// Listar recursos disponíveis
const resources = await client.listResources();
console.log("Recursos disponíveis:", resources);
// Ler o recurso de usuários
const content = await client.readResource({ uri: "api://users" });
console.log("\nLista de Usuários:", content);
} catch (error) {
console.error("Erro ao executar o cliente:", error);
}
}
main().catch(console.error);
REST API への直接アクセス
REST API を使用して、リソースに直接アクセスすることもできます:
# Listar todos os usuários
curl http://3.238.149.189:8080/users
インストールと実行
# Instalar dependências
npm install
# Compilar o projeto
npm run build
# Executar o servidor
npm start
# Executar em modo de desenvolvimento
npm run dev
要件
- Node.js(AbortController と互換性のあるバージョン)
- TypeScript
- @modelcontextprotocol/sdk
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。