5G网络功能重构服务

NFReconfig MCP Server 是一个用于在云原生Kubernetes环境中自主重新配置5G网络功能的模型上下文协议服务器实现。

  • by bactp
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 bactp/nfreconfig-mcp-server

使用说明

NFReconfigue MCP服务器

MCP(模型上下文协议)服务器实现,用于云原生Kubernetes环境中的自主5G网络功能重新配置操作。

📋 目录


🔧 先决条件

所需软件

基础设施要求

在部署MCP服务器之前,您需要一个具有Nephio和5G OAI堆栈的工作多集群Kubernetes环境。


🏗️ 基础设施设置

第一步:使用Nephio引导Kubernetes集群

按照分步指南使用Nephio设置您的多集群Kubernetes基础设施:

📖 指南: Nephio测试基础设施设置

这将提供:

  • 带Nephio控制平面的管理集群
  • 工作负载集群(核心、边缘、区域、备用)
  • GitOps基础设施(Gitea、ArgoCD)
  • Porch包编排器

步骤2:部署5G OAI堆栈

在您的工作负载集群中部署OpenAirInterface 5G网络功能:

📖 指南: OAI 5G部署

群集拓扑:

集群 网络功能 描述
核心集群 AMF、SMF、NRF、UDM、UDR、AUSF、MySQL 5G核心控制平面功能
边缘集群 UPF、CU-UP、DU 用户平面和RAN下层
区域集群 RAN控制平面(gNB-CU-CP)
备用集群 (预留) CU-CP搬迁目标

接口绑定:

┌─────────────────┐     N2      ┌─────────────────┐
│   Core Cluster  │◄───────────►│ Regional Cluster│
│  (AMF, SMF...)  │             │    (CU-CP)      │
└────────┬────────┘             └───────┬─────────┘
         │ N4                      E1   │   F1-C
         │                              │
         ▼                              ▼
┌─────────────────────────────────────────────────┐
│                  Edge Cluster                    │
│  ┌─────┐    N3    ┌───────┐   F1-U   ┌─────┐   │
│  │ UPF │◄────────►│ CU-UP │◄────────►│ DU  │   │
│  └─────┘          └───────┘          └─────┘   │
└─────────────────────────────────────────────────┘
  • 氮气2:AMF↔ CU-CP(NGAP信令)
  • n4型:SMF↔ UPF(PFCP会话管理)
  • N3:UPF↔ CU-UP(GTP-U用户平面)
  • E1:CU-CP↔ 提示(E1AP)
  • F1-C型号:CU-CP↔ DU(F1AP 控制平面)
  • F1-U: CU-UP↔ DU(F1-U用户飞机)

步骤3:安装Kagent

为Kubernetes原生代理运行时安装Kagent:

# Add Kagent Helm repository
helm repo add kagent https://kagent-dev.github.io/kagent/
helm repo update

# Install Kagent in the management cluster
helm install kagent kagent/kagent \
  --namespace kagent-system \
  --create-namespace

验证安装:

kubectl get pods -n kagent-system

📦 安装

方案1:地方发展

  1. 克隆存储库:

    git clone https://github.com/bactp/nfreconfig-mcp-server.git
    cd nfreconfig-mcp-server
    
  2. 安装依赖项:

    go mod tidy
    
  3. 在本地运行MCP服务器:

    go run cmd/server/main.go
    

选项2:Docker构建

# Build using kmcp
kmcp build

# Or build manually
docker build -t nfreconfig-mcp-server:latest .

选项3:Kubernetes部署

  1. 部署RBAC、服务和部署:

    kubectl apply -f k8s-deployment/mcp-server-rbac.yaml
    kubectl apply -f k8s-deployment/mcp-server-service.yaml
    kubectl apply -f k8s-deployment/mcp-server-deployment.yaml
    
  2. 或者使用kmcp部署为MCPServer自定义资源:

    kmcp deploy mcp
    
  3. 验证部署:

    kubectl get pods -l app=nfreconfig-mcp-server
    kubectl get mcpserver
    

