mcpField
M
MCP Servers for Cursor IDE

MCP Servers for Cursor IDE

ローカル
github.com/michael-trullion開発ツール147 週間前に更新

MCP Servers for Cursor IDE について

Cursor IDE向けにMCPサーバーをまとめたTypeScriptプロジェクトです。PostgreSQL、Kubernetes、PDFの機能を備え、個別または一括で起動するスクリプトを提供します。

主な機能

  1. 01PostgreSQLのクエリとスキーマ確認
  2. 02KubernetesのPod管理とログ取得
  3. 03PDFのテキストとフォーム処理
  4. 04個別・一括起動用スクリプト
  5. 05環境変数によるサービス設定

活用シーン

  1. 01データベースのテーブル確認とSQL実行
  2. 02Podの確認とKubernetesログ取得
  3. 03PDFテキスト抽出やフォーム更新
  4. 04Cursorを複数のMCPサーバーに接続

MCP 対応

Cursor IDE向けのMCPサーバーを提供し、stdioで通信します。データベース、Kubernetes、PDFのツールをCursorに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Cursor IDE 用 MCP サーバー

このプロジェクトでは、Cursor IDE と連携するように設計された複数の Model-Context-Protocol(MCP)サーバーを提供しています。MCP サーバーを利用すると、標準化された通信プロトコルを通じて、Cursor が外部のツールや機能を活用できます。

目次

前提条件

  • Node.js(v16 以降)
  • npm または yarn

使い方

  1. このリポジトリをクローンします。

    git clone https://github.com/yourusername/mcp-servers.git
    cd mcp-servers
    
  2. 依存関係をインストールし、すべてをセットアップします。

    npm run setup
    

    このコマンドでは、次の処理が行われます。

    • すべての依存関係をインストールします
    • TypeScript プロジェクトをビルドします
    • Cursor IDE との連携に必要なスクリプトを生成します
    • Cursor で各サーバーを設定する手順を表示します
  3. Cursor IDE を設定します。

    • Cursor IDE を開きます
    • Cursor の設定 > 機能 > Mcp Servers に移動します
    • 「Add New Mcp Server」をクリックします
    • サーバー名(例:「postgres」)を入力します
    • 「Connection Type」で「command」を選択します
    • 「command」に prepare スクリプトが示すパスを貼り付けます
    • 「Save」をクリックします
  4. 環境変数を設定します。

    • .env.example ファイルを .env にコピーします
    • 各サービスの変数を独自の認証情報に更新します
  5. Cursor IDE で MCP を使用します。

    • コンポーザーを開きます
    • エージェントモードを使用していることを確認します(claude 3.7 sonnet thinking を推奨します)
    • Cursor に送信するメッセージを入力します

MCP とは?

Model Context Protocol(MCP)は、アプリケーションが LLM(大規模言語モデル)にコンテキストを提供する方法を標準化するオープンプロトコルです。MCP は Cursor IDE と外部ツールの間の通信インターフェースと考えることができます。MCP サーバーは、Cursor IDE の機能を拡張するために使用できるツールを公開します。

プロジェクト構成

mcp-servers/
├── src/
│   ├── servers/                  # Individual MCP servers
│   │   ├── postgres-server/      # PostgreSQL integration server
│   │   │   └── postgres-server.ts
│   │   ├── kubernetes-server/    # Kubernetes integration server
│   │   │   └── kubernetes-server.ts
│   │   ├── lease-pdf-server/     # PDF processing server
│   │   │   └── pdf-server.ts
│   │   └── ... (more servers)
│   ├── template/                 # Reusable templates
│   │   └── mcp-server-template.ts
│   ├── index.ts                  # Server runner utility
│   └── run-all.ts                # Script to run all servers
├── package.json
└── tsconfig.json

利用可能なサーバー

