Skip to main content
Glama
willpowell8

Signavio MCP Server

by willpowell8
README.md
# Signavio MCP Server

A comprehensive Model Context Protocol (MCP) server that provides seamless integration between SAP Signavio Process Manager and AI-powered development tools. This server exposes the complete Signavio API as a set of tools, enabling AI assistants like Claude, Cursor, and other MCP-compatible clients to interact with your Signavio workspace programmatically.

## Overview

The Signavio MCP Server bridges the gap between business process management and AI-assisted development workflows. Whether you're automating process documentation, managing business process models, maintaining process dictionaries, or integrating Signavio data into your development pipeline, this server provides a unified interface for all Signavio API operations.

### Key Features

- **Complete API Coverage**: Full access to Signavio Process Manager API endpoints including models, folders, dictionary entries, and search functionality
- **AI Assistant Integration**: Seamlessly works with Claude, Cursor, and other MCP-compatible AI development tools
- **Business Process Automation**: Automate process model creation, updates, exports, and management tasks
- **Dictionary Management**: Create, update, and search business process dictionaries and glossary entries
- **Multi-format Export**: Export process models in JSON, BPMN 2.0 XML, PNG, and SVG formats
- **Search Capabilities**: Full-text search across models, revisions, files, and dictionary entries
- **Zero Configuration**: Run directly with npx or install locally for development

## Prerequisites

- Node.js (v14 or higher)
- npm or yarn
- Signavio account with API access
- Your Signavio tenant ID (Workspace ID)

## Installation

### Option 1: Using npx (Recommended)

No installation required! You can run the MCP server directly using `npx`:

```bash
npx signavio-mcp
```

### Option 2: Local Installation

1. **Install the package:**
   ```bash
   npm install signavio-mcp
   ```

2. **Or clone the repository:**
   ```bash
   git clone https://github.com/willpowell8/signavio-mcp.git
   cd signavio-mcp
   npm install
   ```

## Configuration

**Configure environment variables:**
   
   Create a `.env` file in the project root with your credentials:
   ```env
   SIGNAVIO_BASE_URL=https://api.eu.signavio.cloud.sap
   SIGNAVIO_EMAIL=your-email@example.com
   SIGNAVIO_PASSWORD=your-password
   SIGNAVIO_TENANT=your-tenant-id
   ```
   
   **Note:** The base URL is region-specific. Use the appropriate URL for your region:
   - EU: `https://api.eu.signavio.cloud.sap`
   - USA: `https://api.us.signavio.cloud.sap`
   - Australia: `https://api.au.signavio.cloud.sap`
   - Canada: `https://api.ca.signavio.cloud.sap`
   - Japan: `https://api.jp.signavio.cloud.sap`
   - Singapore: `https://api.sgp.signavio.cloud.sap`
   - South Korea: `https://api.kr.signavio.cloud.sap`

## Finding Your Tenant ID

To find your tenant ID (Workspace ID):
1. Log in to SAP Signavio Process Manager
2. In the Explorer, go to **Help** menu
3. Select **Workspace information**
4. Copy the **Workspace ID** - this is your tenant ID

## Security Notes

- Never commit your `.env` file to version control
- The `.env` file should be included in `.gitignore`
- Consider using environment variables or a secrets manager for production use

## MCP Server Configuration

The MCP server uses environment variables from your `.env` file. You can also:

- Set environment variables in your system
- Pass environment variables when starting the server

### MCP Client Configuration

For Cursor or other MCP-compatible clients, add this to your MCP configuration:

**Using npx (Recommended):**
```json
{
  "mcpServers": {
    "signavio-api": {
      "command": "npx",
      "args": ["-y", "signavio-mcp"],
      "env": {
        "SIGNAVIO_BASE_URL": "https://api.eu.signavio.cloud.sap",
        "SIGNAVIO_EMAIL": "your-email@example.com",
        "SIGNAVIO_PASSWORD": "your-password",
        "SIGNAVIO_TENANT": "your-tenant-id"
      }
    }
  }
}
```

