Skip to main content
Glama
krixerx

CIB Seven MCP Server

by krixerx

cib7-mcp

CIB Seven 프로세스 인스턴스를 조사하기 위한 MCP 도구입니다. Claude에게 실시간 실행 및 Keycloak 인증을 포함한 CIB Seven REST API에 대한 포괄적인 지식을 제공합니다.

기능

  • 조사 도구 — 프로세스 인스턴스, 개수, 일간/주간/월간 통계, 인시던트, 활동 기록, 변수, BPMN XML, 작업(job)

  • 의미론적 설명 — Claude는 원시 엔드포인트 데이터뿐만 아니라 각 필드가 운영상 무엇을 의미하는지 이해합니다.

  • BPMN 인트로스펙션 — 프로세스 정의 XML을 가져와 Claude가 예상 실행 경로와 실제 실행 경로를 추론합니다.

  • Keycloak 인증 — 자동 토큰 갱신을 포함한 OIDC 클라이언트 자격 증명 흐름

  • 변수 마스킹 — 민감한 데이터를 숨기기 위한 구성 가능한 정규식 패턴

  • 진단 프롬프트diagnose_stuck_processincident_report 워크플로우

Related MCP server: Procesio MCP Server

설치

Claude Desktop

claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "cib7": {
      "command": "npx",
      "args": ["cib7-mcp"],
      "env": {
        "CIB7_URL": "http://localhost:6009/rest"
      }
    }
  }
}

Claude Code

claude mcp add cib7-mcp -- npx cib7-mcp

그런 다음 환경 변수 CIB7_URL을 CIB Seven 인스턴스로 설정하세요.

구성

모든 구성은 환경 변수를 통해 이루어집니다.

변수

필수

설명

CIB7_URL

