Skip to main content
Glama
Raistlin82

SAP OData to MCP Server

by Raistlin82

SAP OData to AI-Powered MCP Server (Optimized)

This repository is an enterprise-ready MCP (Model Context Protocol) server that bridges SAP OData services with AI capabilities. Based on the original project btp-sap-odata-to-mcp-server by @lemaiwo, this optimized version features enhanced security, simplified configuration, modular authentication, and comprehensive Cloud Foundry integration.

✨ Key Features

🔐 Enhanced Security Architecture

  • Modular Authentication System: Factory pattern supporting IAS, OAuth2, JWT, Basic Auth, and API Keys

  • Secure Session Management: Thread-safe session bridging with proper locking mechanisms

  • Role-Based Access Control: Granular permissions with XSUAA integration

  • Principal Propagation: Maintains user context throughout the request lifecycle

  • Security Best Practices: No sensitive data logging, secure error handling, JWT validation

🎯 Simplified OData Discovery

  • Pattern-Based Filtering: Simple include/exclude patterns for service discovery

  • Business Domain Mode: Pre-configured domains (sales, finance, HR, etc.)

  • Whitelist Mode: Explicit service control for production environments

  • Smart Defaults: Automatic exclusion of test/debug services

🧠 AI-Powered Capabilities

  • Smart Query Router: Natural language to OData conversion

  • Hierarchical Tool Architecture: 17+ tools organized in logical layers

  • Intelligent Workflow Orchestration: Automatic tool chaining and optimization

  • Real-time Analytics: KPI monitoring and trend analysis

🎨 Interactive UI Tools Suite

  • ui-form-generator: Dynamic SAP Fiori forms with validation

  • ui-data-grid: Interactive tables with sorting and filtering

  • ui-dashboard-composer: Real-time KPI dashboards

  • ui-workflow-builder: Visual workflow creation

  • ui-report-builder: Analytical reports with drill-down

☁️ Cloud-Native Features

  • Cloud Foundry Optimized: Native integration with CF services

  • Structured Logging: SAP Cloud Logging with fallback support

  • Health Monitoring: Comprehensive health check endpoints

  • Performance Metrics: Built-in performance tracking

  • Graceful Shutdown: Proper resource cleanup

Related MCP server: SAP OData to MCP Server

🚀 Quick Start

Prerequisites

  • Access to an SAP BTP, Cloud Foundry environment.

  • Required BTP services: XSUAA, Identity, Connectivity, Destination.

  • Node.js >= 18.

1. Installation

git clone <this-repo>
cd btp-sap-odata-to-mcp-server-optimized
npm install

2. Configuration

Configure the application using environment variables. See the Configuration Guide for detailed documentation.

cp .env.example .env
# Edit .env with your configuration

Quick Configuration Example

# Authentication
SAP_IAS_URL=https://your-tenant.accounts.ondemand.com
SAP_IAS_CLIENT_ID=your-client-id
SAP_IAS_CLIENT_SECRET=your-secret

# OData Discovery (Simplified)
ODATA_DISCOVERY_MODE=pattern
ODATA_INCLUDE_PATTERNS=*API*,Z*
ODATA_EXCLUDE_PATTERNS=*_TEST*,*_TEMP*
ODATA_MAX_SERVICES=50

# Destinations
SAP_DESTINATION_NAME=SAP_S4HANA

3. Build and Deploy

# Build the TypeScript source code for BTP
npm run build:btp

# Deploy to SAP BTP, Cloud Foundry
npm run deploy:btp

📚 Documentation

Complete documentation is available with structured navigation for all aspects of the project.

🏠 Documentation Hub

Main navigation center with use-case-based guidance and complete file index.

Category

Document

Description

Getting Started

Configuration Guide

Environment setup, OData discovery, CF deployment

Architecture

Architecture Overview

System design, security model, tool hierarchy

🎨 Modern Diagrams

Modern Architecture Diagrams

NEW! Interactive visual architecture

Usage

User Guide

Authentication, tool usage, workflow examples

Reference

Tool Reference

Complete tool documentation with parameters

Deployment

Deployment Guide

SAP BTP and local development setup

Development

Testing Guide

Test suite and development guidelines

Changes

Changelog

Version history and feature updates

📖 Navigation Flow

README.md → docs/README.md → All Documentation
     ↓           ↓
Quick Start → Structured Navigation → Complete Coverage

Available Tools

19 tools
business-intelligence-insightsGenerate business insights from SAP dataD

Generate business insights from SAP data

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
entityTypesNoSAP entity types to analyze
serviceIdsNoSAP service IDs to include
analysisTypeNoType of analysis to performcomprehensive
timeWindowNoTime window for analysis
insightIdNoSpecific insight ID (for get action)
minConfidenceNoMinimum confidence threshold for insights
includeRecommendationsNoInclude actionable recommendations
exportFormatNoExport format (for export action)json

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read-only or mutating operation, what permissions might be required, whether it's computationally intensive, what the output format might be, or any rate limits. For a tool with 9 parameters including complex nested objects, this lack of behavioral context is a critical gap.

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