現在、次の MCP サーバーを利用できます。

  1. PostgreSQL サーバー - クエリの実行やスキーマ情報の取得に使用する PostgreSQL データベースへのアクセスを提供します
  2. Kubernetes サーバー - Pod の管理、コマンドの実行、ログの取得に使用する Kubernetes クラスターへのアクセスを提供します
  3. PDF サーバー - テキスト抽出、フォームフィールドの読み書き、PDF の生成など、PDF ドキュメントの処理機能を提供します

サーバーの設定

すべてのサーバーは環境変数で設定します。プロジェクトのルートに .env ファイルを作成するか、.env.example からコピーして、使用するサービスを設定してください。

# PostgreSQL Configuration (for PostgreSQL server)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=your_database_name
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
# POSTGRES_SSL_MODE=require # Uncomment if SSL is required
# POSTGRES_MAX_CONNECTIONS=10 # Optional: limit connection pool size

# Kubernetes Configuration (for Kubernetes server)
KUBECONFIG=/path/to/your/kubeconfig
# Alternative Kubernetes configuration:
# KUBE_API_URL=https://your-kubernetes-api-server
# KUBE_API_TOKEN=your-kubernetes-service-account-token

# PDF Server requires no additional configuration

利用可能なツール

PostgreSQL サーバーのツール
  • mcp__get_database_info - 接続先データベースの情報を取得します
  • mcp__list_tables - 現在のデータベーススキーマにあるすべてのテーブルを一覧表示します
  • mcp__get_table_structure - 指定したテーブルのカラム定義を取得します
  • mcp__execute_query - データベースに対してカスタム SQL クエリを実行します
Kubernetes サーバーのツール
  • get_pods - 指定したネームスペースの Pod を取得します。フィールドセレクターとラベルセレクターを任意で指定できます
  • find_pods - 指定したネームスペースで、名前のパターンに一致する Pod を検索します
  • kill_pod - 指定したネームスペースの Pod を削除します
  • exec_in_pod - 指定した Pod とコンテナーでコマンドを実行します
  • get_pod_logs - 指定した Pod のログを取得します。コンテナー、行数、前のインスタンスを指定できます
PDF サーバーのツール
  • read_pdf - PDF ドキュメントからテキストコンテンツとフォームフィールドのデータを抽出します

    • パラメーター: input(文字列)- PDF ファイルのパス、または Base64 エンコードされた PDF コンテンツ
    • 戻り値: 成功ステータス、ページ数、抽出されたテキスト、フォームフィールド、メタデータを含む JSON
  • write_pdf - コンテンツとフォームフィールドの更新を使って、新しい PDF を作成するか、既存の PDF を変更します

    • パラメーター:
      • content(オブジェクト)- 書き込むコンテンツ(テキストおよび/またはフォームフィールド)
      • templatePdf(省略可能な文字列)- テンプレート PDF のファイルパス、または Base64 コンテンツ
      • outputPath(省略可能な文字列)- 出力ファイルのパス(指定されていない場合は Base64 を返します)
    • 戻り値: 成功ステータス、出力パス、Base64 データ(該当する場合)を含む JSON

サーバーの実行

クイックスタート

セットアップコマンドを実行すると、Cursor IDE で直接使用できる、サーバーごとのシェルスクリプトが作成されます。 npm run setup を実行すると、各サーバーの設定手順が表示されます。

ヘルパースクリプトを使ったサーバーの実行

付属のヘルパースクリプトを使って特定のサーバーを実行するには:

npm run server -- [server-name]

たとえば、postgres サーバーを実行するには:

npm run server -- postgres

または、PDF サーバーを実行するには:

npm run server -- pdf

これにより、TypeScript コードが自動的にビルドされ、サーバーが起動します。

単一サーバーの手動実行

特定のサーバーを手動で実行するには:

npm run dev -- [server-name]

たとえば、postgres サーバーを実行するには:

npm run dev -- postgres

または、PDF サーバーを実行するには:

npm run dev -- pdf
すべてのサーバーの実行

