mcpField
B
Building MCP Servers: Part 1 — Getting Started with Resources

Building MCP Servers: Part 1 — Getting Started with Resources

ローカル
github.com/cycle-sync-ai開発ツール078 週間前に更新

Building MCP Servers: Part 1 — Getting Started with Resources について

MCP 開発者向けに、Node.js、TypeScript、`@modelcontextprotocol/sdk` を使った基本的な MCP サーバーの作成方法を解説します。ファイル、データベース、API の内容を読み取り専用リソースとして公開する例と、ツールの概要を扱います。

主な機能

  1. 01MCP リソースの概念紹介
  2. 02Node.js と TypeScript のプロジェクト設定
  3. 03URI とメタデータを持つ読み取り専用リソース
  4. 04ドキュメント、ログ、顧客データの例

活用シーン

  1. 01LLM にドキュメントやガイドを提供
  2. 02ログやエラーメッセージをリソースとして公開
  3. 03顧客データの要約をモデルに提供

MCP 対応

`@modelcontextprotocol/sdk` で MCP サーバーを構築し、読み取り専用コンテンツを MCP クライアントに公開する方法を示します。MCP ツールについても簡潔に紹介します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP サーバーの構築:パート 1 — リソースの概要

このチュートリアルでは、Claude などの大規模言語モデル(LLM)に読み取り専用リソースを公開する、基本的な MCP(Model Context Protocol)サーバーのセットアップ方法を説明します。MCP とは何か、リソースが役立つ理由、そして @modelcontextprotocol/sdk を使って Node.js/TypeScript プロジェクトを初期化する方法を学びます。

目次

Model Context Protocol とは?

Model Context Protocol(MCP)は、LLM が外部のデータやサービスと安全にやり取りできるようにする標準化されたインターフェースです。MCP を使うと、ファイル、データベース、API などを、制御された方法で AI モデルに公開できます。

MCP リソースとは?

リソースは、一意の URI を介してコンテンツ(テキストまたはバイナリ)を公開する読み取り専用のエンドポイントです。次のような例があります。

  • file:///path/to/file.txt
  • database://users/123
  • api://weather/latest

各リソースには、表示名や MIME タイプなどのメタデータがあります。

リソースを使う理由

リソースを使うと、LLM は次の操作を実行できます。

  • ファイルやデータベースを読み取る
  • コマンドを実行する
  • API にアクセスする
  • ローカルツールとやり取りする

すべてのやり取りにはユーザーの明示的な許可が必要なため、安全性と監査可能性が確保されます。

サーバーの例

ドキュメントサーバー

ドキュメントを公開します。

docs://api/reference     → API documentation
docs://guides/getting-started  → User guides
ログ分析サーバー

システムログを提供します。

logs://system/today      → Today's logs
logs://errors/recent     → Recent error messages
顧客データサーバー

顧客に関する分析情報を提供します。

customers://profiles/summary   → Customer overview
customers://feedback/recent    → Latest feedback

はじめに

前提条件
  • Node.js(>= 16)
  • npm(>= 8)
  • TypeScript
インストール
mkdir hello-mcp
cd hello-mcp
npm init -y
npm install @modelcontextprotocol/sdk
npm install -D typescript @types/node
プロジェクトのセットアップ
  1. package.json を更新します。

    {
      "name": "hello-mcp",
      "version": "1.0.0",
      "type": "module",
      "scripts": {
        "build": "tsc",
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "dependencies": {
        "@modelcontextprotocol/sdk": "^1.1.0"
      },
      "devDependencies": {
        "typescript": "^5.7.2",
        "@types/node": "^22.10.5"
      }
    }
    
  2. tsconfig.json を作成します。

    {
      "compilerOptions": {
        "target": "ES2022",
        "module": "Node16",
        "moduleResolution": "Node16",
        "outDir": "./build",
        "rootDir": "./src",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true
      },
      "include": ["src/**/*"]
    }
    
  3. src/ ディレクトリを作成し、MCP サーバーのコーディングを開始します。

次のステップ

トランスポートの設定や高度な機能については、パート 2 をご覧ください。

MCP ツール(動的アクション)

MCP ツール(動的アクションとも呼ばれます)を使うと、セッション中に LLM が呼び出せるカスタム関数を定義でき、静的なリソースを超えて MCP の機能を拡張できます。

ツールとプロンプトの比較

項目MCP ツールプロンプト
機能コードとアクションを実行静的な自然言語
セキュリティ制御可能で監査可能外部への影響なし
柔軟性高い(カスタムロジック)推論に限定

挨拶サーバーを完成させる

以下は、挨拶リソースを公開するシンプルな挨拶サーバーの例です。

import { ResourceServer } from "@modelcontextprotocol/sdk";

const server = new ResourceServer({ port: 3000 });

server.addResource({
  uri: "greeting://hello",
  displayName: "Greeting Resource",
  fn: async (req) => {
    const name = req.query.name || "World";
    return `Hello, ${name}!`;
  },
});

server.listen(() => console.log("Greeting server running on port 3000"));

出典と参考資料

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。