Conciseness2/5

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

While technically concise with just one sentence, this represents under-specification rather than effective brevity. The single sentence 'Generate business insights from SAP data' doesn't earn its place by providing meaningful guidance or context. A truly concise description would efficiently convey essential information; this merely states the obvious without adding value.

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

Completeness1/5

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

For a complex tool with 9 parameters, no annotations, no output schema, and numerous sibling alternatives, the description is completely inadequate. It fails to address the tool's behavioral characteristics, usage context, parameter relationships, or output expectations. The agent would struggle to understand when and how to use this tool effectively given the minimal information provided.

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?

The schema description coverage is high at 89%, so most parameters are documented in the schema itself. The description adds no additional parameter information beyond what's in the schema - it doesn't explain relationships between parameters, provide examples of valid values, or clarify how parameters interact. Given the high schema coverage, the baseline score of 3 is appropriate, but the description fails to compensate for the remaining 11% coverage gap.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines1/5

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

The description provides absolutely no guidance on when to use this tool versus alternatives. With numerous sibling tools that appear related (smart-data-analysis, predictive-analytics-engine, kpi-dashboard-builder, etc.), there is no indication of this tool's specific use cases, prerequisites, or differentiation. The agent receives no help in selecting this tool over other analytical options.

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

business-process-insightsBusiness Process InsightsC

Extract business process insights from SAP transactional data using AI pattern recognition. Identifies workflow inefficiencies and automation opportunities.

ParametersJSON Schema
NameRequiredDescriptionDefault
processTypeYesType of business process to analyze
processDataYesHistorical process execution data
timeframeNoAnalysis timeframe
focusAreasNoSpecific areas to focus the analysis on

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool uses 'AI pattern recognition' and identifies 'inefficiencies and automation opportunities,' but doesn't describe what the tool actually returns (e.g., report format, insights structure), whether it's read-only or mutates data, performance characteristics, or any limitations. This is inadequate for a tool with AI components and no structured safety hints.

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?

The description is extremely concise and front-loaded: two sentences that directly state the tool's function and outcomes with zero wasted words. Every phrase ('Extract business process insights,' 'using AI pattern recognition,' 'Identifies workflow inefficiencies') earns its place by contributing essential information efficiently.

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

Completeness2/5

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

Given the tool's complexity (AI-driven analysis of business processes), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what insights look like, how results are structured, any limitations or assumptions, or behavioral traits. For a tool that likely produces rich outputs, this leaves significant gaps for an AI agent to understand its operation.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no specific parameter semantics beyond implying that 'processData' should be 'historical' and related to 'SAP transactional data,' which is marginal value. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with additional insights like data format examples or timeframe interpretation.

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's purpose: 'Extract business process insights from SAP transactional data using AI pattern recognition.' It specifies the verb ('extract'), resource ('business process insights'), and source ('SAP transactional data'), distinguishing it from general analytics tools. However, it doesn't explicitly differentiate from sibling tools like 'smart-data-analysis' or 'predictive-analytics-engine' beyond mentioning SAP-specific data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions 'workflow inefficiencies and automation opportunities' as outcomes, but doesn't specify prerequisites, when to choose it over other analysis tools (e.g., 'smart-data-analysis'), or any exclusions. Usage is implied by the focus on SAP and business processes, but lacks explicit context.

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

check-sap-authenticationCheck SAP AuthenticationC

🔐 Validate/associate authentication session. Call with session_id to authenticate.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoUser session ID obtained from OAuth authentication. Provide this to authenticate and associate with your MCP session.
validateSessionNoWhether to validate existing session
requestPreAuthNoWhether to request pre-authentication for upcoming operations (recommended: true)
contextNoContext for authentication check

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions authentication and session association but fails to describe critical behaviors: what happens on successful/failed validation, whether this creates persistent sessions, what permissions are checked, or any rate limits. The description is too vague for a security-critical authentication tool.

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?

The description is extremely concise with just two sentences. The first sentence states the purpose, and the second provides the basic usage instruction. There's no wasted language or unnecessary elaboration, making it efficiently front-loaded and easy to parse.

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

Completeness2/5

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

For an authentication tool with 4 parameters (including a nested object), no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, what authentication state changes occur, or how it integrates with other SAP tools. The complexity of the context parameter with anticipated operations and session types deserves more explanation than provided.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description only mentions the session_id parameter, adding minimal value beyond what the schema provides. It doesn't explain the relationship between parameters or the overall authentication flow, maintaining the baseline score for high schema coverage.

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's purpose with the verb 'validate/associate' and the resource 'authentication session'. It specifies the required parameter (session_id) and the action (authenticate). However, it doesn't differentiate this authentication tool from other SAP-related tools in the sibling list, which mostly focus on data operations rather than authentication.

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

