Skip to main content
Glama

fme-mcp-ultra

CI Security Audit Licence: Apache-2.0 Python: 3.10+ Model Context Protocol FME 2025.2 Supported

Universal, secure, production-grade Model Context Protocol (MCP) server for Safe Software FME 2025.2 (FME Form & FME Flow), geospatial data, enterprise ETL pipelines, and AI agents.

Usable by any standard MCP client: Claude Desktop, Claude Code, Cursor, VS Code, Antigravity, Windsurf, LangChain, and OpenAI Agents SDK.


🌟 Executive Overview

While Safe Software introduced native MCP integration in FME 2026 (safe.mcp client package in 2026.1 and native Flow MCP Server in 2026.2), organizations running FME 2025.2 previously lacked a direct bridge to connect Large Language Models with their spatial data pipelines.

fme-mcp-ultra solves this by delivering:

  1. FME 2025.2 Compatibility: Direct execution via local FME Form (fme.exe and fmeobjects C-API bindings) and remote FME Flow REST APIs.

  2. Dynamic Workspace-to-Tool Engine: Automatically discovers workspaces, parses published parameters, infers strict JSON Schemas, and exposes workspaces as callable MCP tools.

  3. Enterprise DevSecOps Architecture: Zero-Trust security with directory sandboxing (PathGuard), shell-injection prevention (CommandGuard), outbound network protection (SSRF Guard), and automated PII / secret redaction.

  4. Outbound MCP Federation: Functions as both an MCP server and an outbound MCP client (MCPCaller emulation), enabling chaining across multi-server topologies.

  5. Geospatial Intelligence Layer: Built-in vector reprojection, buffering, geometry validation, dataset profiling, and data contracts.


Related MCP server: MCP Tool Manager

🏛️ System Architecture

flowchart TB
    subgraph Clients["MCP Clients (LLMs & Agents)"]
        C1["Claude Desktop / Claude Code"]
        C2["Antigravity / Cursor / VS Code"]
        C3["AI Agents SDK / LangChain"]
    end

    subgraph CoreServer["fme-mcp-ultra Server"]
        subgraph Transports["Transports"]
            T1["Standard I/O (stdio)"]
            T2["Streamable HTTP / SSE"]
        end

        subgraph Security["Security & Governance Layer"]
            S1["PathGuard (Directory Sandboxing)"]
            S2["CommandGuard (Subprocess Guard)"]
            S3["SSRF Guard (Network Allowlist)"]
            S4["RedactionEngine (Secret & PII Scrubbing)"]
            S5["RBAC & ABAC Policy Engine"]
            S6["Tamper-Evident Audit Chain"]
        end

        subgraph Engine["FME Abstraction Engine"]
            E1["FME Form Local Runner (fme.exe & fmeobjects)"]
            E2["FME Flow REST Client (v3/v4)"]
            E3["Parameter Mapper & Schema Inferer"]
            E4["Log Streamer & Diagnostic Parser"]
        end

        subgraph Tools["Tools Registry (240+ Capabilities)"]
            TL1["Workspaces & Jobs"]
            TL2["Spatial & GIS (Vector, Raster, CAD/BIM)"]
            TL3["Data Engineering & Profiling"]
            TL4["Quality & Data Contracts"]
            TL5["Catalogue & Lineage"]
            TL6["MCP Federation (MCPCaller Client)"]
        end
    end

    subgraph Targets["Target Infrastructure"]
        FME_Form["Local FME Form 2025.2 (Engine)"]
        FME_Flow["Enterprise FME Flow Server"]
        Ext_MCP["Remote Federated MCP Servers"]
    end

    Clients --> Transports
    Transports --> Security
    Security --> Engine
    Engine --> Tools
    Engine --> FME_Form
    Engine --> FME_Flow
    Tools --> Ext_MCP

⚡ Quickstart (Under 5 Minutes)

Option 1: Run with uvx (Recommended)

uvx fme-mcp-ultra serve --transport stdio

Option 2: Standard pip Installation

pip install fme-mcp-ultra
fme-mcp-ultra doctor
fme-mcp-ultra serve --transport stdio

🔌 MCP Client Configurations

1. Claude Desktop

Add this to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "fme-mcp-ultra": {
      "command": "uvx",
      "args": ["fme-mcp-ultra", "serve", "--transport", "stdio"],
      "env": {
        "FME_DIR": "C:\\Program Files\\FME",
        "FME_ALLOWED_DIRS": "C:\\Program Files\\FME;E:\\fme_mcp"
      }
    }
  }
}

2. Antigravity / Cursor / VS Code

Add to your client's MCP configuration settings:

