You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "Bence Kosztolnik (Jira)" <ji...@apache.org> on 2026/08/05 14:30:00 UTC
[jira] [Created] (YARN-11976) [Umbrella] Add ResourceManager MCP endpoint with API key authentication
Bence Kosztolnik created YARN-11976:
---------------------------------------
Summary: [Umbrella] Add ResourceManager MCP endpoint with API key authentication
Key: YARN-11976
URL: https://issues.apache.org/jira/browse/YARN-11976
Project: Hadoop YARN
Issue Type: Improvement
Components: yarn
Affects Versions: 3.6.0
Reporter: Bence Kosztolnik
Assignee: Bence Kosztolnik
h3. Overview
Add an optional [Model Context Protocol (MCP)|https://modelcontextprotocol.io/] endpoint to the YARN ResourceManager so agents and automation tools can query cluster state through structured MCP tools instead of ad-hoc scripts or Kerberos-bound REST calls.
The work is delivered as four stacked pull requests, each building on the previous one:
# hadoop-common MCP framework
# MCP API key storage and admin tooling
# ResourceManager MCP server integration
# Documentation
MCP is opt-in ({{{}yarn.resourcemanager.mcp.enable=false{}}} by default). On secure clusters, tool calls authenticate with admin-managed API keys stored in {{{}RMStateStore{}}}. Key administration stays on the existing Kerberos-protected RM webapp REST API and {{yarn mcpapikey}} CLI. The MCP tool endpoint runs on a dedicated port (default {{{}:8092{}}}), separate from the RM webapp ({{{}:8090{}}}).
h3. Architecture
MCP client --(API key)--> dedicated MCP server (:8092, no SPNEGO)
POST /ws/v1/mcp (initialize, tools/list, tools/call)
YARN admin --(Kerberos)--> RM webapp (:8090)
/ws/v1/cluster/mcp-api-keys (create/list/revoke)
Initial tools:
* {{get_scheduler_info}}
* {{list_applications}}
h3. Why a Hadoop-native MCP framework
The official MCP Java SDK was not used because of integration friction with Hadoop’s Jetty/Jersey/Jackson/{{{}javax.servlet{}}} stack. A minimal protocol-compatible layer lives in {{org.apache.hadoop.mcp}} in {{{}hadoop-common{}}}.
h3. Non-goals
* Submitting or modifying YARN applications via MCP
* OAuth/JWT or per-request Kerberos for MCP clients
* API key expiry / automatic rotation in the server
* Running MCP on the main RM webapp port with SPNEGO bypass
----
h2. Configuration
||Property||Default||Description||
|{{yarn.resourcemanager.mcp.enable}}|{{false}}|Master switch|
|{{yarn.resourcemanager.mcp.address}}|{{0.0.0.0:8092}}|Dedicated MCP bind address|
|{{yarn.resourcemanager.mcp.use.https}}|{{true}}|HTTPS vs plain HTTP for MCP server|
----
h2. Security notes
* On secure clusters, only {{tools/call}} requires an API key; keys are sent in HTTP headers.
* Plain HTTP ({{{}mcp.use.https=false{}}}) sends credentials in cleartext — startup WARN on secure clusters.
* Default bind {{0.0.0.0}} exposes the port on all interfaces unless firewalled.
* On unsecure clusters, {{tools/call}} is anonymous and runs as the RM process user.
* API keys do not expire; rotation is manual (create → migrate clients → revoke).
Source: [https://github.com/K0K0V0K/hadoop/tree/US-YARN-MCP]
Feature doc: [https://github.com/K0K0V0K/hadoop/blob/US-YARN-MCP/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/ResourceManagerMcp.md]
Designe doc: [https://github.com/K0K0V0K/hadoop/blob/US-YARN-MCP/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/ResourceManagerMcpDesign.md]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-dev-help@hadoop.apache.org