Usage Guidelines2/5

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

The description provides minimal guidance: 'Call with session_id to authenticate.' It doesn't specify when to use this tool versus other authentication methods, what prerequisites exist, or when not to use it. No alternatives or contextual triggers are mentioned, leaving the agent with insufficient guidance for optimal tool selection.

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

discover-service-entitiesDiscover Service EntitiesA

List all entities and their capabilities within a specific SAP service. Use this after finding a service to understand what data you can work with.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe SAP service ID to explore
showCapabilitiesNoShow CRUD capabilities for each entity

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool lists entities and capabilities, it doesn't describe what the output looks like (e.g., format, structure), whether it's paginated, if there are rate limits, or authentication requirements. For a tool with no annotations and no output schema, this leaves significant behavioral gaps.

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?

The description is two sentences with zero waste. The first sentence states the purpose, and the second provides usage guidelines. It's appropriately sized and front-loaded, with every sentence earning its place.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is adequate but incomplete. It covers purpose and basic usage but lacks details on output format, error handling, or behavioral traits. Without annotations or an output schema, more context would be helpful for an agent to use it effectively.

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 description coverage is 100%, so the schema already fully documents both parameters (serviceId and showCapabilities). The description doesn't add any parameter-specific details beyond what the schema provides, such as examples or constraints. This meets the baseline of 3 for high schema coverage.

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's purpose with 'List all entities and their capabilities within a specific SAP service.' It specifies the verb ('List'), resource ('entities and their capabilities'), and scope ('within a specific SAP service'). However, it doesn't explicitly differentiate from sibling tools like 'search-sap-services' or 'get-entity-schema,' which prevents a perfect score.

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?

The description provides clear context with 'Use this after finding a service to understand what data you can work with.' This gives a specific when-to-use guideline (after service discovery) and implies its exploratory purpose. However, it doesn't explicitly state when NOT to use it or name alternatives among siblings, which would be needed for a score of 5.

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

execute-entity-operationExecute Entity OperationA

⚠️ Direct CRUD operations on SAP entities with precise OData queries. Use ONLY when you have exact OData query syntax (not natural language). For natural language queries, use natural-query-builder FIRST. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe SAP service ID
entityNameYesThe entity name within the service
operationYesThe operation to perform
parametersNoOperation parameters (keys, filters, data, etc.)
queryOptionsNoOData query options (for read operations)

TDQS

A4.4/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 and discloses key behavioral traits: it's a direct CRUD operation tool (implying mutations), requires authentication, and has strict syntax requirements. However, it lacks details on error handling, rate limits, or specific permissions needed, leaving some gaps.

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?

The description is highly concise and front-loaded: it starts with a warning symbol for attention, states the core purpose in the first sentence, provides usage guidelines in the second, and ends with authentication requirements. Every sentence adds critical value with zero waste.

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 the complexity (5 parameters, CRUD operations, no output schema, and no annotations), the description is largely complete: it covers purpose, usage, and key behavioral aspects. However, it could benefit from more details on output format or error scenarios to fully compensate for the lack of annotations and output schema.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal semantic context by mentioning 'OData queries' and 'CRUD operations,' which aligns with the 'operation' enum and 'queryOptions,' but doesn't provide additional meaning beyond what the schema offers.

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 clearly states 'Direct CRUD operations on SAP entities with precise OData queries,' specifying the exact verb (execute CRUD operations), resource (SAP entities), and method (OData queries). It distinguishes from sibling tools like 'natural-query-builder' by emphasizing precise syntax requirements.

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?

It provides explicit guidance: 'Use ONLY when you have exact OData query syntax (not natural language). For natural language queries, use natural-query-builder FIRST.' This clearly defines when to use this tool versus alternatives, including prerequisites (exact syntax) and exclusions (natural language).

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

get-entity-schemaGet Entity SchemaC

Get detailed schema information for a specific entity including properties, types, keys, and constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe SAP service ID
entityNameYesThe entity name

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets' information (implying a read operation) but doesn't cover critical aspects like authentication requirements, rate limits, error handling, or response format. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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?

The description is a single, efficient sentence that front-loads the core purpose ('Get detailed schema information') and specifies the included details without redundancy. Every word earns its place, making it appropriately sized for a straightforward tool.

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

Completeness2/5

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

Given the tool's complexity (2 required parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the output looks like (e.g., JSON structure), error conditions, or dependencies on other tools (e.g., needing authentication first). For a schema retrieval tool in a SAP context, more context is needed for effective use.

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?

The schema description coverage is 100%, with both parameters (serviceId, entityName) clearly documented in the input schema. The description adds no additional parameter semantics beyond implying the entity is 'specific', which is already covered by the schema's required fields. Baseline 3 is appropriate when the schema does the heavy lifting.

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 verb 'Get' and the resource 'detailed schema information for a specific entity', specifying what information is included (properties, types, keys, constraints). It distinguishes from siblings like 'discover-service-entities' (which likely lists entities) by focusing on schema details for a specific entity, though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare to siblings like 'discover-service-entities' (which might list entities before getting schemas), or specify use cases (e.g., for data modeling or query building).

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

