Token导航 LogoToken导航TokenDH.com
Knox MCP Proxy logo
运维云端未说明官方级别未说明来源级核验

Knox MCP Proxy

MCP Server

Knox MCP Proxy是一个Apache Knox扩展,用于聚合多个MCP服务器,提供统一的MCP网关,支持多种传输协议,实现分布式AI工具和资源的无缝访问。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
多协议支持JavaAI工具集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lmccay

提供方

lmccay

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

诺克斯MCP代理

一个全面的Apache Knox扩展,将多个模型上下文协议(MCP)服务器聚合到一个统一的MCP网关中,提供对分布式AI工具和资源的无缝访问,并具有完全的传输兼容性。

🌟 概述

Knox MCP Proxy扩展了Apache Knox,使其成为MCP生态系统的中央网关。它提供了一个基于Jersey的REST API和MCP服务器,该服务器使用任何传输协议连接到多个下游MCP服务器,并通过安全、经过身份验证的HTTP端点公开其聚合功能。

✨ 主要特点

  • 🔗 通用MCP兼容性:支持所有MCP传输协议(stdio、HTTP、SSE、自定义)
  • � MCP流式HTTP兼容:实施具有统一端点和内容协商的官方MCP规范
  • �🚀 多服务器聚合:无缝组合来自多个MCP服务器的工具和资源
  • 🛡️ 诺克斯安全集成:利用Knox的身份验证、授权和安全提供商
  • 🏷️ 智能命名空间:防止工具/资源与服务器前缀名称冲突
  • 🔄 向后兼容:保持与现有SSE客户端的完全兼容性,同时增加规范合规性

🏗️ 建筑

AI Agents & Applications
    |
    v
Knox Gateway (Security, Auth, SSL)
    |
    v
