Skip to main content
Glama
nickels

SAP AI Core Documentation MCP Server

by nickels

SAP AI Core Documentation MCP Server

A Model Context Protocol (MCP) server providing semantic search and intelligent access to SAP AI Core documentation.

Overview

This MCP server enables AI assistants like Claude to search, retrieve, and understand SAP AI Core documentation efficiently. It provides semantic search capabilities across the entire AI Core documentation repository from SAP-docs/sap-artificial-intelligence.

Related MCP server: Google Cloud Docs MCP Server

Features

  • Semantic Search: Intelligent search across all SAP AI Core documentation

  • Category Filtering: Search within specific areas (administration, development, integration, concepts)

  • Document Retrieval: Get complete documentation pages with table of contents

  • Topic-Specific Documentation: Quick access to documentation for specific AI Core topics

  • Relevance Scoring: Results ranked by relevance to your query

Installation

Prerequisites

  • Node.js 20.0.0 or higher

  • npm or yarn

Quick Start

  1. Clone this repository:

git clone <repository-url>
cd dlwr-dnl-ai-core-documentation-mcp
  1. Install dependencies:

source ~/.zshrc && nvm use
npm install
  1. Clone the SAP AI Core documentation as a git submodule:

git submodule add https://github.com/SAP-docs/sap-artificial-intelligence.git docs/sap-artificial-intelligence
git submodule update --init --recursive
  1. Build the server:

npm run build

Configuration

Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "sap-ai-core-docs": {
      "command": "node",
      "args": [
        "/absolute/path/to/dlwr-dnl-ai-core-documentation-mcp/build/index.js"
      ]
    }
  }
}

Custom Documentation Path

To use a different documentation location:

{
  "mcpServers": {
    "sap-ai-core-docs": {
      "command": "node",
      "args": [
        "/absolute/path/to/dlwr-dnl-ai-core-documentation-mcp/build/index.js"
      ],
      "env": {
        "SAP_AI_CORE_DOCS_PATH": "/path/to/custom/docs"
      }
    }
  }
}

Available Tools

1. search_ai_core_docs

Semantically search SAP AI Core documentation.

Parameters:

  • query (required): Search query string

  • category (optional): Filter by category ('all', 'administration', 'development', 'integration', 'concepts')

  • limit (optional): Maximum results (1-50, default: 10)

Example:

Search for "model training deployment best practices"

2. get_ai_core_document

Retrieve complete content of a specific documentation page.

Parameters:

  • path (required): Relative path to document (from search results)

Example:

Get document at path "docs/sap-ai-core/getting-started.md"

3. get_ai_core_topic

Get comprehensive documentation for a specific SAP AI Core topic.

Parameters:

  • topic_name (required): Name of the AI Core topic

Example:

Get documentation for "Model Training"

4. list_ai_core_categories

List all available documentation categories and top documents.

Example:

Show all available documentation categories

Development

Project Structure

dlwr-dnl-ai-core-documentation-mcp/
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # MCP server implementation
│   ├── types/
│   │   └── index.ts          # TypeScript type definitions
│   ├── indexer/
│   │   ├── markdown-parser.ts    # Markdown document parser
│   │   └── document-index.ts     # Document indexing & search
│   └── tools/
│       ├── search.ts             # Search tool implementation
│       ├── get-document.ts       # Document retrieval tool
│       ├── get-topic.ts          # Topic documentation tool
│       └── list-categories.ts    # Category listing tool
├── docs/
│   └── sap-artificial-intelligence/  # SAP AI Core docs (git submodule)
├── build/                     # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Build Commands

# Build once
npm run build

# Build and watch for changes
npm run watch

# Run the server directly
npm run dev

Testing

Test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector node build/index.js

Architecture

Document Indexing

The server indexes all markdown files from the SAP AI Core documentation repository on startup:

  1. Parsing: Uses unified and remark to parse markdown with frontmatter

  2. Extraction: Extracts metadata, headings, sections, and keywords

  3. Indexing: Creates a searchable index using Fuse.js for fuzzy semantic search

  4. Categorization: Automatically categorizes documents based on folder structure

Search Strategy

  • Multi-field search: Searches across titles, headings, content, and keywords

  • Weighted scoring: Titles and keywords weighted higher than content

  • Fuzzy matching: Handles typos and partial matches

  • Context extraction: Returns relevant excerpts around matched terms