kpi-dashboard-builderCreate and manage KPI dashboardsD

Create and manage KPI dashboards

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
dashboardIdNoDashboard ID (required for update/delete/get/refresh)
dashboardNoDashboard configuration (required for create)
updatesNoFields to update (for update action)
includeDataNoInclude current KPI data in response

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't mention authentication requirements, rate limits, whether operations are destructive, what happens when dashboards are deleted, or any side effects. The description simply repeats the tool's purpose without behavioral context.

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

Conciseness2/5

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

While technically concise with just three words, this is under-specification rather than effective brevity. The description fails to front-load critical information and doesn't earn its place by adding value beyond what's already in the tool name and title. Every word should provide new information, but this description doesn't.

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

Completeness2/5

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

For a complex tool with 5 parameters, nested objects, no output schema, and no annotations, the description is completely inadequate. It doesn't address the tool's multi-action nature, explain relationships between parameters, or provide any context about what 'managing' KPI dashboards entails in this specific system.

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?

The schema description coverage is 80%, providing a solid baseline. The description adds no parameter information beyond what's in the schema, but with high schema coverage, this doesn't create a significant gap. The description doesn't compensate for the 20% coverage gap, but the schema does most of the work documenting the 5 parameters and their relationships.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With 18 sibling tools including ui-dashboard-composer and business-intelligence-insights, there's no indication of how this KPI-focused tool differs or when it should be preferred over other dashboard or analytics tools.

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

natural-query-builderNatural Query BuilderC

Convert natural language to OData queries

ParametersJSON Schema
NameRequiredDescriptionDefault
naturalQueryYes
entityTypeYes
serviceIdYes
userContextNoUser context

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states what the tool does ('convert') but doesn't describe how it behaves: no details about error handling, performance characteristics, authentication requirements, or what the output looks like (especially problematic since there's no output schema). This is inadequate for a tool with complex parameters.

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?

The description is perfectly concise at just 5 words, front-loading the core functionality without any wasted words. Every element earns its place, making it immediately scannable and understandable despite its brevity.

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

Completeness2/5

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

Given the complexity (4 parameters including a nested object, 25% schema coverage, no output schema, and no annotations), the description is insufficiently complete. It doesn't explain what the tool returns, how to interpret results, or provide enough context about parameters and behavior. This leaves too many unknowns for effective tool invocation.

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?

Schema description coverage is only 25% (only 'userContext' has a description), and the description doesn't compensate by explaining any parameters. It doesn't clarify what 'naturalQuery', 'entityType', or 'serviceId' mean, nor does it provide examples or context for the 'userContext' object. For a tool with 4 parameters including a nested object, this leaves significant gaps in understanding.

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's function: converting natural language to OData queries. It uses specific verbs ('convert') and identifies the resource ('OData queries'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'sap-smart-query' or 'smart-data-analysis' which might have overlapping functionality, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, typical use cases, or comparisons with sibling tools like 'sap-smart-query' or 'smart-data-analysis' that might handle similar query-related tasks. This leaves the agent guessing about appropriate contexts.

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

predictive-analytics-engineRun predictive analytics on SAP dataD

Run predictive analytics on SAP data

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
entityTypeNoSAP entity type for prediction
serviceIdNoSAP service ID
targetMetricNoMetric to predict (e.g., revenue, count, average)
forecastPeriodNoPrediction time horizon
algorithmNoML algorithm to useauto_select
featuresNoInput features for prediction
modelIdNoExisting model ID (for evaluate/get_model)
includeConfidenceBoundsNoInclude prediction confidence intervals
trainingDataDaysNoDays of historical data for training

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description reveals nothing about required permissions, whether operations are read-only or destructive, expected latency, rate limits, or output format. For a complex tool with 10 parameters including training and prediction capabilities, this complete lack of behavioral context is inadequate.

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

Conciseness2/5

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

While technically concise with just 5 words, this is under-specification rather than effective conciseness. The single sentence fails to provide necessary context for a complex tool. Good conciseness eliminates waste while retaining essential information; here essential information is missing entirely, making this inefficient communication.

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

Completeness1/5

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

For a complex predictive analytics tool with 10 parameters, no annotations, and no output schema, the description is completely inadequate. It doesn't explain what predictive analytics entails, what types of predictions are possible, how results are returned, or when to use different actions. The description fails to provide the contextual understanding needed to use this tool effectively.

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 description coverage is 90%, so the schema already documents most parameters thoroughly. The description adds no parameter information beyond what's in the schema. However, with high schema coverage, the baseline score is 3 even without additional parameter semantics in the description. The description doesn't compensate for the 10% coverage gap but doesn't need to given the strong schema documentation.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'smart-data-analysis', 'business-intelligence-insights', and 'natural-query-builder', there's no indication of when predictive analytics is appropriate versus other analysis methods. No prerequisites, exclusions, or comparison to other tools are mentioned.

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

