fission-mcp-server

disillusioners/fission-mcp-server

3.1

If you are the rightful owner of fission-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Fission MCP Server is a Go-based server designed to manage Fission functions on Kubernetes using the Model Context Protocol (MCP).

Fission MCP Server

This project is on development and not yet released.

A Go-based server for managing Fission functions on Kubernetes using the Model Context Protocol (MCP). This project provides a simple and efficient way to create, list, and manage Fission serverless functions programmatically.

Features

  • 🚀 List all Fission functions across namespaces
  • 📦 Create and manage Fission functions and packages
  • 🔧 Update existing functions
  • 🐍 Support for Python runtime environments
  • ☸️ Native Kubernetes integration using client-go

Prerequisites

  • Go 1.21 or higher
  • Kubernetes cluster with Fission installed
  • Valid kubeconfig file (~/.kube/config or set KUBECONFIG environment variable)
  • Fission CRDs installed in your cluster

Installation

Clone the repository

git clone https://github.com/tinhminhtue/fission-mcp-server.git
cd fission-mcp-server

Build

go build -o fission-mcp-server main.go

Or use the Makefile:

make build

Run

# Using Go run (recommended for development)
go run ./cmd/server

# Or with pre-built binary
./fission-mcp-server

VS Code Debug Configuration

For VS Code debugging, use this launch configuration in .vscode/launch.json:

{
  "name": "Debug Server",
  "type": "go",
  "request": "launch",
  "mode": "debug",
  "program": "${workspaceFolder}/cmd/server",
  "env": {
    "FISSION_ROUTER_URL": "http://router.fission.svc.cluster.local"
  },
  "args": [],
  "showLog": true,
  "trace": "log"
}

Usage

The server will:

  1. List all existing Fission functions in your cluster
  2. Create a new function named hello-world2 with Python runtime

Configuration

You can customize the behavior by modifying the constants in main.go:

const (
    functionName     = "hello-world2"  // Function name
    functionEnv      = "python"        // Runtime environment
    defaultNamespace = "ai-code"       // Kubernetes namespace
    pythonCode       = `...`           // Function code
)

Environment Variables

  • KUBECONFIG: Path to kubeconfig file (defaults to ~/.kube/config)
  • PORT: Server port (defaults to 8080)
  • FISSION_ROUTER_URL: Fission router URL for function testing (defaults to http://router.fission)
    • Use http://localhost:8888 if port-forwarding the router: kubectl port-forward -n fission svc/router 8888:80
    • Use the external URL if the router is exposed via Ingress/LoadBalancer

Project Structure

fission-mcp-server/
├── main.go           # Main application code
├── go.mod            # Go module dependencies
├── go.sum            # Go module checksums
├── README.md         # This file
├── LICENSE           # License file
├── CONTRIBUTING.md   # Contribution guidelines
├── .gitignore        # Git ignore rules
└── Makefile          # Build automation

Development

Running Tests

make test

Running Function API Smoke Tests

The project includes integration smoke tests for Function API endpoints that verify all CRUD operations work correctly against a real Fission server.

# Start the server first
./fission-mcp-server

# In another terminal, run smoke tests
make test-smoke

# Or run directly with go
go test -v ./tests/

See for detailed smoke test documentation.

Building for Different Platforms

make build-linux    # Build for Linux
make build-darwin   # Build for macOS
make build-windows  # Build for Windows

Contributing

Contributions are welcome! Please read for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the file for details.

Acknowledgments

Author

Created by tinhminhtue