SAP BTP Cloud Foundry MCP Server
# SAP BTP Cloud Foundry MCP Server
[](https://badge.fury.io/js/sap-btp-cf-mcp-server)
[](https://opensource.org/licenses/MIT)
An MCP (Model Context Protocol) server for automating SAP BTP Cloud Foundry operations. This server provides comprehensive tools for deploying, managing, and monitoring applications on SAP BTP Cloud Foundry.
## š Quick Start
### Installation
#### For Cline (VS Code)
1. Install via NPM (recommended):
```bash
npx sap-btp-cf-mcp-server
```
2. Add to your Cline MCP settings (`~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`):
```json
{
"mcpServers": {
"sap-btp-cf": {
"command": "npx",
"args": ["-y", "sap-btp-cf-mcp-server"],
"env": {
"CF_API_ENDPOINT": "https://api.cf.us10.hana.ondemand.com",
"CF_USERNAME": "your-username",
"CF_PASSWORD": "your-password",
"CF_ORG": "your-org",
"CF_SPACE": "your-space"
}
}
}
}
```
3. Restart VS Code
#### For Claude Desktop
1. Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"sap-btp-cf": {
"command": "npx",
"args": ["-y", "sap-btp-cf-mcp-server"],
"env": {
"CF_API_ENDPOINT": "https://api.cf.us10.hana.ondemand.com",
"CF_USERNAME": "your-username",
"CF_PASSWORD": "your-password",
"CF_ORG": "your-org",
"CF_SPACE": "your-space"
}
}
}
}
```
2. Restart Claude Desktop
### From Source
```bash
git clone https://github.com/Shreesha4994/sap-btp-cf-mcp-server.git
cd sap-btp-cf-mcp-server
npm install
npm run build
```
## Features
### Authentication & Session Management
- `cf_login` - Authenticate with Cloud Foundry
- `cf_target` - Switch organization and/or space
- `cf_get_target` - Get current target information
### Application Management
- `cf_push` - Deploy applications
- `cf_app` - Get application details
- `cf_apps` - List all applications
- `cf_start` - Start an application
- `cf_stop` - Stop an application
- `cf_restart` - Restart an application
- `cf_restage` - Restage an application
- `cf_scale` - Scale application resources
- `cf_delete_app` - Delete an application
- `cf_logs` - Get application logs
### Environment Variables
- `cf_set_env` - Set environment variable
- `cf_unset_env` - Unset environment variable
- `cf_get_env` - Get all environment variables
### Service Management
- `cf_create_service` - Create service instance
- `cf_delete_service` - Delete service instance
- `cf_bind_service` - Bind service to application
- `cf_unbind_service` - Unbind service from application
- `cf_services` - List all service instances
- `cf_service` - Get service instance details
- `cf_marketplace` - List available services
### Organization & Space Management
- `cf_orgs` - List all organizations
- `cf_spaces` - List all spaces
- `cf_create_space` - Create a new space
### Route Management
- `cf_map_route` - Map route to application
- `cf_unmap_route` - Unmap route from application
### Deployment Workflows
- `cf_deploy_workflow` - Complete deployment workflow (push, bind services, configure, start)
## Prerequisites
- Cloud Foundry CLI installed and accessible in PATH
- SAP BTP account with appropriate permissions
- Node.js installed
## Configuration
The server is configured in the MCP settings with the following environment variables:
```json
{
"sap-btp-cf": {
"command": "node",
"args": ["/path/to/sap-btp-cf-server/build/index.js"],
"env": {
"CF_API_ENDPOINT": "https://api.cf.us10.hana.ondemand.com",
"CF_USERNAME": "your-username",
"CF_PASSWORD": "your-password",
"CF_ORG": "your-org",
"CF_SPACE": "your-space"
}
}
}
```
### Getting Your Credentials
1. **API Endpoint**: Your region-specific CF API endpoint
- US10: `https://api.cf.us10.hana.ondemand.com`
- EU10: `https://api.cf.eu10.hana.ondemand.com`
- Check your SAP BTP Cockpit for your specific endpoint
2. **Username/Password**: Your SAP BTP credentials
- Available from SAP BTP Cockpit
3. **Organization & Space**: Your target org and space
- Optional - can be specified in tool calls if not set as defaults
## Usage Examples
### Deploy an Application
```
Deploy my application located at ./my-app with 2 instances and 512M memory
```
This will use the `cf_push` tool.
### Create and Bind Service
```
Create a HANA service instance called my-hana-db with plan hdi-shared, then bind it to my-app
```
This will use `cf_create_service` and `cf_bind_service` tools.
### Complete Deployment Workflow
```
Deploy my-app from ./app-dir, bind services my-hana and my-xsuaa, and set environment variable NODE_ENV to production
```
This will use the `cf_deploy_workflow` tool for a complete automated deployment.
### Scale Application
```
Scale my-app to 3 instances with 1GB memory
```
This will use the `cf_scale` tool.
### View Logs
```
Show me the recent logs for my-app
```
This will use the `cf_logs` tool.
## Development
### Building
```bash
npm run build
```
### Project Structure
```
sap-btp-cf-server/
āāā src/
ā āāā index.ts # Main MCP server
ā āāā cf-client.ts # Cloud Foundry CLI wrapper
ā āāā types.ts # TypeScript type definitions
āāā build/ # Compiled JavaScript
āāā package.json
āāā tsconfig.json
```
## Benefits
- **Speed**: Execute complex CF operations with simple commands
- **Error Prevention**: Structured inputs with validation
- **Automation**: Multi-step workflows in single operations
- **Consistency**: Standardized deployment patterns
- **Integration**: Seamless integration with other development tools
## Troubleshooting
### Server Not Connected
- Verify the build path in MCP settings matches the compiled output location
- Check that Node.js is installed and accessible
- Ensure Cloud Foundry CLI is installed: `cf --version`
### Authentication Errors
- Verify your credentials are correct
- Check your API endpoint matches your region
- Ensure you have appropriate permissions in the org/space
### Tool Execution Errors
- Check CF CLI is working: `cf target`
- Verify you're logged in: `cf auth`
- Check application/service names are correct
## š¦ Installation from NPM
```bash
npm install -g sap-btp-cf-mcp-server
```
Or use directly with npx:
```bash
npx sap-btp-cf-mcp-server
```
## š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## š License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## š¤ Author
**Shreesha KJ**
- Email: s.kj@sap.com
- GitHub: [@Shreesha4994](https://github.com/Shreesha4994)
## š Acknowledgments
- Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
- Powered by Cloud Foundry CLI
- Designed for SAP BTP Cloud Foundry
## š Project Status
This project is actively maintained. Issues and feature requests are welcome!
---
Made with ā¤ļø for the SAP Developer Community
TDQS
Scored across 29 tools
Tools map to distinct Cloud Foundry resources and actions, with clear singular/plural list/get pairs (cf_app/cf_apps, cf_service/cf_services). Minor overlap exists between cf_deploy_workflow and the individual cf_push/cf_bind_service/cf_restart steps, and cf_target vs cf_get_target, but descriptions distinguish them.
All tools use a consistent cf_ snake_case prefix with predictable verb_noun or noun patterns (cf_create_service, cf_apps, cf_set_env). There are no mixed conventions or chaotic naming styles.
29 tools is heavy; many lifecycle pairs (bind/unbind, set/unset, start/stop) and CRUD operations (cf_app/cf_apps, cf_service/cf_services) could be consolidated. However, the breadth of Cloud Foundry operations makes the count borderline rather than clearly excessive.
Core app deployment, service binding, env management, scaling, and route mapping are covered. Missing delete space/org, route listing/deletion, service keys, user/role management, and events create notable gaps for full Cloud Foundry lifecycle management.