query-performance-optimizerQuery Performance OptimizerA

Optimize SAP OData query performance by analyzing execution patterns and suggesting improvements. Automatically identifies bottlenecks and recommends index strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesOriginal OData query URL to optimize
entityTypeYesTarget entity type
executionStatsNoQuery execution statistics
optimizationGoalsNoPrimary optimization objectives

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions analysis and suggestion functions but doesn't clarify whether this is a read-only diagnostic tool or if it can implement changes, what permissions are required, whether it modifies data or systems, or what the output format looks like. For a tool with 'optimize' in its name and no annotations, this is a significant gap in transparency.

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?

The description is perfectly concise with two sentences that each earn their place. The first sentence establishes the core function, and the second adds valuable detail about automation and specific recommendation types. No wasted words, and the information is front-loaded effectively.

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

Completeness3/5

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

Given the tool's complexity (performance optimization with 4 parameters including nested objects), no annotations, and no output schema, the description is moderately complete. It explains what the tool does but lacks details about behavioral aspects, output format, and implementation constraints. For a tool that could potentially have significant system impact, more contextual information would be beneficial.

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 description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description doesn't add any parameter-specific details beyond what's in the schema (like explaining how 'optimizationGoals' affect the analysis or what 'executionStats' should contain). The baseline of 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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 clearly states the tool's purpose with specific verbs ('optimize', 'analyzing', 'suggesting', 'identifies', 'recommends') and resources ('SAP OData query performance', 'execution patterns', 'improvements', 'bottlenecks', 'index strategies'). It distinguishes itself from siblings like 'sap-smart-query' or 'execute-entity-operation' by focusing on performance optimization rather than query execution or building.

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 implies usage context (when dealing with SAP OData query performance issues) but doesn't explicitly state when to use this tool versus alternatives like 'sap-smart-query' for query construction or 'smart-data-analysis' for general analysis. No exclusions or prerequisites are mentioned, leaving some ambiguity about appropriate use cases.

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

realtime-data-streamStream SAP data via WebSocketD

Stream SAP data via WebSocket

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform with WebSocket streaming
entityTypeNoSAP entity type to stream
serviceIdNoSAP service ID
subscriptionIdNoSubscription ID for unsubscribe
frequencyNoData streaming frequencymedium
filtersNoData filters
portNoWebSocket server port
simulationCountNoNumber of data points to simulate

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't mention whether this is a read-only or destructive operation, what authentication might be required, whether it establishes persistent connections, what happens when streaming stops, or any rate limits. For a WebSocket streaming tool with 8 parameters, this complete lack of behavioral information is inadequate.

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

Conciseness2/5

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

While technically concise with just 4 words, this represents under-specification rather than effective brevity. The single phrase doesn't earn its place by providing meaningful information beyond what's already in the name and title. For a complex tool with 8 parameters and WebSocket functionality, this level of conciseness is insufficient rather than efficient.

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

Completeness1/5

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

Given the tool's complexity (WebSocket streaming with 8 parameters, no output schema, and no annotations), the description is completely inadequate. It doesn't explain what the tool returns, how streaming data is formatted, what happens with different actions, or any operational considerations. The description fails to provide the context needed for an agent to understand and use this tool effectively.

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?

The schema has 100% description coverage, so all parameters are documented in the structured schema. The description adds no additional parameter information beyond what's already in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no parameter information in the description, which applies here.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines1/5

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

The description provides absolutely no guidance about when to use this tool versus alternatives. With 18 sibling tools including various SAP-related operations, there's no indication of appropriate contexts, prerequisites, or comparisons to tools like 'discover-service-entities' or 'sap-smart-query'. The agent receives no help in determining when WebSocket streaming is the right approach.

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

sap-smart-querySAP Smart Query RouterC

Routes SAP requests to optimal tool

ParametersJSON Schema
NameRequiredDescriptionDefault
userRequestYes
contextNo

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'routes' but doesn't explain what this entails (e.g., returns a tool recommendation, invokes another tool, requires authentication, has rate limits, or handles errors). For a routing tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

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?

The description is a single, efficient sentence with no wasted words, making it appropriately concise. However, it's under-specified rather than truly front-loaded with useful information, slightly reducing its effectiveness.

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

Completeness2/5

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

