🚀 MCPCFC - ColdFusion MCP Server について
MCPCFCは、既存のCFML業務ロジックをAIアシスタントから呼び出せるようにするMCPサーバーです。サンプルツールを備え、HTTP接続とローカルクライアント向けのstdioブリッジに対応しています。
主な機能
- 01CFMLコンポーネントをMCPツール化
- 02ファイル、HTTP、PDF、データベース、メールのサンプルツール
- 03AbstractToolによるカスタムツール登録
- 04Streamable HTTPとstdioブリッジ
- 05入力検証と構造化結果
活用シーン
- 01既存のColdFusion業務ロジックをAIアシスタントに公開
- 02ColdFusionでのPDF生成や処理
- 03制限付きの読み取り専用データベース検索
- 04Claude DesktopをHTTPベースのサーバーに接続
MCP 対応
Streamable HTTP経由でColdFusionのツールをMCPクライアントに公開します。ブリッジにより、Claude Desktopなどのクライアント向けにstdioへ変換できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCPCFC — 世界初のColdFusion MCP サーバー
ColdFusionアプリがAIと連携できるようになりました。AIはCFツールを利用できます。
MCPCFCはAdobe ColdFusionをClaude、ChatGPT、Cursor、VS Codeなど、Model Context Protocolに対応するあらゆるAIアシスタントに接続します。既存のCFMLコードをAIから呼び出せるツールに変換します。書き換えは不要です。
請求書を作成するColdFusion関数がありますか?それがMCPツールになります。独自データベースを検索する関数も、ツールです。社内ワークフローを開始する関数も、ツールです。ColdFusionでできることなら、AIから呼び出せます。
┌─────────────┐ ┌──────────────┐ ┌──────────────────┐
│ Claude / │─────▶│ MCPCFC │─────▶│ Your CF App │
│ ChatGPT / │◀─────│ MCP Server │◀─────│ & Business Logic│
│ Cursor │ └──────────────┘ └──────────────────┘
└─────────────┘ JSON-RPC 2.0 PDF, Email, DB,
+ Stdio Bridge Files, HTTP, ...
これが重要な理由
政府機関、金融機関、医療システム、そして世界中の企業で、数百万行ものColdFusionコードが現在も本番環境で稼働しています。そのコードは機能しています。しかし、人々の働き方を変えつつあるAI搭載ツールから、ますます切り離されています。
MCPCFCはその隔たりを埋めます。CFのビジネスロジックをPythonやTypeScriptで書き直す代わりに、MCPツールとしてラップすれば、AIアシスタントから直接呼び出せます。レガシーコードベースが一夜にしてAIと接続された資産になります。
対象となる方:
- エンタープライズチーム:長年にわたるCFビジネスロジックを活用しつつ、書き換えずにAI機能を導入したい方
- 政府機関:レガシーCFシステムを段階的に近代化したい方
- CF開発者:すでに機能しているものを基盤に、次世代のインテリジェントアプリケーションを構築したい方
- デジタルトランスフォーメーションの責任者:レガシーから最先端技術へ、低リスクで移行する方法を探している方
含まれるもの
MCPCFCには、このパターンを実証する6つの概念実証ツールが含まれています。
| ツール | 機能 |
|---|---|
hello | シンプルな挨拶。接続の確認に便利です |
fileOperations | サンドボックス化されたファイル入出力(read、write、list、delete、exists、info) |
httpRequest | 外部へのHTTPリクエスト(プライベート/内部IPアドレスへのアクセスをブロックします) |
pdf | ColdFusion内蔵のPDFエンジンを使って、PDFの生成、テキスト抽出、結合を行います |
queryDatabase | 検証済みの読み取り専用SQLクエリ(SELECTのみ) |
sendEmail | SendGrid経由でメールを送信します(SENDGRID_API_KEYが必要です) |
意図的にシンプルなツールです。真価は、独自のツールを追加することで発揮されます。詳しくは、以下のカスタムツールの追加をご覧ください。
テスト済みの環境
- ✅ macOS + Adobe ColdFusion 2025
- ⚠️ Windows/Linuxや他のCFMLエンジン(Lucee、BoxLangなど)ではまだテストされていません
クイックスタート
オプション1:ブラウザテストクライアント
- このリポジトリをColdFusionのウェブルートにクローンします(またはシンボリックリンクを作成します)。
- 次のURLにアクセスします:
http://localhost:8500/mcpcfc/client-examples/test-client.cfm - Connect → List Tools → Call Hello Toolの順にクリックします。
オプション2:Claude Desktop(ローカルstdio)
Claude Desktopはstdio経由でローカルのMCPサーバーと通信します。MCPCFCはHTTPベースのため、両者を変換するブリッジスクリプトが付属しています。
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)を編集します。
{
"mcpServers": {
"coldfusion-mcp": {
"command": "/absolute/path/to/mcpcfc/bridge/cf-mcp-bridge.sh",
"env": {
"MCPCFC_URL": "http://localhost:8500/mcpcfc"
}
}
}
}
その後、Claude Desktopを完全に終了して再起動します。
オプション3:リモート/Streamable HTTP
MCPCFCは、次のエンドポイントであらゆるMCPクライアントからの直接HTTP接続にも対応しています。
BASE_URL/endpoints/mcp.cfm
Claude Code、ChatGPT、Codex、Cursor、VS Code、Zed、Kimi、Antigravityのコピー&ペースト用設定については、**CLIENTS.md**をご覧ください。
カスタムツールの追加
ここからMCPCFCを自分仕様にできます。各ツールはAbstractToolを継承するColdFusionコンポーネント(.cfc)です。基底クラスには入力検証、構造化結果のヘルパー、MCPプロトコルへの自動登録機能が備わっています。ビジネスロジックを記述すれば、MCPCFCが接続部分を処理します。
パターン
すべてのツールは次の3つの手順で作成します。
AbstractToolを継承する.cfcファイルをcore/tools/に作成しますinit()でツールを定義します(名前、説明、入力スキーマ)MCPServer.cfcに1行追加して登録します
これだけです。完全な例を見ていきましょう。
例:WeatherTool の構築
外部 API 経由で天気を確認する機能を AI アシスタントに追加したいとします。ツール全体は次のとおりです。
ステップ 1 — core/tools/WeatherTool.cfc を作成します:
/**
* WeatherTool.cfc
* Returns current weather for a given city
*/
component extends="AbstractTool" output="false" {
public function init() {
// 1. Identity — how the tool appears in MCP
setName("getWeather");
setTitle("Get Weather");
setDescription("Returns current weather conditions for a given city name.");
// 2. Input schema — tells the AI what parameters to send
var inputSchema = structNew("ordered");
inputSchema["type"] = "object";
inputSchema["properties"] = structNew("ordered");
var citySchema = structNew("ordered");
citySchema["type"] = "string";
citySchema["description"] = "City name (e.g., 'Pittsburgh', 'New York')";
inputSchema.properties["city"] = citySchema;
inputSchema["required"] = ["city"];
setInputSchema(inputSchema);
return this;
}
public struct function execute(required struct toolArgs) {
// Validate the required parameter exists
validateRequired(arguments.toolArgs, ["city"]);
var city = trim(arguments.toolArgs.city);
logExecution("Weather requested", { city: city });
try {
// Call an external weather API
var apiUrl = "https://wttr.in/#encodeForURL(city)#?format=j1";
var httpService = new http(method="GET", url=apiUrl, timeout=10);
var response = httpService.send().getPrefix();
if (response.statusCode contains "200") {
var data = deserializeJson(response.fileContent);
var current = data.current_condition[1];
var result = {
"city": city,
"temperature_f": current.temp_F,
"temperature_c": current.temp_C,
"condition": current.weatherDesc[1].value,
"humidity": current.humidity & "%",
"wind_mph": current.windspeedMiles
};
// Return structured JSON — the AI will interpret it
return jsonResult(result);
} else {
return errorResult("Weather API returned status: #response.statusCode#");
}
} catch (any e) {
return errorResult("Failed to fetch weather: #e.message#");
}
}
}
ステップ 2 — core/MCPServer.cfc に登録します:
core/MCPServer.cfc を開き、registerDefaultTools() メソッドの toolClasses 配列にツールクラスを追加します:
var toolClasses = [
"core.tools.HelloTool",
"core.tools.PDFTool",
"core.tools.SendGridEmailTool",
"core.tools.DatabaseTool",
"core.tools.FileTool",
"core.tools.HttpClientTool",
"core.tools.WeatherTool" // <-- add your tool here
];
ステップ 3 — 再起動してテストします:
ColdFusion アプリケーションを再起動し(restart-app.cfm にアクセスするか、CF サービスを再起動してください)、その後 MCP クライアントを再起動します。新しいツールがツール一覧に表示され、AI がすぐに呼び出せるようになります。
基底クラスが提供する機能
AbstractTool.cfc には、ビジネスロジックに専念できるよう、次のヘルパーメソッドが用意されています:
| メソッド | 用途 |
|---|---|
textResult(string) | プレーンテキストの応答を返します |
jsonResult(data) | 構造化された JSON データを返します |
errorResult(message) | isError フラグ付きでエラーを返します |
imageResult(base64Data, mimeType) | Base64 エンコードされた画像を返します |
resourceResult(uri, text, mimeType) | 埋め込み MCP リソースを返します |
validateRequired(args, paramArray) | 必須パラメーターが欠けている場合に例外をスローします |
validateTypes(args, typeMap) | パラメーターの型(string、numeric、boolean、array、struct)を検証します |
getParam(args, name, default) | フォールバックのデフォルト値を指定してパラメーターを取得します |
logExecution(message, data) | (ロガーが設定されている場合)ツールの動作をログに記録します |
実用的なツールのアイデア
このパターンを理解したら、組織で ColdFusion がすでに得意としていることを活用できないか考えてみましょう。
- 請求書ジェネレーター — 既存の
cfpdfレポート処理をラップします - 顧客検索 — CRM データベースをクエリし、結果を AI に返します
- ドキュメント変換 — CF に組み込まれた Word/Excel/PDF 機能を活用します
- メール作成 — 既存のメールインフラストラクチャを通じてメールを作成、送信します
- レポート実行 — ストアドプロシージャを実行し、整形した結果を返します
- ファイル処理 — アップロードされた CSV を解析し、データを変換して、出力を書き込みます
- レガシー API ラッパー — SOAP サービスや社内 REST エンドポイントを AI に公開します
これらはどれも、単一の .cfc ファイルと登録用の 1 行で実現できます。
スモークテスト
Stdio(Claude Desktop 推奨)
MCPCFC_URL="http://localhost:8500/mcpcfc" ./scripts/verify-stdio.sh
Streamable HTTP(リモートクライアント向け)
MCPCFC_URL="http://localhost:8500/mcpcfc" ./scripts/verify-http.sh
設定
config/settings.cfm を編集して、次の項目をカスタマイズします:
protocolVersion(デフォルト:2025-06-18)defaultDatasource(デフォルト:mcpcfc_ds)- ファイルサンドボックスのパスとサイズ制限
- CORS 設定
データベースのセットアップ(任意)
queryDatabase ツールは、mcpcfc_ds という名前の ColdFusion データソースを想定しています:
- ColdFusion Administrator でデータソースを設定します
- ブラウザーで
database-setup.cfmにアクセスしてサンプルスキーマを読み込むか、mcpcfc_db.sqlを MySQL/MariaDB にインポートします
デバッグ
- Claude Desktop の MCP ログ(macOS):
~/Library/Logs/Claude/mcp-server-coldfusion-mcp.log - ブリッジのデバッグモード: 設定の
envブロックでMCPCFC_DEBUG=1を設定します - 自己署名 HTTPS: 信頼されていないローカル証明書を使用する場合は、
MCPCFC_INSECURE=1を設定します
セキュリティに関する警告
MCPCFC は強力なリモート制御機能を備えており、ファイルシステムへのアクセス、HTTP リクエストの送信、データベースのクエリ、メールの送信、ドキュメントの生成が可能です。次の対策を講じずに、一般公開しないでください:
- 認証
- 厳格な CORS/オリジン制限
- レート制限
- ツールごとの認可とサンドボックス化
プロジェクト構成
Application.cfc
bridge/
cf-mcp-bridge.sh # Stdio ⇄ HTTP bridge for Claude Desktop
client-examples/
test-client.cfm # Browser-based test interface
config/
routes.cfm
settings.cfm # Server configuration
core/
CapabilityManager.cfc
JSONRPCHandler.cfc
MCPServer.cfc # Tool registration happens here
TransportManager.cfc
tools/
AbstractTool.cfc # Base class — extend this for custom tools
DatabaseTool.cfc
FileTool.cfc
HelloTool.cfc # Good reference for new tools
HttpClientTool.cfc
PDFTool.cfc
SendGridEmailTool.cfc
endpoints/
mcp.cfm # Unified MCP endpoint (JSON-RPC 2.0)
logging/
registry/
session/
scripts/
verify-stdio.sh
verify-http.sh
コントリビューション
ガイドラインについては、CONTRIBUTING.md をご覧ください。
ライセンス
MIT。詳細は LICENSE をご覧ください。
ColdFusion 2025 で @revsmoke が作成しました。コントリビューションを歓迎します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。