Naftiko · Capability

Mcp As K8S Resource Demo

A demo capability treating MCP servers as first-class Kubernetes resources via a Naftiko CRD.

Run with Naftiko NaftikoMCPKubernetesDemo

What You Can Do

GET
List mcp server crs
/mcp-servers

MCP Tools

list-mcp-server-crs

read-only
get-mcp-server-cr

read-only
create-mcp-server-cr

Capability Spec

mcp-as-k8s-resource-demo.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  title: Mcp As K8s Resource Demo
  description: A demo capability treating MCP servers as first-class Kubernetes resources via a Naftiko CRD.
  tags: [Naftiko, MCP, Kubernetes, Demo]
  created: '2026-05-01'
  modified: '2026-05-04'
binds:
- namespace: k8s-env
  keys: {K8S_HOST: K8S_HOST, K8S_TOKEN: K8S_TOKEN, K8S_NAMESPACE: K8S_NAMESPACE}
capability:
  consumes:
  - namespace: k8s
    type: http
    baseUri: 'https://{{K8S_HOST}}'
    authentication: {type: bearer, token: '{{K8S_TOKEN}}'}
    resources:
    - {name: mcp-servers, path: '/apis/naftiko.io/v1alpha1/namespaces/{{K8S_NAMESPACE}}/mcpservers', operations: [{name: list-mcp-server-crs, method: GET}, {name: create-mcp-server-cr, method: POST}]}
    - name: mcp-server
      path: '/apis/naftiko.io/v1alpha1/namespaces/{{K8S_NAMESPACE}}/mcpservers/{{name}}'
      operations:
      - {name: get-mcp-server-cr, method: GET, inputParameters: [{name: name, in: path}]}
  exposes:
  - type: rest
    address: 0.0.0.0
    port: 8080
    namespace: mcp-as-k8s-resource-demo-rest
    description: REST surface for MCP-as-K8s-resource demo.
    resources:
    - {name: mcp-servers, path: /mcp-servers, operations: [{method: GET, name: list-mcp-server-crs, call: k8s.list-mcp-server-crs}]}
  - type: mcp
    address: 0.0.0.0
    port: 3010
    namespace: mcp-as-k8s-resource-demo-mcp
    description: MCP for the demo.
    tools:
    - {name: list-mcp-server-crs, hints: {readOnly: true}, call: k8s.list-mcp-server-crs}
    - name: get-mcp-server-cr
      hints: {readOnly: true}
      inputParameters: [{name: name, type: string, required: true}]
      call: k8s.get-mcp-server-cr
    - {name: create-mcp-server-cr, call: k8s.create-mcp-server-cr}
  - type: skill
    address: 0.0.0.0
    port: 3011
    namespace: mcp-as-k8s-resource-demo-skills
    description: Skill for MCP-as-K8s.
    skills:
    - name: mcp-as-k8s-resource-demo
      description: MCP servers as K8s resources.
      location: file:///opt/naftiko/skills/mcp-as-k8s-resource-demo
      allowed-tools: list-mcp-server-crs,get-mcp-server-cr,create-mcp-server-cr
      tools:
      - {name: list-mcp-server-crs, from: {sourceNamespace: mcp-as-k8s-resource-demo-mcp, action: list-mcp-server-crs}}
      - {name: get-mcp-server-cr, from: {sourceNamespace: mcp-as-k8s-resource-demo-mcp, action: get-mcp-server-cr}}
      - {name: create-mcp-server-cr, from: {sourceNamespace: mcp-as-k8s-resource-demo-mcp, action: create-mcp-server-cr}}