CIB Seven REST API URL (예: http://localhost:6009/rest)

KEYCLOAK_URL

아니요

Keycloak 서버 URL (예: https://keycloak.example.com)

KEYCLOAK_REALM

아니요

Keycloak 영역(realm) 이름

KEYCLOAK_CLIENT_ID

아니요

Keycloak 클라이언트 ID

KEYCLOAK_CLIENT_SECRET

아니요

Keycloak 클라이언트 비밀번호

CIB7_REDACT_PATTERNS

아니요

변수 마스킹을 위한 쉼표로 구분된 정규식 패턴 (예: password.*,secret.*,token.*)

KEYCLOAK_* 변수가 하나라도 설정되면 네 가지 모두 제공되어야 합니다. 아무것도 설정되지 않으면 도구는 인증되지 않은 모드로 실행됩니다.

Keycloak 사용 시

{
  "mcpServers": {
    "cib7": {
      "command": "npx",
      "args": ["cib7-mcp"],
      "env": {
        "CIB7_URL": "https://your-instance.com/rest",
        "KEYCLOAK_URL": "https://your-keycloak.com",
        "KEYCLOAK_REALM": "your-realm",
        "KEYCLOAK_CLIENT_ID": "mcp-client",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "CIB7_REDACT_PATTERNS": "password.*,secret.*,token.*,creditCard.*"
      }
    }
  }
}

도구

도구

설명

get_process_instance

ID로 프로세스 인스턴스 조회 — 상태, 정의, 비즈니스 키

list_process_instances

정의, 비즈니스 키, 상태, 시작/종료 날짜, 인시던트 상태별로 프로세스 인스턴스 검색 및 정렬

count_process_instances

행을 가져오지 않고 일치하는 인스턴스 개수 계산. list_process_instances와 동일한 필터 인터페이스 사용.

process_instance_stats

시작된 인스턴스의 일간/주간/월간 히스토그램. 기간별 개수 + 요약(합계, 평균, 최대, 최소) 반환.

list_incidents

열려 있는 인시던트 목록 (프로세스 인스턴스별로 필터링 가능)

get_activity_history

실행 추적 — 실행된 모든 활동을 순서대로 표시

get_process_variables

프로세스 인스턴스의 모든 변수 (마스킹 적용)

get_process_definition_xml

BPMN XML 모델 (가독성을 위해 다이어그램 요소 제거됨)

get_job_details

작업 실행 세부 정보 — 재시도, 예외 메시지

응답 뷰

목록 형태의 도구 4개는 행별로 반환할 필드를 제어하는 view 매개변수를 허용합니다. 최상위 응답은 항상 행의 배열이며, 행당 필드 세트만 변경됩니다.

도구

요약 필드 (기본값)

list_process_instances

id, processDefinitionId, processDefinitionKey, businessKey, startTime, endTime, state

get_activity_history

activityId, activityName, activityType, startTime, endTime, durationInMillis, canceled

list_incidents

id, processInstanceId, incidentTimestamp, incidentType, activityId, incidentMessage

get_job_details

id, processInstanceId, exceptionMessage, retries, dueDate, suspended, createTime

view: "summary"가 기본값이며, 원시 엔진 형태에 비해 응답 크기를 40~60% 줄입니다. 위 요약 목록에 없는 필드(예: processDefinitionName, startUserId, executionId, causeIncidentId, jobDefinitionId, 테넌트 ID)가 필요할 때 view: "full"을 전달하세요.

프롬프트

프롬프트

설명

diagnose_stuck_process

멈춘 프로세스 인스턴스에 대한 단계별 진단

incident_report

근본 원인 분석을 포함한 모든 열린 인시던트에 대한 포괄적인 보고서

통계 및 계산

세 가지 도구가 행을 가져오지 않고 볼륨 관련 질문에 답하기 위해 함께 작동합니다:

  • list_process_instances — 실제로 레코드가 필요할 때 사용합니다. 정의 키(단일 또는 다중), 정의 이름, 비즈니스 키, startedBy, 활성/일시 중단/완료 상태, startedAfter/startedBefore, finishedAfter/finishedBefore, withIncidents, incidentStatus별 필터링을 지원하며, sortBy/sortOrdermaxResults/firstResult를 통한 페이지네이션을 지원합니다.

  • count_process_instances — 동일한 필터 인터페이스를 사용하며 { count: N }만 반환합니다. 엔진이 행을 직렬화할 필요가 없도록 "몇 개인가요?"라는 질문에 사용하세요.

  • process_instance_stats — 날짜 범위에 걸쳐 시작된 인스턴스의 일간/주간/월간 히스토그램입니다. from, to, periodUnit(day, week, 또는 month)을 사용합니다. 내부적으로 날짜 창에 대해 count_process_instances를 병렬로 반복하므로, 30일 일간 히스토그램은 행을 가져오는 것이 아니라 30번의 저렴한 개수 호출로 이루어집니다.

process_instance_stats는 각 버킷과 함께 합계, 버킷당 평균, 가장 바쁜/한가한 버킷이 포함된 요약을 반환합니다:

{
  "from": "2025-03-01T00:00:00.000Z",
  "to":   "2025-03-31T00:00:00.000Z",
  "periodUnit": "day",
  "bucketCount": 30,
  "summary": {
    "total": 4820,
    "average": 160.67,
    "max": { "period": "2025-03-17", "count": 412 },
    "min": { "period": "2025-03-09", "count": 3 }
  },
  "periods": [
    { "period": "2025-03-01", "start": "...", "end": "...", "count": 145 },
    { "period": "2025-03-02", "start": "...", "end": "...", "count": 160 }
  ]
}

알아두어야 할 사항:

  • 창은 오른쪽이 열린 [start, nextStart) 형태이므로 경계 시점이 버킷에 두 번 계산되지 않습니다.

  • 주 단위 창은 from으로부터 7일씩 증가합니다. from 자체가 월요일이 아닌 경우 월요일에 맞춰지지 않으므로, ISO 주를 원하면 from을 적절히 선택하세요.

  • 월 단위 창은 달력 월 단위로 증가합니다 (가변 길이 월을 올바르게 처리).

  • 500개 버킷의 안전 제한이 있어 무한 루프 쿼리를 방지합니다. 더 긴 범위가 정말로 필요하면 maxBuckets로 늘리거나 더 큰 periodUnit을 사용하세요.

사용 예시

Claude에게 질문하세요:

  • "프로세스 abc-123이 멈췄나요?"

  • "열려 있는 모든 인시던트를 보여줘"

  • "프로세스 정의 orderProcess:1:456에 대한 BPMN 정의는 무엇인가요?"

  • "인시던트 보고서를 생성해줘"

  • "현재 실행 중인 orderProcess 인스턴스는 몇 개인가요?"

  • "지난주에 인시던트로 종료된 orderProcess 인스턴스는 몇 개인가요?"

  • "지난 30일 동안 orderProcess의 일일 볼륨을 보여줘 — 가장 바빴던 날은 언제인가요?"

  • "올해 시작된 모든 프로세스의 월간 히스토그램을 알려줘."

개발

npm install
npm run build
npm test

Node.js 18+가 필요합니다.

라이선스

MIT

Available Tools

7 tools
get_activity_historyA

Get the execution trace for a process instance — every activity that ran, in order.

This shows you exactly what happened: which tasks executed, in what order, and how long each took. Activities with a startTime but no endTime are currently executing or waiting.

Key fields:

  • activityType: startEvent, serviceTask, userTask, exclusiveGateway, etc.

  • activityName: human-readable name from the BPMN model

  • startTime/endTime: when the activity started and finished

  • durationInMillis: how long it took (null if still running)

  • canceled: true if the activity was interrupted

ParametersJSON Schema
NameRequiredDescriptionDefault
processInstanceIdYesThe process instance ID to trace

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It excellently documents output semantics: explaining that missing endTime indicates running activities, that durationInMillis is null for active tasks, and detailing the canceled flag. It could improve by explicitly stating this is read-only/safe or mentioning any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Information is perfectly front-loaded: purpose in sentence one, value proposition in sentence two, critical interpretation guidance in sentence three. The 'Key fields' section efficiently documents output structure without verbosity. Every sentence and bullet earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description compensates comprehensively by enumerating and explaining key response fields (activityType, activityName, timestamps, duration, canceled). It contextualizes these within BPMN concepts (startEvent, serviceTask, etc.). Only minor gap is explicit confirmation of read-only safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear description 'The process instance ID to trace'. The tool description references 'process instance' in the context but doesn't add parameter-specific guidance beyond the schema's documentation. Baseline 3 is appropriate given the schema does the heavy lifting for this single required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Get') and resource ('execution trace for a process instance'), clearly distinguishing this from siblings like get_process_instance (current state) or get_process_variables (data). The scope 'every activity that ran, in order' precisely defines what this tool retrieves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool returns (execution history, task order, duration), which implies when to use it (when you need audit trails). However, it lacks explicit guidance on when to prefer this over get_process_instance for current state or how it relates to the process lifecycle.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_job_detailsA

Get job execution details for a process instance. Jobs are units of work the engine executes — service tasks, timers, message events.

Key fields:

  • retries: how many retry attempts remain. 0 means the engine gave up and created an incident.

  • exceptionMessage: the error from the last failed execution attempt

  • dueDate: when the job is scheduled to execute (for timers)

  • suspended: true if the job is paused

ParametersJSON Schema
NameRequiredDescriptionDefault
processInstanceIdNoFilter jobs by process instance ID
maxResultsNoMax results (default 25)
firstResultNoOffset for pagination (default 0)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema, the description carries full disclosure burden. It excellently documents key output fields (retries, exceptionMessage, dueDate, suspended) and their semantics (e.g., '0 means the engine gave up'). Explains job states and error conditions without contradicting the read-only nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured blocks: purpose definition followed by key field documentation. Every sentence earns its place. Front-loaded with the primary action, followed by domain context, then specific field semantics. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Compensates effectively for missing output schema by documenting four critical output fields with their meanings and relationships. Explains domain concepts (jobs vs incidents) necessary for interpretation. Given 3 simple parameters and no annotations, the description provides sufficient context for successful invocation and result interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 3 params documented). Description implies 'processInstanceId' usage via 'for a process instance', but doesn't add syntax details, format constraints, or pagination guidance beyond the schema. Baseline 3 appropriate given schema completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb ('Get') and resource ('job execution details'). Defines what jobs are ('units of work... service tasks, timers, message events') distinguishing them from process instances or activities. However, it doesn't explicitly differentiate from sibling 'list_incidents' despite mentioning the incident relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains job lifecycle concepts (retries=0 creates incident) which implies usage context, but lacks explicit guidance on when to use this vs 'get_activity_history' or 'list_incidents'. No explicit prerequisites or exclusions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_definition_xmlA

Fetch the BPMN XML model for a process definition. This is the blueprint — it shows the expected flow of the process.

Use the definitionId from get_process_instance to fetch the model. The XML includes all activities, gateways, sequence flows, and conditions. Diagram layout elements are stripped for readability.

Read the XML to understand:

  • The expected happy path (sequence of activities)

  • Gateway conditions (what determines which path is taken)

  • Error boundary events (what happens when activities fail)

  • Timer events (scheduled waits or timeouts)

ParametersJSON Schema
NameRequiredDescriptionDefault
processDefinitionIdYesThe process definition ID (from definitionId field of a process instance)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Successfully discloses that 'Diagram layout elements are stripped for readability' (transformation behavior) and details what the XML includes (activities, gateways, sequence flows). Minor gap: could mention if this is expensive or cached, but 'Fetch' clearly indicates read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Excellent structure: first sentence defines purpose, second links to prerequisite tool, third sets expectations about XML content, followed by targeted bullet points explaining analytical use cases. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description comprehensively compensates by detailing XML contents (activities, gateways, conditions) and explaining analytical value (happy path, error boundaries, timers). For a single-parameter read operation, coverage is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing full parameter documentation. Description reinforces the parameter provenance by referencing get_process_instance, matching the schema description. At 100% coverage, baseline 3 is appropriate as schema carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Fetch' with clear resource 'BPMN XML model for a process definition' and distinguishes from siblings like get_process_instance (which retrieves runtime instance data) by emphasizing this retrieves the static 'blueprint' model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite 'Use the definitionId from get_process_instance to fetch the model,' providing clear workflow guidance linking to sibling tool. Also explains when to use the result (to understand happy path, gateway conditions, error events).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_instanceA

Look up a CIB Seven process instance by its ID. Returns the instance's current state, definition reference, business key, and suspension status.

Use this when you have a specific process instance ID and need to understand its current state. If you only have a business key or definition key, use list_process_instances instead.

Key response fields:

  • suspended: true means manually paused by an operator

  • ended: true means the process completed or was cancelled

  • businessKey: the domain identifier (e.g. order number, case ID)

  • definitionId: use this to fetch the BPMN XML via get_process_definition_xml

ParametersJSON Schema
NameRequiredDescriptionDefault
processInstanceIdYesThe UUID of the process instance

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It explains semantic meaning of key response states (suspended=manually paused, ended=completed/cancelled, businessKey=domain identifier) and cross-tool workflow (definitionId links to get_process_definition_xml). Could explicitly state read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three logical segments (purpose/return, usage guidance, response documentation) with efficient bullet points for field definitions. No redundant text, though slightly longer than minimal necessary due to embedded response documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Compensates for missing output schema by comprehensively documenting key response fields and their domain semantics (e.g., business key examples). Covers relationships to sibling tools and CIB Seven domain context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter description ('The UUID of the process instance'). Description mentions lookup 'by its ID' but adds no additional semantic details (format constraints, validation rules) beyond schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Look up' with resource 'CIB Seven process instance' and explicitly distinguishes from sibling 'list_process_instances' by stating it requires a specific ID vs business/definition keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains explicit when-to-use clause ('when you have a specific process instance ID') and explicit alternative routing ('If you only have a business key... use list_process_instances instead').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_variablesA

Get all variables for a process instance. Variables hold the data that drives process execution — form inputs, API responses, decision results.

Sensitive variable values may be redacted (shown as [REDACTED]) based on configured patterns.

Common variable patterns:

  • Error flags or status fields that indicate why a process is waiting

  • Retry counters that show how many times something was attempted

  • Input data from forms or API calls

ParametersJSON Schema
NameRequiredDescriptionDefault
processInstanceIdYesThe process instance ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full disclosure burden. Adds valuable security context about redaction ('[REDACTED]' based on patterns). Missing confirmation that this is read-only, auth requirements, or return structure details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear paragraph separation and bullet points for common patterns. No filler text; redaction warning and usage patterns earn their place. Appropriately sized for the domain complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a single-parameter read tool. Compensates for missing output schema by explaining what variables represent and their business relevance. Redaction disclosure addresses a key operational concern.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage ('The process instance ID'), meeting baseline expectations. Description mentions 'process instance' but doesn't add parameter-specific semantics like ID format or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource ('Get all variables for a process instance') and distinguishes scope by explaining what variables contain (form inputs, API responses) versus instance metadata or activities. Lacks explicit differentiation from sibling tools like get_process_instance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implied usage guidance through 'Common variable patterns' section (error flags, retry counters, input data), hinting at when to use the tool. However, lacks explicit when-to-use/when-not-to-use guidance or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_incidentsA

List open incidents in the process engine. Incidents record things that went wrong during execution.

Key incident types:

  • failedJob: a service task or timer threw an exception and the engine gave up retrying (retries=0)

  • failedExternalTask: an external task worker reported a failure

Use without filters to see all open incidents. Filter by processInstanceId to see incidents for a specific process.

ParametersJSON Schema
NameRequiredDescriptionDefault
processInstanceIdNoFilter by process instance ID
incidentTypeNoFilter by type: failedJob, failedExternalTask
maxResultsNoMax results (default 25)
firstResultNoOffset for pagination (default 0)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It effectively discloses behavioral traits by explaining the domain logic: failedJob means 'retries=0' and failedExternalTask means 'worker reported a failure.' It also clarifies these are 'open' incidents (state-based filtering). Could explicitly state this is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections: purpose declaration, bulleted type definitions with explanations, and usage guidance. Every sentence earns its place—no filler. The progression from general definition to specific types to usage patterns is logical and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with 100% schema coverage and no output schema, the description provides adequate domain context. It explains the process engine incident model sufficiently and covers pagination parameters implicitly through usage guidance. As a list operation, it appropriately focuses on filtering logic rather than return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, but the description adds crucial semantic context beyond the schema. It explains what 'failedJob' actually means (service task/timer threw exception, retries exhausted) and defines failedExternalTask, helping the agent understand the business logic behind the incidentType parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'List[s] open incidents in the process engine' with specific verb and resource. It defines what incidents are ('things that went wrong during execution') and identifies key types. However, it does not explicitly distinguish from sibling tools like get_activity_history or list_process_instances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit filtering guidance: 'Use without filters to see all open incidents. Filter by processInstanceId to see incidents for a specific process.' This clarifies how to scope queries. Lacks explicit alternatives (e.g., when to use get_job_details instead), but the context provided is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_process_instancesA

Search for process instances using filters. Uses the history API to find both running and completed instances.

Use this when you need to find process instances by business key, definition key, or state. Returns an array of historic process instances.

Filter options:

  • processDefinitionKey: the BPMN process ID (e.g., "orderProcess")

  • businessKey: domain identifier (e.g., "ORDER-12345")

  • state: ACTIVE, COMPLETED, SUSPENDED, or EXTERNALLY_TERMINATED

  • maxResults: limit results (default 25)

  • firstResult: offset for pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
processDefinitionKeyNoFilter by BPMN process definition key
businessKeyNoFilter by business key
activeNoOnly active (running) instances
suspendedNoOnly suspended instances
completedNoOnly completed instances
maxResultsNoMax results to return (default 25)
firstResultNoOffset for pagination (default 0)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It successfully adds critical behavioral context by specifying the tool uses the 'history API' and returns 'historic process instances,' implying read-only access to archived data. It also discloses the default pagination limit (25).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Text is efficiently structured with a clear opening sentence, a 'when to use' sentence, a return value statement, and a bulleted list for filter options. Every sentence earns its place; no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters with 100% schema coverage and no output schema, the description adequately covers tool purpose, behavioral API type (history), return structure (array), and provides concrete examples for key filters. Missing only minor details like explicit mention that all parameters are optional or the relationship between the three boolean state flags.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While the schema has 100% description coverage (baseline 3), the description adds helpful examples for processDefinitionKey and businessKey. However, it documents a 'state' enum parameter (ACTIVE, COMPLETED, SUSPENDED, EXTERNALLY_TERMINATED) that does not exist in the schema; instead, the schema implements these as three separate boolean flags (active, suspended, completed). This mismatch creates confusion about how to structure filter parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Search for process instances using filters' providing a specific verb and resource. It further distinguishes scope by noting it uses the 'history API to find both running and completed instances,' which differentiates it from siblings like get_process_instance (singular retrieval) and get_activity_history (activity level vs instance level).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this when you need to find process instances by business key, definition key, or state,' providing clear context for when to select this tool. While it doesn't explicitly name the alternative (e.g., 'use get_process_instance when you have an ID'), the filtering focus implies this is for discovery rather than direct retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observedget_activity_history
    • First observedget_job_details
    • First observedget_process_definition_xml
    • First observedget_process_instance
    • First observedget_process_variables
    • First observedlist_incidents
    • First observedlist_process_instances

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct aspect of process execution with clear boundaries: instances (list/get), execution trace (activity_history), data (variables), background work (job_details), blueprint (definition_xml), and errors (incidents). No ambiguous overlap exists between these concepts.

Naming Consistency4/5

Follows consistent snake_case verb_noun pattern (get_*, list_*), but applies the 'process_' prefix inconsistently (e.g., get_process_instance vs get_activity_history). Despite this, the naming remains readable and predictable.

Tool Count5/5

Seven tools provide a focused, well-scoped surface for process observability without bloat. Each tool earns its place by covering a specific inspection need, fitting appropriately within the typical 3-15 tool range for this domain.

Completeness3/5

Covers core read-only inspection workflows well, but has notable gaps for a general CIB Seven integration: missing list_process_definitions (required to browse definitions without an instance), missing task-specific operations, and lacks any write/modify capabilities (create instances, update variables, resolve incidents).

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to interact with SAP Signavio Process Manager through its API, supporting operations like managing process models, folders, dictionary entries, and searching across business process content.
    23
    6 npm
    9
    ISC
  • A
    license
    B
    quality
    B
    maintenance
    Exposes over 300 Operaton BPM REST operations as tools for AI agents to interact with the Operaton engine. It enables managing process deployments, instances, user tasks, and decision tables through natural language commands.
    100
    24 npm
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables seamless interaction with the IBM Instana observability platform, allowing access to real-time observability data directly within development workflows.
    4
    Apache 2.0