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 "Deploy 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.8.0
Native semantic Model Context Protocol (MCP) server plugin for Apache Hop 2.19.x and 2.20.x.
This is a community project and is not an official Apache Software Foundation project.
What changed in 0.8.0
Version 0.8.0 adds a gated testing cycle to the Apache Hop Native Semantic MCP. A client can structurally validate a pipeline or workflow, optionally run Hop's native deep checker, optionally execute it, and receive one bounded machine-readable report with normalized diagnostics and advisory correction candidates. The cycle never changes a definition automatically. Inspection remains enabled by default; deep checks, execution, and writes require separate command-line flags.
Codex / Claude / Qwen
|
MCP STDIO
|
hop mcp
|
Apache Hop JVM
+ PluginRegistry
+ PipelineMeta / WorkflowMeta
+ local execution enginesInstalling the plugin once makes both integrations available after restarting Hop:
hop mcp/hop.bat mcp— headless MCP server.Tools → Apache Hop MCP live synchronization... — start or stop the adapter for the current Desktop process or Hop Web browser session.
Related MCP server: cocos-mcp-server
Hop Desktop and Hop Web live synchronization
Open the same project in Hop Desktop or Hop Web and select Tools → Apache Hop MCP live synchronization.... While that UI session is active, semantic changes made by hop mcp --allow-mutation against the same project root are reflected through native Hop UI APIs:
an already-open definition is reloaded from disk;
a changed definition that is not open is opened in the Explorer perspective;
rolling back a newly created definition closes its tab;
a tab with unsaved changes is never overwritten or closed.
The bridge uses bounded, short-lived control events under .hop-mcp/. These files contain only project-relative definition paths, event identifiers and SHA-256 fingerprints. They are excluded from MCP catalog, search, read and mutation tools. Session heartbeats expire automatically after 45 seconds, and events expire after 24 hours.
Live synchronization is explicit and session-scoped. Hop Web creates a separate RAP adapter for each browser session and uses Hop's server-push facade; no plugin code accesses RAP internals directly. If multiple users explicitly subscribe to the same project, each session receives the same project event but applies its own dirty-tab check and acknowledgement. Session identifiers are never returned by MCP tools. The bridge does not expose a network listener and is not a replacement for authentication or transport security.
Security model
Project inspection is available by default. Pipeline/workflow execution requires --allow-execution, is limited to local engine run configurations, permits at most four concurrent operations, and enforces a timeout of at most 900 seconds. Parameters and returned errors/logs are redacted.
Semantic mutation requires --allow-mutation when changes are applied. Previews remain read-only. Existing files require an expected SHA-256 precondition. Applied changes use native Hop semantic objects, create a backup, atomically replace the definition, reload it through Hop, automatically restore the backup on validation failure, and return a session transaction ID for explicit rollback. The semantic contract includes component creation and updates through Hop's plugin registry and metadata-injection API, definition metadata, component rename/move/removal, and hop add/remove/state operations. Component authoring accepts bounded scalar properties and one-level tabular groups returned by hop_component_schema; secret-looking keys, unknown properties, nested objects and deeper collections are excluded.
The project root is a hard boundary. Paths are normalized and resolved with real paths so traversal and symlinks cannot escape it. XML parsing disables DTDs and external entities. File reads, scans, results, logs, operations, traversal depth, property groups, rows, and cells are bounded. Secret-looking values are redacted.
hop_deep_check is disabled unless the server starts with --allow-deep-check, because Hop's native checker can resolve fields or contact configured databases/services.
Hop Web access remains read-only and opt-in. hop_web_request only permits GET and HEAD, confines requests to the configured base path, disables redirects, bounds response bodies, and redacts sensitive data. Credentials come from HOP_MCP_WEB_USERNAME / HOP_MCP_WEB_PASSWORD or HOP_MCP_WEB_BEARER_TOKEN; callers cannot supply authentication headers.
Requirements and build
Apache Hop 2.19.x (release baseline) or 2.20.x
Java 21
MCP client with STDIO support
mvn -B clean verifyUntil Hop 2.20.0 is published, compatibility can be checked against a locally installed build of Apache Hop main:
mvn -B -P hop-2.20 clean verifyThe Marketplace artifact is target/apache-hop-mcp-0.8.0.zip, containing:
plugins/misc/apache-hop-mcp/
apache-hop-mcp-0.8.0.jar
version.xml
lib/...Apache Hop jars are provided and are not bundled.
Marketplace installation
After the v0.8.0 GitHub Release exists, import marketplace/hop-marketplace-repo.yaml into Hop Marketplace and install Apache Hop MCP, or use:
./hop marketplace install io.github.michaaels:apache-hop-mcp:0.8.0 --repo apache-hop-mcpRestart Hop after installation. Releases are served directly from GitHub through Hop 2.19's urlTemplate and catalogUrl support.
Headless command
Read-only inspection:
./hop mcp --root /data/hop/projectWindows:
hop.bat mcp --root C:\Hop\projectEnable local execution and transactional semantic mutation explicitly:
./hop mcp --root /data/hop/project --allow-execution --allow-mutationOther opt-ins:
./hop mcp --root /data/hop/project --allow-deep-check
./hop mcp --root /data/hop/project --allow-web-api --web-url http://127.0.0.1:8080/hopIf the Projects plugin is configured, Hop's normal run-category project/environment options are loaded by the command.
Codex configuration
[mcp_servers.apache-hop]
command = "C:\\hop\\hop.bat"
args = ["mcp", "--root", "C:\\Hop\\project", "--allow-execution", "--allow-mutation"]Only include the opt-in flags that the MCP client should be authorized to use.
Semantic authoring flow
Call
hop_component_typeswithkind=pipelineorkind=workflowto resolve the native plugin ID.Call
hop_component_schemafor that ID and use only the returned scalar property keys and tabular group keys.Call
hop_mutate_definitionwithapply=falseand one or moreadd_componentorupdate_componentoperations, followed by any required hop operations.Review the preview and apply it with
apply=true; for an existing definition, also provide its currentexpected_sha256.Validate or execute the saved definition. Use the returned transaction ID and new SHA-256 if rollback is required.
For a single gated test report, call hop_test_definition. Structural validation always runs first. Native deep checking and execution run only when requested, authorized at server startup, and all preceding gates pass. Diagnostics and execution logs are bounded and redacted. Suggested corrections identify relevant MCP tools or semantic operations but remain advisory; the client must preview and explicitly apply any mutation.
add_component requires plugin_id and name; properties, property_groups, x, and y are optional. properties contains scalar values. property_groups maps a schema group key to an array of row objects, for example {"fields":[{"name":"id","type":"Integer","length":9}]}. Component identity, secret-looking fields, unknown keys, and nested collections cannot be overridden through these maps.
update_component requires the existing component name plus at least one non-empty properties or property_groups object. Scalar keys update only the requested values. Each requested tabular group replaces that complete group; groups and properties omitted from the operation remain unchanged.
MCP tools
Tool | Purpose |
| server/root/security configuration |
| native semantic operations, guarantees, compatibility and live-UI status |
| active Desktop/Web sessions and mutation delivery acknowledgements |
| filtered, paginated Apache Hop plugin inventory |
| discover transforms/actions available for semantic authoring |
| inspect safe scalar and tabular properties accepted by a component plugin |
| paginated project file metadata and SHA-256 fingerprints |
| list |
| components, hops, SQL tables, references |
| consolidated inspection, validation and local dependencies |
| inspect one transform/action with secret redaction |
| upstream/downstream graph traversal |
| safe structural validation |
| native Hop checker; explicit opt-in |
| gated structural/deep/execution test with normalized diagnostics and advisory corrections |
| bounded project file read |
| bounded text search |
| SQL table-reference discovery |
| referenced |
| execute a pipeline/workflow locally and wait for its bounded result |
| start a bounded local execution asynchronously |
| read asynchronous execution state/result |
| request asynchronous execution cancellation |
| read bounded, redacted Hop execution logs |
| preview/apply transactional native semantic changes |
| roll back an applied mutation from this MCP session |
| bounded GET/HEAD request to a configured Hop Web API |
AI-assisted development
Repository agents should read AGENTS.md. Detailed build instructions are in docs/AI_DEVELOPMENT.md.
License
Apache License 2.0. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Agent-driven search: build, import, tune, search, and score result quality — all over MCP.
Manage portable AI agent playbooks, Agent Skills, MCP configurations, personas, and memory.
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
- 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.12 npmMIT
- 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.14 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to inspect repositories, manage Golden Packs, plan golden flows, and run asynchronous validation tasks over MCP, providing a deterministic foundation for project-specific workflows.MIT