📁 项目结构

nfreconfig-mcp-server/
├── cmd/
│   ├── server/              # MCP server entrypoint
│   │   └── main.go
│   └── devtest/             # Development testing utilities
│       └── main.go
├── internal/
│   ├── kube/                # Kubernetes client utilities
│   │   ├── client.go        # Kubeconfig loading
│   │   ├── dynamic.go       # Dynamic client builder
│   │   ├── kubeclients.go   # Client management
│   │   ├── mapper.go        # Resource mapping
│   │   └── workload_client.go  # Workload cluster client
│   └── tools/               # MCP tool implementations
│       ├── all_tools.go                    # Tool registration
│       ├── cluster_scan_topology.go        # Cluster discovery
│       ├── repos_get_url.go                # Repository URL discovery
│       ├── git_clone_or_open.go            # Git clone operations
│       ├── repos_scan_cudu_plan_inputs.go  # Manifest scanning
│       ├── manifest_patch_cucp_ips_many.go # CUCP IP patching
│       ├── manifest_patch_config_refs_many.go  # Config reference patching
│       ├── git_commit_push_many.go         # Git commit/push
│       ├── argocd_sync_app.go              # ArgoCD sync trigger
│       ├── workload_resources.go           # Workload resource ops
│       └── helpers.go                      # Utility functions
├── docs/
│   ├── agents/              # Agent system prompts
│   │   └── README.md        # Agent configuration guide
│   └── nf-reconfiguration-sequence.mmd  # Sequence diagram
├── k8s-deployment/          # Kubernetes manifests
│   ├── mcp-server-deployment.yaml
│   ├── mcp-server-rbac.yaml
│   └── mcp-server-service.yaml
├── Dockerfile
├── go.mod
├── go.sum
├── kmcp.yaml                # Kagent MCP configuration
└── mcp-server-config.json   # MCP server configuration

🔧 MCP工具参考

工具 类别 描述
cluster_scan_topology 集群资源清册 使用Git仓库和网络拓扑发现集群
workload_list_resource 集群资源清册 列出工作负载集群上的K8s资源
workload_get_resource 群集资源清册 从工作负载群集获取特定资源
workload_delete_resource 群集资源清册 从工作负载群集中删除资源
repos_get_repos_urls 仓库 获取仓库的Git克隆URL
git_clone_repos 仓库 将Git仓库克隆到本地工作目录
repo_scan_manifests 存储库 扫描存储库以查找具有拓扑结构的K8s清单
manifest_patch_cucp_ips 清单更改 用新IP修补CUCP NFDeployment/NAD
manifest_patch_config_refs 清单更改 使用新的CUCP参考更新DU/CUP配置
git_commit_push Git交付 阶段、提交和推送存储库更改
argocd_sync_app Git交付 触发ArgoCD应用程序同步

有关详细的工具参数和示例,请参见 docs/agents/README.md.


🤖 代理配置

此MCP服务器旨在与多代理架构配合使用:

代理 角色 使用的工具
NF重新配置代理 协调协调器 技能代理的代表
群集清单代理 拓扑发现 cluster_scan_topology, workload_*
存储库代理 Git仓库管理 repos_get_repos_urls, git_clone_repos, repo_scan_manifests
清单变更代理 配置修补 manifest_patch_cucp_ips, manifest_patch_config_refs
Git交付代理 GitOps同步 git_commit_push, argocd_sync_app

有关代理系统提示和配置示例,请参阅 docs/agents/README.md.


🔗 相关项目

项目 描述
nephio试验红外线 Nephio和OAI 5G基础设施设置指南
羊与重新配置 CU-DU重构自动化前期工作
卡金特 Kubernetes原生代理运行时
kmcp Kagent MCP命令行界面工具
尼菲奥 Kubernetes原生网络自动化
ArgoCD Kubernetes的声明性GitOps
模型上下文协议 标准化LLM工具界面

📜 许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。