**Using locally installed package:**
```json
{
  "mcpServers": {
    "signavio-api": {
      "command": "node",
      "args": ["/path/to/node_modules/signavio-mcp/mcp-server.js"],
      "env": {
        "SIGNAVIO_BASE_URL": "https://api.eu.signavio.cloud.sap",
        "SIGNAVIO_EMAIL": "your-email@example.com",
        "SIGNAVIO_PASSWORD": "your-password",
        "SIGNAVIO_TENANT": "your-tenant-id"
      }
    }
  }
}
```

### Available MCP Tools

The MCP server provides the following tools:

#### Authentication
- `signavio_authenticate` - Authenticate with Signavio API

#### Directory/Folder Operations
- `signavio_get_root_folders` - Get workspace root folders
- `signavio_get_folder_contents` - Get folder contents by ID
- `signavio_create_folder` - Create a new folder
- `signavio_update_folder` - Rename or update folder description
- `signavio_move_folder` - Move folder to new parent or trash
- `signavio_delete_folder` - Permanently delete a folder

#### Dictionary/Glossary Operations
- `signavio_search_dictionary` - Search dictionary entries
- `signavio_get_dictionary_entry` - Get specific dictionary entry
- `signavio_create_dictionary_entry` - Create new dictionary entry
- `signavio_update_dictionary_entry` - Update dictionary entry
- `signavio_delete_dictionary_entry` - Delete dictionary entry
- `signavio_get_dictionary_categories` - Get all dictionary categories
- `signavio_get_dictionary_category` - Get specific category
- `signavio_create_dictionary_category` - Create new category

#### Model Operations
- `signavio_get_model` - Get model metadata
- `signavio_get_model_revisions` - Get all model revisions
- `signavio_export_model` - Export model (json, bpmn2_0_xml, png, svg)
- `signavio_create_model` - Create new model/diagram
- `signavio_update_model` - Update model (creates new revision)
- `signavio_move_model` - Move model to different folder
- `signavio_publish_model` - Publish model(s) to Collaboration Hub

#### Search Operations
- `signavio_search` - Full-text search across all content types

### Running the MCP Server

**Using npx (Recommended):**
```bash
npx signavio-mcp
```

**Using locally installed package:**
```bash
npm start
```

**Or directly:**
```bash
node mcp-server.js
```

### Testing the MCP Server

A comprehensive test script is available to verify all MCP server functionality:

```bash
npm test
```

Or directly:
```bash
node test-mcp-server.js
```

The test script will:
- ✅ Test authentication
- ✅ Test directory/folder operations (get root folders, get folder contents)
- ✅ Test dictionary operations (categories, search, get entries)
- ✅ Test model operations (search, get model, get revisions, export)
- ✅ Test search functionality
- ✅ Provide a detailed summary of all tests

**Note:** The test script uses your `.env` configuration and will skip tests that require existing data (like getting a specific model) if no data is found. This is expected behavior for a clean workspace.

## API Documentation

For more information about the Signavio API, refer to the [SAP Signavio Process Manager API Guide](https://help.sap.com/doc/f453aaa41306444880035213c92c0144/SHIP/en-US/sap-signavio-process-modeler-api-guide-en.pdf).

TDQS

B3.4/5.0

Scored across 23 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions. For example, signavio_create_dictionary_entry, signavio_get_dictionary_entry, signavio_update_dictionary_entry, and signavio_delete_dictionary_entry form a complete CRUD set for dictionary entries, with no overlap in functionality. Tools like signavio_export_model and signavio_publish_model serve unique export and publishing roles, making misselection unlikely.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with the prefix 'signavio_' and snake_case throughout. The naming convention is predictable, using verbs like create, get, update, delete, move, export, publish, and search paired with specific nouns (e.g., dictionary_entry, folder, model). This uniformity enhances readability and usability for agents.

Tool Count4/5

With 23 tools, the count is slightly high but reasonable for a comprehensive BPM/process modeling server like Signavio. It covers multiple domains (folders, models, dictionary, search), and each tool appears to earn its place by addressing specific operations. However, it borders on being heavy, which might overwhelm agents if not well-organized.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for key domains: folders (create, get, update, move, delete), models (create, get, update, move, export, publish, revisions), and dictionary entries (create, get, update, delete, categories). It includes essential utilities like authentication, search, and root folder access, with no obvious gaps that would cause agent failures in typical workflows.