すべてのサーバーを同時に実行するには:

npm run dev:all
利用可能なサーバーの一覧表示

利用可能なすべてのサーバーの一覧を表示するには:

npm run dev -- --list

MCP サーバーのテスト

Cursor IDE に接続する前に、MCP サーバーの機能をテストできます。

  1. TypeScript プロジェクトをビルドします。

    npm run build
    
  2. サーバーを実行します。

    npm run start:postgres
    

    または、PDF サーバーの場合:

    npm run start:pdf
    
  3. 便利なように、このプロジェクトには Cursor 用のすぐに使えるスクリプトが含まれています。

    /path/to/mcp-servers/cursor-mcp-server.sh [server-name]
    

    このスクリプトのパスは、Cursor IDE の設定で直接使用できます。サーバー名を指定しない場合は、postgres サーバーが既定で使用されます。例:

    # Run postgres server (default)
    /path/to/mcp-servers/cursor-mcp-server.sh
    
    # Run PDF server
    /path/to/mcp-servers/cursor-mcp-server.sh pdf
    
    # Run kubernetes server
    /path/to/mcp-servers/cursor-mcp-server.sh kubernetes
    

新しい MCP サーバーの追加

このプロジェクトに新しい MCP サーバーを追加するには:

  1. src/servers/ の下にサーバー用の新しいディレクトリを作成します。

    mkdir -p src/servers/my-new-server
    
  2. サーバーの実装を作成します。

    // src/servers/my-new-server/my-new-server.ts
    import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
    import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
    import { z } from "zod";
    
    // Create an MCP server
    const server = new McpServer({
      name: "My New Server",
      version: "1.0.0",
    });
    
    // Add your tools
    server.tool(
      "my-tool",
      {
        param1: z.string().describe("Parameter description"),
        param2: z.number().describe("Parameter description"),
      },
      async ({ param1, param2 }) => {
        // Tool implementation
        return {
          content: [{ type: "text", text: `Result: ${param1} ${param2}` }],
        };
      }
    );
    
    // Start the server
    async function startServer() {
      const transport = new StdioServerTransport();
      await server.connect(transport);
      console.log("My New Server started and ready to process requests");
    }
    
    // Start the server if this file is run directly
    if (process.argv[1] === new URL(import.meta.url).pathname) {
      startServer();
    }
    
    export default server;
    
  3. src/index.ts と src/run-all.ts のサーバー一覧にサーバーを追加します。

    const servers = [
      // ... existing servers
      {
        name: "my-new-server",
        displayName: "My New Server",
        path: join(__dirname, "servers/my-new-server/my-new-server.ts"),
      },
    ];
    
  4. package.json のスクリプトを更新します(省略可能)。

    "scripts": {
      // ... existing scripts
      "dev:my-new-server": "ts-node --esm src/servers/my-new-server/my-new-server.ts"
    }
    

MCP サーバー開発について

MCP サーバーを開発する際は、次の点に留意してください。

  1. ツールは、機能を公開するための主要な手段です。各ツールには次の要件があります。

    • 一意の名前を付ける
    • Zod を使ってパラメーターを定義し、検証する
    • 標準化された形式で結果を返す
  2. 通信には、Cursor との連携のために stdio を使用します。

  3. レスポンス形式は重要です。MCP サーバーは、次の正確な形式に従う必要があります。

    • ツールは、テキストレスポンスに type: "text" を指定したコンテンツを返す必要があります
    • type: "json" のような未サポートの型を直接使用しないでください
    • 構造化データの場合は、JSON 文字列に変換して type: "text" を使用します
    • 例:
      return {
        content: [
          { type: "text", text: "Human-readable response" },
          { type: "text", text: JSON.stringify(structuredData, null, 2) },
        ],
      };
      

プロジェクトのビルド

プロジェクトをビルドするには、次を実行します。

npm run build

コメント

MCP は初めてですか?

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

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