Use Cases

For delaware Netherlands Team

  • AI Core Implementations: Quick access to AI Core documentation during client projects

  • Training: Support for AI/ML enablement programs

  • Solution Design: Research AI Core capabilities and best practices

  • Troubleshooting: Find solutions for specific AI Core issues

For AI Agents (ConnectedBrain 2.0)

  • Semantic Module: Integrate as a knowledge module in multi-agent orchestration

  • Context Provider: Supply AI Core-specific context for solution generation

  • Code Assistant: Help generate AI Core-compliant code and configurations

SAP AI Core Topics Covered

  • Model Training: Training ML models using SAP AI Core

  • Model Deployment: Deploying and serving models

  • AI API: REST API for AI Core services

  • Configuration Management: Managing AI Core configurations

  • Resource Management: Managing compute resources and artifacts

  • Integration: Integrating AI Core with SAP BTP services

  • Security: Authentication, authorization, and data protection

  • Monitoring: Logging, metrics, and observability

Performance

  • Initial Index Build: ~5-10 seconds (depending on documentation size)

  • Search Queries: <100ms (in-memory search)

  • Memory Usage: ~50-100MB (indexed documents)

Roadmap

Phase 2 Enhancements

  • Vector embeddings for improved semantic search

  • Code sample extraction and indexing

  • AI Core API pattern recognition

  • Auto-update mechanism for documentation

Phase 3 Advanced Features

  • Graph database for AI Core service relationships

  • Context caching for frequently accessed docs

  • Integration with SAP Help Portal

  • Multi-language support

Contributing

This is a delaware Netherlands internal tool. For questions or contributions, contact the Data & AI team.

License

MIT License - Internal delaware Netherlands use

Support

For issues or questions:


Built with ❤️ by delaware Netherlands Data & AI Team

Part of our "platform-first, cloud-native" AI-empowered operations initiative

Available Tools

4 tools
get_ai_core_documentB

Get the complete content of a specific AI Core documentation page by its path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the document (as returned from search results)

TDQS

B3.1/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 retrieves content but lacks details on permissions required, rate limits, error handling, or response format. For a read operation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.

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 low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks usage guidelines and behavioral details, which are important for effective tool selection and invocation in a broader 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?