{
  "mcpServers": {
    "fme-mcp-ultra": {
      "command": "fme-mcp-ultra",
      "args": ["serve", "--transport", "stdio"],
      "env": {
        "PYTHONIOENCODING": "utf-8",
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

3. Streamable HTTP / Docker Deployment

docker run -d --name fme-mcp-ultra \
  -p 8000:8000 \
  -e FME_FLOW_URL="https://fme-flow.your-org.com" \
  -e FME_FLOW_TOKEN="your-fme-flow-api-token" \
  ghcr.io/mwjouini/fme-mcp-ultra:latest

🧰 Highlighted Tools Catalogue

Domain

Key Tools

Description

Workspaces

fme_discover_workspaces, fme_get_workspace, fme_run_workspace, fme_compare_workspaces

Crawls directories, extracts published parameters, and executes .fmw workspaces.

Spatial Analysis

gis_reproject, gis_buffer, gis_validate_geometry

High-precision CRS conversion (EPSG:4326 to 2154 / 3857), circular buffering, and polygon validation.

Data Engineering

data_read_metadata, data_profile

Column analysis, null counts, distinct value distribution, and format inspection.

Data Quality

quality_score_dataset, quality_generate_data_contract

Computes completeness scores and generates standard Data Contract YAML.

Catalogue

catalog_register_asset, catalog_search_assets, catalog_get_lineage

Registers datasets, performs semantic search, and maps upstream/downstream dependencies.

Orchestration

workflow_create, workflow_get, workflow_run

Constructs multi-step execution DAGs combining FME, validation checks, and scripts.

MCP Federation

mcp_register_server, mcp_list_servers

Connects external MCP servers to chain tools and fan-out requests.

Governance

gov_get_tenant_config, gov_redact_pii, gov_classify_dataset

Enforces GDPR/UK-GDPR data classification and automated PII scrubbing.

Diagnostics

fme_info, fme_list_transformers, fme_list_packages, fme_execute_python

Queries build/licensing, searches 500+ transformers, and runs in-engine Python.


🛡️ Enterprise Security Model

fme-mcp-ultra is engineered with a strict Default-Deny security posture:

  • PathGuard: Enforces canonical path resolution (os.path.realpath) and verifies containment within FME_ALLOWED_DIRS. Traversal escapes (..) and null bytes are rejected.

  • CommandGuard: Zero shell invocations (shell=False). Executable names and arguments are validated against an authorised binary whitelist, blocking metacharacter injection (|, ;, &, $).

  • SSRF Guard: Pre-resolves outbound DNS hostnames and prevents calls to loopback (127.0.0.1), private networks (10.0.0.0/8, 192.168.0.0/16), and cloud metadata APIs (169.254.169.254).

  • RedactionEngine: Real-time scrubbing of Bearer tokens, API credentials, email addresses, and payment card numbers before output delivery.

  • Role-Based Access Control (RBAC): Enforces role permissions (platform_admin, workspace_operator, spatial_analyst, auditor, read_only).


📊 FME Compatibility Matrix

Feature

FME Form 2025.2

FME Flow 2025.2

FME 2026 Native

fme-mcp-ultra

Local Desktop Execution

CLI / C-API

❌

❌

✅ Yes

Remote Cluster Execution

❌

REST v3

REST v4

✅ Yes

MCP Server Mode

❌

❌

✅ Flow only

✅ Universal

MCP Client (Federation)

❌

❌

✅ MCPCaller

✅ Advanced Client

Built-in Vector GIS

❌

❌

❌

✅ 55+ Tools

Zero-Trust Security Guards

❌

❌

⚠️ Basic

✅ Full Suite

Data Contracts & Scoring

❌

❌

❌

✅ Yes


💻 CLI Usage

# Verify environment and FME installation
fme-mcp-ultra doctor

# Inspect a workspace file
fme-mcp-ultra inspect E:/fme_mcp/geolocalisation.fmw

# Launch stdio server for desktop clients
fme-mcp-ultra serve --transport stdio

# Launch Streamable HTTP server
fme-mcp-ultra serve --transport streamable-http --host 0.0.0.0 --port 8000

🤝 Contributing

Contributions are welcomed under our Contributing Guide and Code of Conduct. The official project language is British English (en-GB).


📄 Licence

Licensed under the Apache License 2.0. See LICENSE for details. Copyright © 2026 Mohamed Wael JOUINI and Contributors.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely discover, invoke, and manage tools through a hardened MCP endpoint with protections like injection detection, circuit breakers, retry backoff, response caching, context-window limiting, and state snapshots.
    6 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants and MCP-enabled clients to discover and call application capabilities exposed as structured, schema-defined tools, with input validation, error handling, and API/database integration. It also ships a sample client that demonstrates secure tool execution and seamless AI-agent interoperability.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Turns any REST/OpenAPI, SOAP, GraphQL, OData, SQL, MongoDB or existing MCP system into MCP tools for Claude, ChatGPT and Copilot without writing an MCP server, shipping 474 ready-made connectors with runtime tool registration, field filtering and role-based access control.
    AGPL 3.0