README.mdâĸ5.29 kB
# mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)
> **Acknowledgment**: This project was originally inspired by [mario-andreschak/mcp-abap-adt](https://github.com/mario-andreschak/mcp-abap-adt). We started with the core concept and then evolved it into an independent project with our own architecture and features.
This project provides a server that allows you to interact with SAP ABAP systems using the Model Context Protocol (MCP). Think of it as a bridge that lets tools like [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) (a VS Code extension) talk to your ABAP system and retrieve information like source code, table structures, and more.
<a href="https://glama.ai/mcp/servers/gwkh12xlu7">
<img width="380" height="200" src="https://glama.ai/mcp/servers/gwkh12xlu7/badge" alt="ABAP ADT MCP server" />
</a>
## Quick Start
1. **Install**: See [Installation Guide](doc/installation/INSTALLATION.md)
2. **Configure**: See [Client Configuration](doc/user-guide/CLIENT_CONFIGURATION.md)
3. **Use**: See [Available Tools](doc/user-guide/AVAILABLE_TOOLS.md)
## Features
- **đī¸ Domain Management**: `GetDomain`, `CreateDomain` - Create and manage ABAP domains
- **đ Data Element Management**: `GetDataElement`, `CreateDataElement` - Create and retrieve ABAP data elements
- **đĻ Table Management**: `GetTable`, `CreateTable` - Create and retrieve ABAP database tables
- **đī¸ Structure Management**: `GetStructure`, `CreateStructure` - Create and retrieve ABAP structures
- **đī¸ View Management**: `GetView`, `CreateView` - Create CDS Views and Classic Views
- **đ Class Management**: `GetClass`, `CreateClass` - Create and retrieve ABAP classes
- **đ Program Management**: `GetProgram`, `CreateProgram` - Create and retrieve ABAP programs
- **⥠Activation**: `ActivateObject` - Universal activation for any ABAP object
- **đ Transport Management**: `CreateTransport`, `GetTransport` - Create and retrieve transport requests
- **đ Enhancement Analysis**: `GetEnhancements`, `GetEnhancementByName` - Enhancement discovery
- **đ Include Management**: `GetIncludesList` - Recursive include discovery
- **đ SAP BTP Support**: JWT/XSUAA authentication with browser-based token helper
- **đž Freestyle SQL**: `GetSqlQuery` - Execute custom SQL queries via ADT Data Preview API
> âšī¸ **ABAP Cloud limitation**: Direct ADT data preview of database tables is blocked by SAP BTP backend policies. The server returns a descriptive error when attempting such operations. On-premise systems continue to support data preview.
## Documentation
### For Users
- **[Installation Guide](doc/installation/INSTALLATION.md)** - Installation instructions for all platforms
- **[Client Configuration](doc/user-guide/CLIENT_CONFIGURATION.md)** - How to configure MCP clients
- **[Available Tools](doc/user-guide/AVAILABLE_TOOLS.md)** - Complete list of available MCP tools
### For Administrators
- **[Installation Guide](doc/installation/INSTALLATION.md)** - Platform-specific installation guides
### For Developers
- **[Architecture Documentation](doc/architecture/)** - System architecture and design decisions
- **[Development Documentation](doc/development/)** - Testing guides and development resources
- **[CHANGELOG.md](CHANGELOG.md)** - Version history and changes
## Dependencies
This project uses two npm packages:
- **[@mcp-abap-adt/connection](https://www.npmjs.com/package/@mcp-abap-adt/connection)** â connection/auth/session layer
- **[@mcp-abap-adt/adt-clients](https://www.npmjs.com/package/@mcp-abap-adt/adt-clients)** â Builder-first ADT clients
These packages are automatically installed via `npm install` and are published to npm.
## Running the Server
### Global Installation (Recommended)
After installing globally with `npm install -g`, you can run from any directory:
```bash
# Show help
mcp-abap-adt --help
# Default stdio mode (looks for .env in current directory)
mcp-abap-adt
# Use custom .env file
mcp-abap-adt --env=/path/to/my.env
# HTTP mode
mcp-abap-adt-http --http-port=8080
# SSE mode
mcp-abap-adt-sse --sse-port=3001
```
### Development Mode
```bash
# Build and run locally
npm run build
npm start
# HTTP mode
npm run start:http
# SSE mode
npm run start:sse
```
### Environment Configuration
The server automatically looks for `.env` file in this order:
1. Path specified via `--env` argument
2. `.env` in current working directory (where you run the command)
3. `.env` in package installation directory
**Example .env file:**
```bash
SAP_URL=https://your-sap-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your-username
SAP_PASSWORD=your-password
```
For JWT authentication (SAP BTP):
```bash
SAP_URL=https://your-btp-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=jwt
SAP_JWT_TOKEN=your-jwt-token
```
See [Client Configuration](doc/user-guide/CLIENT_CONFIGURATION.md) for complete configuration options.
## Development
### Testing
```bash
npm test
```
### Building
```bash
npm run build
```
### Developer Tools
```bash
# Generate tool documentation
npm run docs:tools
# See tools/README.md for more developer utilities
```
## Contributors
Thank you to all contributors! See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the complete list.