mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 10:40:07 -04:00
[1chat] MCP Server that can expose 1chat tools (#222231)
## Summary This PR introduces the **1chat MCP server** in Kibana, exposed at the experimental `/api/mcp` endpoint behind a feature flag. It allows external MCP clients (e.g. Claude Desktop, Cursor, OpenAI Agents) to connect and use tools registered in the 1chat registry. ### MCP server - Implements a **stateless** MCP server following the MCP spec (Streamable HTTP transport). - Supports **API key** and **basic auth** for authentication. - Works with clients via: - **Streamable HTTP** with auth header - **STDIO** transport using `mcp-remote` proxy - Endpoint under a feature flag `xpack.onechat.mcpServer.enabled` - 1chat tools are scoped to the caller’s permissions, as determined by the auth header. ### Other changes - Implemented `KibanaMcpHttpTransport` (mcp http transport layer adapted to Kibana Core primitives) + tests ### Local testing Set ui setting: `onechat:mcpServer:enabled` to true E.g. add this to Claude Desktop: ``` { "mcpServers": { "elastic": { "command": "npx", "args": [ "mcp-remote", "https://{kbn}/api/mcp", "--header", "Authorization: ApiKey ${API_KEY}" ], "env": { "API_KEY": "..." } }, } } ``` ### Enable feature via API ``` POST kbn:/internal/kibana/settings/onechat:mcpServer:enabled {"value": true} ``` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
f99ac4e87a
commit
8c6fc9e21c
14 changed files with 1196 additions and 12 deletions
|
@ -128,7 +128,7 @@ run(
|
|||
...(flagsReader.boolean('verbose') ? ['--verbose'] : []),
|
||||
],
|
||||
env: {
|
||||
NODE_OPTIONS: '--max-old-space-size=8192',
|
||||
NODE_OPTIONS: '--max-old-space-size=10240',
|
||||
},
|
||||
cwd: REPO_ROOT,
|
||||
wait: true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue