Skip to main content
Glama
Shreesha4994

SAP BTP Cloud Foundry MCP Server

by Shreesha4994
README.md
# SAP BTP Cloud Foundry MCP Server

[![npm version](https://badge.fury.io/js/sap-btp-cf-mcp-server.svg)](https://badge.fury.io/js/sap-btp-cf-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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

Maintenance

ActivityInactive
ResponsivenessNo issues