MCP Hub
Back to servers

filemaker-mcp

A read-only MCP server for FileMaker that enables database analysis, metadata extraction, and global record searching through the FileMaker Data API.

Tools
16
Updated
Jan 4, 2026
Validated
Jan 9, 2026

Jaou Ensatsu Kokuryu FileMaker MCP

FileMaker Data API を通じてデータベース分析・メタデータ抽出を行う MCP(Model Context Protocol)サーバーです。

特徴

  • 読み取り専用: データの安全性を確保(作成・更新・削除は非対応)
  • メタデータ集約: レイアウト、フィールド、スクリプト情報を一括取得
  • リレーション推測: フィールド名パターンから関係性を推測(disclaimer付き)
  • グローバル検索: 複数レイアウトを横断したデータ検索
  • セキュリティ重視: パスワードのログ出力禁止、ファイルシステム書き込み禁止

クイックスタート

1. ビルド

pnpm install
pnpm run build

2. MCP 設定

本MCPサーバーは、Claude Code、Cursor、Codex など MCP 対応のAIエディタで使用できます。

Claude Code

方法 A: コマンドラインで追加(推奨)

claude mcp add filemaker \
  --transport stdio \
  --scope project \
  --env FM_SERVER=https://your-server.com \
  --env FM_DATABASE=your-database \
  --env FM_USERNAME=your-username \
  --env FM_PASSWORD=your-password \
  -- node /path/to/jaou-ensatsu-kokuryu-filemaker-mcp/dist/index.js
スコープオプション説明
--scope user全プロジェクト共通(~/.claude.json に保存)
--scope project現在のプロジェクトのみ(.mcp.json に保存、Git管理可能)

方法 B: 設定ファイルを直接編集

~/.claude.json に以下を追加:

{
  "mcpServers": {
    "filemaker": {
      "command": "node",
      "args": ["/path/to/jaou-ensatsu-kokuryu-filemaker-mcp/dist/index.js"],
      "env": {
        "FM_SERVER": "https://your-server.com",
        "FM_DATABASE": "your-database",
        "FM_USERNAME": "your-username",
        "FM_PASSWORD": "your-password"
      }
    }
  }
}

Note: Claude Desktop を使用する場合は ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)に同様の設定を追加してください。

Cursor

~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト)に以下を追加:

{
  "mcpServers": {
    "filemaker": {
      "command": "node",
      "args": ["/path/to/jaou-ensatsu-kokuryu-filemaker-mcp/dist/index.js"],
      "env": {
        "FM_SERVER": "https://your-server.com",
        "FM_DATABASE": "your-database",
        "FM_USERNAME": "your-username",
        "FM_PASSWORD": "your-password"
      }
    }
  }
}

設定後、Cursor の設定画面(File → Preferences → Cursor Settings → MCP)で「Available Tools」に表示されることを確認してください。

Codex (OpenAI)

方法 A: コマンドラインで追加

codex mcp add filemaker \
  --env FM_SERVER=https://your-server.com \
  --env FM_DATABASE=your-database \
  --env FM_USERNAME=your-username \
  --env FM_PASSWORD=your-password \
  -- node /path/to/jaou-ensatsu-kokuryu-filemaker-mcp/dist/index.js

方法 B: 設定ファイルを直接編集

~/.codex/config.toml に以下を追加:

[mcp_servers.filemaker]
command = "node"
args = ["/path/to/jaou-ensatsu-kokuryu-filemaker-mcp/dist/index.js"]

[mcp_servers.filemaker.env]
FM_SERVER = "https://your-server.com"
FM_DATABASE = "your-database"
FM_USERNAME = "your-username"
FM_PASSWORD = "your-password"

Note: Codex は CLI と VSCode 拡張機能で設定ファイルを共有しています。

3. 使用例

MCP設定後、AIエディタを起動すると FileMaker MCP ツールが利用可能になります。

# 使用例(AI への指示)
「FileMaker にログインして、顧客レイアウトのフィールド一覧を取得してください」
「売上データベースのメタデータをエクスポートしてください」
「注文テーブルで"東京"を含むレコードを検索してください」

提供ツール(16ツール)

認証系

