MCP Servers for Cursor IDE について
Cursor IDE向けにMCPサーバーをまとめたTypeScriptプロジェクトです。PostgreSQL、Kubernetes、PDFの機能を備え、個別または一括で起動するスクリプトを提供します。
主な機能
- 01PostgreSQLのクエリとスキーマ確認
- 02KubernetesのPod管理とログ取得
- 03PDFのテキストとフォーム処理
- 04個別・一括起動用スクリプト
- 05環境変数によるサービス設定
活用シーン
- 01データベースのテーブル確認とSQL実行
- 02Podの確認とKubernetesログ取得
- 03PDFテキスト抽出やフォーム更新
- 04Cursorを複数のMCPサーバーに接続
MCP 対応
Cursor IDE向けのMCPサーバーを提供し、stdioで通信します。データベース、Kubernetes、PDFのツールをCursorに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cursor IDE 用 MCP サーバー
このプロジェクトでは、Cursor IDE と連携するように設計された複数の Model-Context-Protocol(MCP)サーバーを提供しています。MCP サーバーを利用すると、標準化された通信プロトコルを通じて、Cursor が外部のツールや機能を活用できます。
目次
- 使い方
- MCP とは?
- プロジェクト構成
- 利用可能なサーバー
- サーバーの設定
- 利用可能なツール
- サーバーの実行
- MCP サーバーのテスト
- 新しい MCP サーバーの追加
- MCP サーバー開発について
- プロジェクトのビルド
前提条件
- Node.js(v16 以降)
- npm または yarn
使い方
-
このリポジトリをクローンします。
git clone https://github.com/yourusername/mcp-servers.git cd mcp-servers -
依存関係をインストールし、すべてをセットアップします。
npm run setupこのコマンドでは、次の処理が行われます。
- すべての依存関係をインストールします
- TypeScript プロジェクトをビルドします
- Cursor IDE との連携に必要なスクリプトを生成します
- Cursor で各サーバーを設定する手順を表示します
-
Cursor IDE を設定します。
- Cursor IDE を開きます
- Cursor の設定 > 機能 > Mcp Servers に移動します
- 「Add New Mcp Server」をクリックします
- サーバー名(例:「postgres」)を入力します
- 「Connection Type」で「command」を選択します
- 「command」に prepare スクリプトが示すパスを貼り付けます
- 「Save」をクリックします
-
環境変数を設定します。
.env.exampleファイルを.envにコピーします- 各サービスの変数を独自の認証情報に更新します
-
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 サーバーを利用できます。
- PostgreSQL サーバー - クエリの実行やスキーマ情報の取得に使用する PostgreSQL データベースへのアクセスを提供します
- Kubernetes サーバー - Pod の管理、コマンドの実行、ログの取得に使用する Kubernetes クラスターへのアクセスを提供します
- 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 サーバーの機能をテストできます。
-
TypeScript プロジェクトをビルドします。
npm run build -
サーバーを実行します。
npm run start:postgresまたは、PDF サーバーの場合:
npm run start:pdf -
便利なように、このプロジェクトには 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 サーバーを追加するには:
-
src/servers/の下にサーバー用の新しいディレクトリを作成します。mkdir -p src/servers/my-new-server -
サーバーの実装を作成します。
// 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; -
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"), }, ]; -
package.json のスクリプトを更新します(省略可能)。
"scripts": { // ... existing scripts "dev:my-new-server": "ts-node --esm src/servers/my-new-server/my-new-server.ts" }
MCP サーバー開発について
MCP サーバーを開発する際は、次の点に留意してください。
-
ツールは、機能を公開するための主要な手段です。各ツールには次の要件があります。
- 一意の名前を付ける
- Zod を使ってパラメーターを定義し、検証する
- 標準化された形式で結果を返す
-
通信には、Cursor との連携のために stdio を使用します。
-
レスポンス形式は重要です。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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。