Jersey REST API (/mcp/v1/*)
    |
    v
MCP Proxy Resource (Aggregation)
    |
    ├── stdio://python calculator_server.py    (Process)
    ├── http://webapi.example.com              (HTTP)
    ├── sse://realtime.service.com             (SSE)
    └── custom-http-sse://gateway.internal     (Custom)

🚀 运输支持矩阵

传输端点格式兼容最适合
标准stdio://python server.py标准MCP子流程服务器本地Python/Node.js工具
超文本传输协议http://localhost:3000标准MCP HTTP服务器无状态web服务
上海证券交易所sse://localhost:4000标准MCP SSE服务器实时应用程序
自定义HTTP+SSEcustom-http-sse://localhost:5000Knox优化服务器多客户端网关

⚙️ 配置

Knox拓扑设置


    MCPPROXY
    mcp
    1.0.0
    

        mcp.servers
        calculator:stdio://python /path/to/calculator_server.py,
               webapi:http://localhost:3000,
               realtime:sse://localhost:4000,
               gateway:custom-http-sse://localhost:5000
    

支持的端点格式

  • stdio://command args -基于子进程的MCP服务器(Python、Node.js等)
  • http://host:port -标准HTTP请求/响应MCP服务器
  • https://host:port -安全HTTP MCP服务器
  • sse://host:port -标准SSE双向MCP服务器
  • sses://host:port -安全的SSE MCP服务器
  • custom-http-sse://host:port -诺克斯优化混合动力运输
  • custom-https-sse://host:port -安全的诺克斯混合运输

🔒 安全配置

标准命令允许列表

为了防止远程代码执行,基于stdio的MCP服务器仅限于允许的命令列表:


    mcp.stdio.allowed.commands
    python,node,java,npm

安全功能:

  • 命令验证:只能执行分配的命令
  • 路径保护:命令仅通过基名称进行验证(例如。, /usr/bin/pythonpython)
  • 默认安全性:如果未配置分配列表,则会记录警告
  • 清除错误消息:被阻止的命令会收到描述性错误响应

安全配置示例:


    MCPPROXY
    mcp
    1.0.0
    

        mcp.servers
        calculator:stdio://python /opt/mcp/calculator.py
    

    

        mcp.stdio.allowed.commands
        python,node
    

📚 api参考

� MCP流式HTTP端点(符合规范)

Knox MCP Proxy现在支持具有统一端点的官方MCP Streamable HTTP规范:

# MCP-compliant unified endpoints
GET /gateway/sandbox/mcp/v1/      # Service info or SSE connection  
POST /gateway/sandbox/mcp/v1/     # JSON-RPC requests

# Content negotiation examples:

# 1. Establish SSE connection (streamable mode)
GET /gateway/sandbox/mcp/v1/
Accept: text/event-stream
# Returns: SSE stream with session management

# 2. Standard JSON-RPC request/response
POST /gateway/sandbox/mcp/v1/
Content-Type: application/json
Accept: application/json
{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "id": 1
}

# 3. JSON-RPC with streaming response (requires active SSE session)
POST /gateway/sandbox/mcp/v1/
Content-Type: application/json
Accept: text/event-stream
X-Session-ID: mcp-sse-12345
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {"name": "calculator", "arguments": {"operation": "add", "a": 5, "b": 3}},
  "id": 2
}

MCP协议头:

  • mcp-version: 2024-11-05 -自动添加到所有响应中
  • X-Session-ID: -用于将消息路由到SSE会话

�🔍 发现端点

# List all available tools across all servers
GET /gateway/sandbox/mcp/v1/tools

# List all available resources across all servers  
GET /gateway/sandbox/mcp/v1/resources

# Health check for all connected servers
GET /gateway/sandbox/mcp/v1/health

⚡ 执行端点

# Execute a tool with parameters
POST /gateway/sandbox/mcp/v1/tools/{serverName.toolName}
Content-Type: application/json

{
  "param1": "value1",
  "param2": "value2"
}

# Access a resource
GET /gateway/sandbox/mcp/v1/resources/{serverName.resourceName}

🔄 传统端点(向后兼容性)

⚠️ 失望但完全支持现有客户:

# Legacy SSE endpoint
GET /gateway/sandbox/mcp/v1/sse
# Still works exactly as before - delegates to unified endpoint

# Legacy JSON-RPC endpoint  
POST /gateway/sandbox/mcp/v1/message
# Still works exactly as before - includes MCP version headers

# All existing REST endpoints remain unchanged
GET /gateway/sandbox/mcp/v1/tools
GET /gateway/sandbox/mcp/v1/resources
POST /gateway/sandbox/mcp/v1/tools/{toolName}
GET /gateway/sandbox/mcp/v1/resources/{resourceName}
GET /gateway/sandbox/mcp/v1/health

迁移指南:

  • 现有客户端(Goose Desktop Agent等)继续工作不变
  • 新的实现应该使用统一的 GET/POST / 端点
  • 传统端点会记录弃用警告,但仍能完全正常工作

💡 使用示例

多传输配置


    mcp.servers
    
        python_tools:stdio://python /opt/mcp/python_server.py,
        web_services:http://api.internal.com:8080,
        live_data:sse://streaming.service.com:4000,
        legacy_system:custom-http-sse://legacy.gateway.com:9000
    

API使用

# Discover available tools
curl -X GET https://knox.company.com/gateway/prod/mcp/v1/tools

# Call a Python-based calculator tool
curl -X POST https://knox.company.com/gateway/prod/mcp/v1/tools/python_tools.calculate \
  -H "Content-Type: application/json" \
  -d '{"expression": "2 + 2 * 3"}'

# Access a web service API
curl -X POST https://knox.company.com/gateway/prod/mcp/v1/tools/web_services.weather \
  -H "Content-Type: application/json" \
  -d '{"location": "San Francisco", "units": "metric"}'

# Read real-time data
curl -X GET https://knox.company.com/gateway/prod/mcp/v1/resources/live_data.stock_prices

🛠️ 发展

先决条件

  • Java 8+ (与Knox 1.6.1兼容)
  • Maven 3.6+
  • 阿帕奇诺克斯1.6.1+

构建与测试

# Clean build
mvn clean compile

# Run comprehensive test suite  
mvn test

# Package for deployment
mvn package

安装

  1. 构建JAR: mvn package
  2. 部署到诺克斯:复制 target/knox-mcp-proxy-1.0.0-SNAPSHOT.jar 去诺克斯家 ext/ 目录
  3. 配置拓扑:添加MCP服务配置
  4. 重新启动Knox:重新启动Knox网关服务

项目结构

src/main/java/org/apache/knox/mcp/
├── McpProxyResource.java              # Main REST API resource
├── McpServerConnection.java           # Connection management
├── client/                            # Transport implementations
│   ├── McpJsonRpcClient.java         #   - stdio transport
│   ├── McpHttpClient.java            #   - standard HTTP transport  
│   ├── McpSseClient.java             #   - standard SSE transport
│   ├── McpCustomHttpSseClient.java   #   - Knox custom transport
│   ├── McpTool.java                  #   - Tool model
│   ├── McpResource.java              #   - Resource model
│   └── McpException.java             #   - Exception handling
└── deploy/
    └── McpProxyServiceDeploymentContributor.java  # Knox integration

🎯 实施要点

🔧 完整的运输支持

  • 4种传输协议 完全符合MCP标准
  • 自动协议检测 基于端点URL
  • 无缝回退 以及每种传输类型的错误处理

🚀 生产特点

  • Java 8兼容性 -没有像官方SDK那样的Java 17+要求
  • 异步处理 与复杂的未来
  • 连接池 生命周期管理
  • 全面的错误处理 优雅的退化
  • 实时监控 通过健康检查端点

🛡️ 企业安全

  • Knox身份验证 整合
  • 基于角色的授权 工具和资源
  • 审核日志记录 适用于所有MCP操作
  • SSL/TLS终止 通过诺克斯

性能优化

  • 连接复用 以及在适当的情况下建立持久连接
  • 请求批处理 以及响应缓存
  • 资源清理 以及内存管理
  • 可配置超时 重试逻辑

📊 与官方MCP SDK的比较

功能官方MCP SDKKnox MCP代理
Java版本Java 17+Java 8+
运输stdio、HTTP、SSEstdio、HTTP、SSE、自定义HTTP+SSE
多服务器手动自动聚合
安全诺克斯企业安全
网关功能负载平衡、SSL、身份验证
生产就绪基础企业级
诺克斯集成本地

🔮 高级功能

自定义传输协议

我们的诺克斯优化 custom-http-sse:// 运输提供:

  • HTTP POST 用于请求(无状态、可扩展)
  • 服务器发送的事件 用于响应(实时、持久)
  • 消息相关性 通过请求ID
  • 多客户端优化 对于网关场景

工具和资源命名空间

{
  "calculator.add": {
    "description": "Add two numbers",
    "server": "calculator"
  },
  "webapi.weather": {
    "description": "Get weather data", 
    "server": "webapi"
  }
}

健康监测

{
  "status": "healthy",
  "servers": {
    "calculator": {"status": "connected", "tools": 5, "resources": 2},
    "webapi": {"status": "connected", "tools": 12, "resources": 8}
  },
  "total_tools": 17,
  "total_resources": 10
}

🤝 贡献

  1. 分叉 存储库
  2. 创建 特征分支(git checkout -b feature/amazing-feature)
  3. 提交 您的更改(git commit -m 'Add amazing feature')
  4. 分支机构(git push origin feature/amazing-feature)
  5. 打开 拉取请求

📄 许可证

该项目根据 Apache许可证2.0 -看看 许可证 文件以获取详细信息。

🔗 相关项目

______________________________________________________________________

🎉 准备好通过Knox聚合您的MCP生态系统了吗?配置 上面的部分!

目录标签

目录标签

多协议支持JavaAI工具集成MCP网关本地部署Knox扩展分布式资源管理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP