apache-hop-mcp
Provides integration with Apache Hop, enabling agents to inspect and validate Hop pipelines and workflows, enumerate transforms and actions, trace dependencies and lineage, search project files, and optionally run or manage executions through hop-run or Hop Server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apache-hop-mcpValidate the customer_load pipeline and list missing plugins."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apache Hop MCP 0.2.0
apache-hop-mcp exposes Apache Hop projects to MCP-capable agents such as Codex. Version 0.2 adds a bundled Java semantic bridge that loads the same Hop engine classes and plugin registry used by Hop itself instead of relying only on raw XML.
The Python MCP remains the control/security layer. The Java bridge is local-only, persistent, and communicates with Python over stdin/stdout; it does not open an additional network port.
Project status: community project; it is not an official Apache Software Foundation or Apache Hop project. Apache Hop is a trademark of the Apache Software Foundation.
Architecture
Codex / MCP client
|
| MCP
v
apache-hop-mcp (Python)
| security / backups / search / SQL extraction / Hop Server
|
+---- native mode ------------------------------+
| |
| local stdin/stdout protocol
| v
| Hop Java Bridge 0.2
| |
| HopEnvironment.init() / PluginRegistry
| |
| PipelineMeta / WorkflowMeta / metadata
| |
+---- python fallback ---> safe XML parser <----+
.hpl / .hwf / metadata/Apache Hop's SDK explicitly initializes engine-side plugins through HopEnvironment.init() and loads project metadata with JsonMetadataProvider. The bridge follows that model and runs against the JARs/plugins in the configured HOP_HOME.
Related MCP server: void-bridge
What's new in 0.2
Bundled
apache-hop-mcp-bridge-0.2.0.jarwith source.Native inspection through
PipelineMeta/WorkflowMeta.Native plugin identity and missing-plugin detection.
Native hop graph and local lineage.
Native transform/action inventory from
PluginRegistry.Native structural validation of component names, installed plugins and hop endpoints.
Optional deep validation through Hop's own
checkTransforms()/checkActions()APIs.auto | native | pythonengine selection.Hybrid
hop_inspect: Hop supplies authoritative structure; the bounded Python parser adds SQL and static file-reference extraction.Persistent JVM process instead of starting Java for every tool call.
Java
@argfileclasspath startup to avoid Windows command-line length limits.Cross-platform bridge timeout and deterministic fallback.
v0.1 tools remain available with the same names.
Engine modes
Set:
HOP_MCP_NATIVE_MODE=autoauto is recommended. If HOP_HOME and the bundled bridge are usable, semantic tools prefer the native Hop model. If native initialization fails, read-only analysis falls back to the Python parser and marks the result with engine: python and native_fallback: true.
Use HOP_MCP_NATIVE_MODE=native when a native Hop load is mandatory. Errors are returned instead of falling back.
Use HOP_MCP_NATIVE_MODE=python for the original parser-only behavior.
Requirements
Python 3.10+
For native mode: Apache Hop 2.19.x and Java 21
HOP_HOMEpointing at the unpacked Hop installationOptional
hop-run.sh/hop-run.batfor executionOptional Hop Server for remote execution/status
The bridge JAR contains only the MCP bridge classes. Apache Hop libraries and marketplace/custom plugins are loaded from the user's actual Hop installation, so the bridge does not ship a duplicate Hop runtime.
Install
python -m venv .venvLinux/macOS:
. .venv/bin/activate
pip install apache_hop_mcp-0.2.0-py3-none-any.whlWindows PowerShell:
.venv\Scripts\Activate.ps1
pip install apache_hop_mcp-0.2.0-py3-none-any.whlFor development:
pip install -e .Configuration
Minimal native configuration:
HOP_PROJECT_ROOT=/opt/hop/config/projects/my-project
HOP_PROJECT_NAME=my-project
HOP_HOME=/opt/hop
HOP_MCP_NATIVE_MODE=auto
HOP_MCP_ALLOW_WRITE=false
HOP_MCP_ALLOW_EXECUTE=falseOptional:
HOP_RUN=/opt/hop/hop-run.sh
HOP_RUN_CONFIG=local
HOP_LOG_LEVEL=BASIC
HOP_MCP_NATIVE_TIMEOUT_SECONDS=45
HOP_MCP_BRIDGE_JAR=/custom/path/apache-hop-mcp-bridge-0.2.0.jar
HOP_MCP_JAVA=/custom/jdk/bin/java
HOP_PLUGIN_BASE_FOLDERS=/opt/hop/plugins,/opt/company-hop-pluginsHOP_MCP_BRIDGE_JAR is normally unnecessary because the wheel contains the bridge.
Diagnostics
Configuration only:
apache-hop-mcp --doctorActually start Java, initialize Hop and enumerate plugins:
apache-hop-mcp --doctor --native-probeMCP tools
Version 0.2 exposes 24 MCP tools.
Tool | Engine | Purpose |
| Python | Non-secret configuration and safety state |
| Native | Bridge configuration / optional live probe |
| Native | Transform/action inventory from |
| Native | Strict |
| Native | Fast structural Hop model/plugin/hop validation |
| Native | Deep Hop |
| Python | List |
| Hybrid | Preferred semantic inspection plus SQL/references |
| Hybrid | Structured XML view plus Hop-native identity/XML |
| Native/fallback | Upstream/downstream hop lineage |
| Native/fallback | Preferred semantic validation |
| Python | Bounded exact file reading |
| Python | Project text search |
| Python | SQL/table reference search |
| Python | Static workflow/pipeline dependency graph |
| Python guarded | Preview exact existing XML field edit |
| Python guarded | Backup + atomic field edit + rollback validation |
| Python guarded | Timestamped backup |
| Python | Render |
| hop-run | Local execution |
| Hop Server | Server status |
| Hop Server |
|
| Hop Server | Execution status/logs |
| Hop Server | Stop request |
Example Codex configuration
See examples/codex-config.toml.
[mcp_servers.apache-hop]
command = "apache-hop-mcp"
args = ["--transport", "stdio"]
[mcp_servers.apache-hop.env]
HOP_PROJECT_ROOT = "/opt/hop/config/projects/my-project"
HOP_PROJECT_NAME = "my-project"
HOP_HOME = "/opt/hop"
HOP_MCP_NATIVE_MODE = "auto"
HOP_MCP_ALLOW_WRITE = "false"
HOP_MCP_ALLOW_EXECUTE = "false"Suggested first prompt:
Use apache-hop-mcp. Probe the native bridge, list the installed transform plugins,
inspect U2020_UMTS/Main.hwf, build its dependency graph, and identify any missing
plugins or broken hops. Do not modify or execute anything.Safety model
Mutation and execution remain deny-by-default:
HOP_MCP_ALLOW_WRITE=false
HOP_MCP_ALLOW_EXECUTE=falseFile operations are confined to HOP_PROJECT_ROOT, including resolved symlinks. XML with DTD/entity declarations is rejected by the Python parser. Writes use timestamped backups, atomic replacement and rollback on structural validation failure.
The Java bridge independently canonicalizes every .hpl/.hwf path and verifies it remains under the configured project root.
The bridge deliberately uses no TCP listener. It inherits the MCP process' OS permissions and only receives commands from its parent Python process.
Bridge source/build
Source is in bridge/. The Maven project compiles against Apache Hop 2.19.0 hop-core and hop-engine as provided dependencies and targets Java 21.
cd bridge
mvn -DskipTests packageThe runtime JAR intentionally has no embedded Hop dependencies.
Tests
python -m pytesthop_native_validate is structural and does not deliberately invoke transform/action connectivity checks. hop_native_check calls Apache Hop's own deep checker. Depending on the transforms/actions involved, the deep checker can resolve fields or contact configured databases/services; invoke it intentionally.
AI-assisted development
Coding agents such as Codex CLI and Codex Cloud should read AGENTS.md before making changes. Detailed setup and build guidance lives in docs/AI_DEVELOPMENT.md.
License
MIT. Apache Hop is an Apache Software Foundation project. apache-hop-mcp is independent and is not an official Apache Hop component.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables managing local repositories, CLIs, MCP servers, and skills via MCP tools, with inventory tracking, guarded updates, and Docker-sandboxed trials.MIT
- FlicenseNot gradedqualityCmaintenanceExposes a secure, path-confined bridge to a local workspace and git remotes, enabling MCP clients to search, read, write, reset files, and perform git operations.
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with local Cocos Creator 3.8.8 projects over MCP Streamable HTTP, providing multi-project management, project listing, and verified write operations (preflight, revision-based execution, and readback verification) without transactions or auto-rollback.30MIT
- AlicenseNot gradedqualityBmaintenanceEnables managing a canonical library of agent skills and MCP servers, syncing them across multiple development harnesses, and adding, importing, or configuring them through MCP tools.MIT
Related MCP Connectors
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/michaaels/apache-hop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server