Given the complexity (routing logic, 2 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what the tool returns (e.g., a tool name, structured data), how routing decisions are made, or any behavioral constraints, leaving too many gaps for effective use.

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?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It adds no meaning beyond the schema, failing to explain 'userRequest' (e.g., natural language query) or 'context' fields (e.g., 'serviceId', 'entityType'). With 2 parameters and nested objects, this gap is significant.

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

Purpose2/5

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

The description 'Routes SAP requests to optimal tool' restates the title 'SAP Smart Query Router' with minimal elaboration, making it tautological. It doesn't specify what 'routes' entails (e.g., analyzing requests, selecting tools) or what 'optimal' means, leaving the purpose vague compared to siblings like 'natural-query-builder' or 'search-sap-services'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With many sibling tools (e.g., 'natural-query-builder', 'smart-data-analysis'), the description lacks context on its role (e.g., as an entry point or dispatcher), prerequisites, or exclusions, offering no help in tool selection.

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

search-sap-servicesSearch SAP ServicesC

Find SAP services by keyword/category.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch term to filter services (name, title, description)
categoryNoService category filter
limitNoMaximum number of services to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Find SAP services' but doesn't describe what the tool returns (e.g., list of services with details), whether it's read-only or has side effects, or any limitations like pagination or authentication needs. This leaves significant gaps for agent understanding.

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?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Find SAP services by keyword/category') directly contributes to understanding the tool's function, making it appropriately sized and well-structured.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a search tool with three parameters. It doesn't explain what the tool returns (e.g., service details, IDs, or metadata), how results are ordered, or any error conditions, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

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?

The description mentions 'keyword/category' which aligns with the 'query' and 'category' parameters, but adds no additional meaning beyond what's already in the schema (which has 100% coverage). The schema fully documents all three parameters with descriptions, enums, and defaults, so the description provides minimal extra value, meeting the baseline for high schema coverage.

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 verb ('Find') and resource ('SAP services') with filtering criteria ('by keyword/category'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this search tool from other sibling tools like 'discover-service-entities' or 'sap-smart-query', which might also involve service discovery or querying.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'discover-service-entities' and 'sap-smart-query' that might overlap in functionality, there's no indication of context, prerequisites, or exclusions to help an agent choose appropriately.

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

smart-data-analysisSmart Data AnalysisC

Analyze SAP data patterns, trends, and generate actionable business insights with AI-powered statistical analysis. Provides automated data exploration and visualization recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesArray of data records to analyze - each record is a key-value object
analysisTypeYesType of analysis to perform
businessContextNoBusiness context for the analysis
entityTypeYesType of SAP entity being analyzed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'AI-powered statistical analysis' and 'visualization recommendations,' but lacks details on permissions needed, rate limits, whether it's read-only or mutative, output format, or error handling. This is inadequate for a tool with potential complexity.

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?

The description is concise with two sentences that efficiently convey core functionality. It's front-loaded with the main purpose and adds supplementary details without redundancy. Every sentence contributes value, though it could be slightly more structured for clarity.

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

Completeness2/5

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

Given the tool's complexity (AI-powered analysis, multiple parameters) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like safety, performance, or output format, leaving significant gaps for an agent to understand how to use it effectively.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no specific parameter semantics beyond what's in the schema, such as explaining how 'businessContext' influences analysis or what 'entityType' entails. Baseline 3 is appropriate when schema does the heavy lifting.

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 analyzes SAP data patterns, trends, and generates business insights with AI-powered statistical analysis. It specifies the resource (SAP data) and verb (analyze patterns/trends, generate insights), but doesn't explicitly differentiate from siblings like 'predictive-analytics-engine' or 'business-intelligence-insights' which might offer overlapping functionality.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives is provided. The description mentions 'AI-powered statistical analysis' and 'automated data exploration,' but doesn't specify prerequisites, appropriate contexts, or exclusions compared to sibling tools like 'predictive-analytics-engine' or 'business-process-insights.'

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

ui-dashboard-composerUI Dashboard ComposerC

Creates comprehensive KPI dashboards with charts and real-time data

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboardTitleYesTitle for the dashboard
widgetsYesDashboard widget configurations
layoutNoDashboard layout style

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'creates' (implying a write operation) and 'real-time data,' but lacks details on permissions, side effects, error handling, or response format. For a creation tool with zero annotation coverage, this is insufficient to ensure safe and effective use by an agent.

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?

The description is a single, efficient sentence that front-loads the core functionality. It avoids redundancy and wastes no words, making it easy to parse quickly. Every part of the sentence contributes to understanding the tool's purpose.

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

Completeness2/5

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

Given the complexity of creating dashboards with multiple parameters and no output schema, the description is incomplete. It lacks behavioral details (e.g., permissions, side effects), usage context, and output information. With no annotations and rich sibling tools, this leaves significant gaps for an agent to operate effectively.

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?

The description adds no parameter-specific information beyond what's in the schema. However, schema description coverage is 100%, with clear descriptions for 'dashboardTitle,' 'widgets,' and 'layout,' including enums for 'layout' and widget 'type.' The baseline score of 3 is appropriate since the schema adequately documents parameters, though the description doesn't enhance understanding.

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's purpose: 'Creates comprehensive KPI dashboards with charts and real-time data.' It specifies the verb ('creates') and resource ('KPI dashboards'), and mentions key features ('charts and real-time data'). However, it doesn't explicitly differentiate from sibling tools like 'kpi-dashboard-builder' or 'ui-report-builder,' which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'kpi-dashboard-builder,' 'ui-report-builder,' and 'business-intelligence-insights,' there's no indication of context, prerequisites, or exclusions. The description only states what it does, not when it's appropriate.

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

ui-data-gridUI Data GridC

Creates interactive data grids with sorting, filtering, and export capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault
entityTypeYesSAP entity type for the grid
columnsYesGrid column definitions
featuresNoGrid feature enablement

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'creates' (implying a write/mutation operation) and lists features like sorting and export, but doesn't address critical aspects: whether this requires authentication, what happens to existing data, if it's idempotent, rate limits, or what the output looks like (since no output schema exists). For a creation tool with zero annotation coverage, this is insufficient.

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?

The description is a single, efficient sentence that front-loads the core purpose ('Creates interactive data grids') and lists key features. There's no wasted verbiage or redundancy—every word earns its place.

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

Completeness2/5

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

Given the tool creates something (implied mutation), has no annotations, no output schema, and 3 parameters (with nested objects), the description is incomplete. It doesn't cover behavioral traits, output format, error handling, or integration context (e.g., how this fits with SAP entities mentioned in the schema). For a creation tool in this context, more guidance is needed.

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 description coverage is 100%, so the schema fully documents all parameters (entityType, columns, features). The description adds no parameter-specific information beyond what's in the schema—it doesn't explain what 'SAP entity type' means, column usage, or feature implications. Baseline 3 is appropriate when the schema does all the work.

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's purpose: 'Creates interactive data grids with sorting, filtering, and export capabilities.' It specifies the action ('creates'), resource ('interactive data grids'), and key features. However, it doesn't explicitly differentiate from sibling UI tools like 'ui-dashboard-composer' or 'ui-form-generator' beyond the generic 'data grids' term.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'ui-dashboard-composer' or 'ui-report-builder', nor does it specify prerequisites, use cases, or exclusions. The agent must infer usage from the tool name and description alone.

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

ui-form-generatorUI Form GeneratorC

Creates dynamic forms for SAP entity operations with validation and SAP Fiori styling

ParametersJSON Schema
NameRequiredDescriptionDefault
entityTypeYesSAP entity type for the form
formTypeYesType of form to generate
fieldsNoCustom form fields configuration

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'validation and SAP Fiori styling' which adds some context, but fails to cover critical aspects like whether this is a read-only or mutation operation, authentication requirements, error handling, or what the output looks like (forms as code, UI components, etc.).

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?

The description is a single, efficient sentence that front-loads the core purpose ('Creates dynamic forms for SAP entity operations') and adds key features ('with validation and SAP Fiori styling'). Every word earns its place with zero redundancy.

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

Completeness2/5

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

Given the complexity of a form-generation tool with no annotations and no output schema, the description is incomplete. It lacks information about the tool's behavior (e.g., mutation vs. read-only), output format, error conditions, or integration with sibling tools, leaving significant gaps for an agent to use it effectively.

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 description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema, such as explaining relationships between entityType and fields, or providing examples. This meets the baseline for high schema coverage.

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's purpose: 'Creates dynamic forms for SAP entity operations' with specific features like 'validation and SAP Fiori styling'. It uses a specific verb ('creates') and identifies the resource ('forms'), but doesn't explicitly distinguish it from sibling UI tools like ui-dashboard-composer or ui-workflow-builder, which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for form generation, or compare it to sibling tools like ui-dashboard-composer or ui-report-builder, leaving the agent without usage direction.

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

ui-report-builderUI Report BuilderC

Creates comprehensive drill-down reports with analytical capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault
entityTypeYesSAP entity type for the report
reportTypeYesType of report to generate
dimensionsYesReport dimension fields
measuresYesReport measure fields

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'creates' reports, implying a write operation, but does not specify permissions required, whether reports are saved or transient, any rate limits, or error handling. The phrase 'drill-down reports with analytical capabilities' hints at interactive features but lacks concrete behavioral details. This is inadequate for a tool with mutation implications and no annotation support.

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?

The description is a single, efficient sentence: 'Creates comprehensive drill-down reports with analytical capabilities.' It is front-loaded with the core action and resource, with no wasted words or redundant information. Every part of the sentence contributes to understanding the tool's purpose, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of a report creation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral aspects (e.g., what 'creates' entails, permissions, or output format), does not differentiate from siblings, and provides no usage guidelines. While the input schema is well-documented, the overall context for safe and effective tool invocation is incomplete, especially for a tool that likely involves data manipulation and UI integration.

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?

The input schema has 100% description coverage, with clear documentation for all four parameters (entityType, reportType, dimensions, measures). The description does not add any parameter-specific information beyond what the schema provides, such as examples or usage tips. According to the rules, with high schema coverage (>80%), the baseline score is 3, as the schema adequately handles parameter semantics without additional description input.

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's purpose: 'Creates comprehensive drill-down reports with analytical capabilities.' It specifies the verb ('creates') and resource ('reports') with additional context about their nature ('drill-down' and 'analytical capabilities'). However, it does not explicitly differentiate from sibling tools like 'kpi-dashboard-builder' or 'ui-dashboard-composer,' which might also involve report or dashboard creation, leaving some ambiguity in distinguishing its unique role.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any specific contexts, prerequisites, or exclusions, nor does it refer to sibling tools. For example, it lacks clarity on whether this is for UI-specific reports compared to other analytical tools like 'business-intelligence-insights' or 'smart-data-analysis.' This absence of usage guidelines leaves the agent without direction on tool selection.

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

ui-workflow-builderUI Workflow BuilderC

Creates visual workflow processes with step-by-step forms and approvals

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowNameYesName of the workflow process
stepsYesWorkflow step definitions
entityTypeYesSAP entity type for the workflow

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'creates' workflows, implying a write/mutation operation, but doesn't cover permissions, side effects, error handling, or what happens after creation (e.g., where workflows are stored, if they're immediately active). For a creation tool with zero annotation coverage, this is insufficient.

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?

The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place: 'Creates' (action), 'visual workflow processes' (resource), 'with step-by-step forms and approvals' (key features). There's no redundancy or unnecessary elaboration.

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

Completeness2/5

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

For a tool that creates workflows with three required parameters and no annotations or output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or what the tool returns. The agent lacks context on how to interpret success/failure or use the created workflows. Given the complexity implied by 'visual workflow processes,' more guidance is needed.

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 description coverage is 100%, so the schema already documents all three parameters. The description adds no parameter-specific information beyond what's in the schema. It mentions 'step-by-step forms and approvals,' which loosely relates to the 'steps' parameter with its 'type' enum including 'form' and 'approval,' but doesn't provide additional semantic context. Baseline 3 is appropriate when the schema does the heavy lifting.

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's purpose: 'Creates visual workflow processes with step-by-step forms and approvals.' It specifies the verb ('creates'), resource ('visual workflow processes'), and key components ('forms and approvals'). However, it doesn't explicitly differentiate from sibling tools like 'ui-dashboard-composer' or 'ui-form-generator' that might also create UI elements.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions. Given the sibling tools include various UI builders and data tools, the agent must infer usage based on the name and description alone.

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

TDQS

C2.6/5.0
Disambiguation3/5

The tool set has clear distinctions in some areas, such as authentication, service discovery, and UI components, but there is significant overlap and ambiguity in others. For example, 'business-intelligence-insights', 'business-process-insights', and 'smart-data-analysis' all involve AI-powered analysis of SAP data, making it difficult for an agent to choose the right one without deeper context. Similarly, 'kpi-dashboard-builder' and 'ui-dashboard-composer' both handle dashboard creation, leading to potential confusion.

Naming Consistency2/5

The naming conventions are inconsistent and chaotic, with no discernible pattern across the tools. There is a mix of styles, such as hyphenated names (e.g., 'business-intelligence-insights'), snake_case (e.g., 'check-sap-authentication' uses hyphens but resembles snake_case), and varied verb usage (e.g., 'discover-service-entities' vs. 'search-sap-services'). Some tools use descriptive phrases rather than clear verb_noun patterns, making the set hard to navigate predictably.

Tool Count3/5

With 19 tools, the count is borderline high for a server focused on SAP OData integration, as it includes both core data operations and extensive UI components, which might be better split into separate servers. While the scope is broad, the number feels heavy and could overwhelm an agent, especially given the overlaps. A more streamlined set of 10-15 tools might be more appropriate for this domain.

Completeness4/5

The tool surface is largely complete for the SAP OData domain, covering authentication, service discovery, CRUD operations, query building, analytics, and UI components. However, there are minor gaps, such as no explicit tool for deleting or updating data in a natural language context (relying on 'execute-entity-operation' with OData syntax), and the UI tools might be overly detailed for a data-focused server. Overall, agents can work around these gaps, and core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Transforms SAP S/4HANA or ECC systems into conversational AI interfaces by exposing all OData services as dynamic MCP tools. Enables natural language interactions with ERP data for querying, creating, updating, and deleting business entities through SAP BTP integration.
    66
    130
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Transforms SAP S/4HANA or ECC systems into conversational AI interfaces by exposing OData services as dynamic MCP tools. Enables natural language interactions with ERP data for querying, creating, updating, and deleting business entities.
    66
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to manage SAP Cloud Integration (CPI) landscapes through natural language by exposing CPI OData APIs as MCP tools.
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A config-driven MCP server that exposes OData and REST APIs as MCP tools, enabling AI assistants to query, manage, and monitor SAP backends through natural language.
    79
    28
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Raistlin82/btp-sap-odata-to-mcp-server-optimized'

If you have feedback or need assistance with the MCP directory API, please join our Discord server