disillusioners/fission-mcp-server
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/configor setKUBECONFIGenvironment 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:
- List all existing Fission functions in your cluster
- Create a new function named
hello-world2with 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 to8080)FISSION_ROUTER_URL: Fission router URL for function testing (defaults tohttp://router.fission)- Use
http://localhost:8888if 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
- Use
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
- Fission - Serverless framework for Kubernetes
- Kubernetes client-go - Go client for Kubernetes
Author
Created by tinhminhtue