ツール説明
fm_loginFileMaker サーバーへのログイン
fm_logoutセッション終了
fm_validate_sessionセッション有効性確認

メタデータ取得系

ツール説明
fm_get_layoutsレイアウト一覧取得
fm_get_layout_metadataフィールド定義取得
fm_get_scriptsスクリプト一覧取得
fm_list_value_lists値一覧取得

レコード操作系(読み取りのみ)

ツール説明
fm_get_recordsレコード取得(ページング対応)
fm_get_record_by_idID指定でレコード取得
fm_find_records検索クエリでレコード取得
fm_get_record_countレコード件数取得

分析系

ツール説明
fm_export_database_metadataメタデータ一括エクスポート
fm_infer_relationshipsリレーション推測
fm_analyze_portal_dataポータル構造分析
fm_global_search_data複数レイアウト横断検索
fm_global_search_fieldsフィールド名検索

主要ツールの使用例

fm_login - ログイン

環境変数が設定されている場合、引数なしでログイン可能:

// 入力(環境変数使用)
{}

// 入力(引数指定)
{
  "server": "https://your-server.com",
  "database": "YourDB",
  "username": "admin",
  "password": "password123"
}

// 出力
{
  "success": true,
  "message": "Login successful"
}

fm_get_layout_metadata - レイアウトメタデータ取得

// 入力
{
  "layout": "顧客マスタ"
}

// 出力
{
  "success": true,
  "layout": "顧客マスタ",
  "fields": [
    {
      "name": "顧客ID",
      "type": "normal",
      "result": "number",
      "autoEnter": true
    },
    {
      "name": "顧客名",
      "type": "normal",
      "result": "text"
    }
  ],
  "portalNames": ["注文履歴", "連絡先"]
}

fm_find_records - レコード検索

// 入力
{
  "layout": "注文",
  "query": [
    { "顧客名": "田中*" },
    { "都道府県": "東京都" }
  ],
  "sort": [
    { "fieldName": "注文日", "sortOrder": "descend" }
  ],
  "limit": 50
}

// 出力
{
  "success": true,
  "records": [...],
  "dataInfo": {
    "foundCount": 25,
    "returnedCount": 25,
    "totalRecordCount": 1500
  }
}

fm_export_database_metadata - メタデータエクスポート

// 入力
{
  "includeFields": true,
  "includeScripts": true
}

// 出力
{
  "success": true,
  "database": "SalesDB",
  "exportedAt": "2026-01-03T12:00:00Z",
  "layouts": [...],
  "scripts": [...]
}

環境変数

変数名必須デフォルト説明
FM_SERVERYes-FileMaker サーバー URL(HTTPS必須)
FM_DATABASEYes-データベース名
FM_USERNAMEYes-ユーザー名
FM_PASSWORDYes-パスワード
FM_API_VERSIONNovLatestData API バージョン
FM_SSL_VERIFYNotrueSSL 証明書検証(開発環境でのみfalse可)
FM_SESSION_TIMEOUTNo840セッションタイムアウト(秒)
LOG_LEVELNowarnログレベル(debug, info, warn, error)

開発

環境構築

pnpm install
cp .env.example .env  # テスト実行用

コマンド

pnpm run build       # ビルド
pnpm test            # テスト実行
pnpm run typecheck   # 型チェック
pnpm run lint        # リント
pnpm run lint:fix    # リント自動修正

制限事項

  • FileMaker Data API の制約により、テーブル一覧やリレーション定義の直接取得は不可
  • レイアウトに配置されたフィールドのみ操作可能
  • fm_infer_relationships の結果は推測であり、実際のリレーション定義と異なる場合あり
  • 読み取り専用(レコードの作成・更新・削除は非対応)

参考プロジェクト

本プロジェクトは以下のオープンソースプロジェクトを参考に設計・実装しました:

プロジェクト作者説明
FileMaker-Server-DAPI-MCPFrancesc SansFileMaker Data API MCP サーバー(接続管理機能)
filemaker-mcp-serverMax PetrusenkoDDRエクスポート・リレーション分析機能を持つ MCP サーバー

両プロジェクトともMITライセンスで公開されています。


ライセンス

MIT

Reviews

No reviews yet

Sign in to write a review