The input schema has 100% description coverage, with the 'path' parameter well-documented. The description adds minimal value beyond the schema by specifying it's for 'AI Core documentation page' and referencing 'as returned from search results', but doesn't provide additional syntax or format details. 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 with specific verbs ('Get the complete content') and resource ('AI Core documentation page by its path'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_ai_core_topic' or 'search_ai_core_docs', which likely have 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate compared to sibling tools like 'search_ai_core_docs' or 'get_ai_core_topic', nor does it specify prerequisites or exclusions for usage.

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

get_ai_core_topicC

Get comprehensive documentation for a specific SAP AI Core topic (e.g., "Model Training", "Deployment", "AI API", "Configuration").

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYesName of the AI Core topic

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. It states the tool retrieves 'comprehensive documentation,' implying a read-only operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, error handling, or the format/scope of the returned documentation. This leaves significant gaps for a tool with no annotation coverage.

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 and includes helpful examples. There's no wasted verbiage or redundancy, making it appropriately sized and well-structured for quick understanding.

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. It doesn't explain what 'comprehensive documentation' entails (e.g., format, depth), how results are structured, or any operational constraints. For a tool with no structured support, this leaves the agent with insufficient context 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?

The input schema has 100% description coverage, with the parameter 'topic_name' documented as 'Name of the AI Core topic.' The description adds minimal value by providing examples ('e.g., "Model Training", "Deployment"'), but doesn't elaborate on syntax, allowed values, or constraints beyond what the schema states. 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: 'Get comprehensive documentation for a specific SAP AI Core topic.' It specifies the verb ('Get') and resource ('comprehensive documentation'), and provides examples of topics. However, it doesn't explicitly differentiate from sibling tools like 'get_ai_core_document' or 'search_ai_core_docs', which prevents a score of 5.

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 its siblings. It mentions examples of topics but doesn't specify if this is for general topic overviews versus detailed documentation, or how it differs from 'get_ai_core_document' or 'search_ai_core_docs'. There's no mention of prerequisites, alternatives, or exclusions.

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

list_ai_core_categoriesB

List all available documentation categories and their contents. Useful for exploring what documentation is available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/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 describes the tool as listing categories and contents, which implies a read-only operation, but doesn't specify details like whether it returns structured data, pagination behavior, or potential rate limits. For a tool with zero annotation coverage, 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.

Conciseness4/5

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

The description is concise with two sentences that are front-loaded: the first states the purpose, and the second provides usage context. There's no wasted text, and it efficiently conveys key information. It could be slightly improved by integrating the usage hint more seamlessly, but overall it's well-structured.

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 is low (0 parameters, no output schema), the description is somewhat complete but has gaps. It explains what the tool does and its usefulness, but without annotations or output schema, it lacks details on behavioral traits like return format or limitations. For a simple list tool, this is adequate but not fully comprehensive.

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?

The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description adds value by clarifying the scope ('all available documentation categories and their contents'), which isn't captured in the schema. This compensates well for the lack of parameters, making it clear what the tool returns without needing 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: 'List all available documentation categories and their contents.' It specifies the verb ('List') and resource ('documentation categories and their contents'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_ai_core_document' or 'search_ai_core_docs', which might also involve documentation retrieval.

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 provides some usage guidance with 'Useful for exploring what documentation is available,' implying this tool is for discovery or browsing. However, it doesn't explicitly state when to use this tool versus alternatives like 'search_ai_core_docs' or 'get_ai_core_topic,' leaving the agent to infer based on context. No exclusions or prerequisites are mentioned.

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

search_ai_core_docsA

Semantically search SAP AI Core documentation. Returns relevant documents with excerpts and relevance scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for AI Core documentation (e.g., "deployment", "training models", "AI API", "configuration")
categoryNoLimit search to specific category (default: all)all
limitNoMaximum number of results to return (default: 10)

TDQS

A3.8/5.0
Behavior3/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 discloses the search behavior (semantic search) and return format (documents with excerpts and scores), which is good. However, it doesn't mention potential limitations like rate limits, authentication requirements, or how 'semantic' differs from keyword search. No contradiction with annotations exists.

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 states purpose and resource, the second specifies the return format. It's front-loaded with the core functionality and appropriately sized for a search tool.

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 no annotations and no output schema, the description does well by specifying the return format (documents with excerpts and scores). However, for a search tool with 3 parameters, it could benefit from more behavioral context (e.g., search scope, result ordering). It's mostly complete but has minor gaps.

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 (query, category, limit). The description doesn't add any parameter-specific details beyond what's in the schema, such as query examples or category explanations. 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.

Purpose5/5

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

The description clearly states the specific action ('semantically search'), target resource ('SAP AI Core documentation'), and output format ('returns relevant documents with excerpts and relevance scores'). It distinguishes from sibling tools like 'get_ai_core_document' (likely retrieves specific docs) and 'list_ai_core_categories' (lists categories).

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 for searching documentation, but doesn't explicitly state when to use this tool versus alternatives like 'get_ai_core_document' (for retrieving specific docs) or 'get_ai_core_topic' (possibly for topic-based access). No explicit exclusions or prerequisites are mentioned.

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. 4 tool updatesv1.0.0
    • First observedget_ai_core_document
    • First observedget_ai_core_topic
    • First observedlist_ai_core_categories
    • First observedsearch_ai_core_docs

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation4/5

The tools have mostly distinct purposes: get_ai_core_document retrieves a specific page by path, get_ai_core_topic fetches comprehensive topic documentation, list_ai_core_categories lists categories for exploration, and search_ai_core_docs performs semantic searches. However, get_ai_core_document and get_ai_core_topic could be slightly confusing as both retrieve documentation content, though they differ in input specificity (path vs. topic).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'ai_core' as a prefix: get_ai_core_document, get_ai_core_topic, list_ai_core_categories, and search_ai_core_docs. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions.

Tool Count4/5

Four tools are reasonable for a documentation server, covering key operations like retrieval, listing, and searching. It is slightly thin but well-scoped for the domain, as it includes essential functions without unnecessary bloat. A few more tools (e.g., for metadata or filtering) could enhance it, but it's not a significant gap.

Completeness4/5

The tool set covers core documentation workflows: browsing (list_ai_core_categories), retrieving by path or topic (get_ai_core_document, get_ai_core_topic), and searching (search_ai_core_docs). Minor gaps exist, such as no tools for updating documentation or handling user-specific queries, but agents can work around these with the provided tools for most use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers