Doc sourceDoc sourcetypeDocumentation collected and cited. Evidence, like a sample.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →Reference

abap-docs

SAP's ABAP Keyword Documentation scraped from help.sap.com and committed as Markdown in two libraries, Standard ABAP and ABAP Cloud, with keyword and category indexes for the MCP servers and LLMs it is generated for.

SAP publishes the ABAP Keyword Documentation as HTML on help.sap.com, where the cross-references are javascript:call_link() calls, so nothing can clone it or index it as text. Two scripts do the conversion: scrape.js fetches the pages and generate.js writes Markdown of 1–10KB per page with frontmatter and the source URL embedded, and the result is committed under docs/standard and docs/cloud, around 6,000 pages per library, beside files_index.json and optimized_index.json for lookup by keyword or category. The two libraries are SAP's own split: the latest index for Standard ABAP with its full history, and the CLOUD index for the restricted ABAP Cloud syntax. It is the abap-docs submodule of mcp-sap-docs, where the two libraries appear as the abap-docs-standard and abap-docs-cloud sources; the conversion is all it does, and nothing in it searches.

Facts

Last pushLicenceISC

Where it sits

Lives in
Demonstrates
DocumentationABAPDocumentationcapabilityFinding the answer in what has already been written, and writing it where it has not — first-party documentation made searchable by something other than a person scrolling it, including by an agent, and a document of custom code produced from the code itself.

Who is behind it

Marian ZeisMarian ZeisPersonMaintains this
In the atlas: maintains 35, contributes to 86, wrote 25
@marianfoo
maintainer

Before choosing this

Conditions

PracticalFunctional boundary

The Markdown is a snapshot of whatever help.sap.com served when the pipeline last ran, and the Standard library is scraped from the latest index, so which release a page describes follows from the scrape date rather than from anything the corpus states. package.json states ISC and the repository carries no LICENSE file, so what the copied SAP documentation may be used for is not stated in it.

What it declares

Every artifact

Type
Doc source
Origin
Independently maintained
Use as
A reference
Runtime
Node.js

Connections1

abap-docs connectionsabap-docsPROVIDES→ demonstrates1demonstrates authoredDocumentation

Learn more1

Readings
  1. ABAP + MCP: Let AI Do Real Development in Your SAP SystemWillian_Saez, SAP Community

README

quoted from marianfoo/abap-docs under ISC, read
marianfoo/abap-docs/README.mdOn GitHub

ABAP Documentation Scraper & Generator

This project scrapes and processes SAP ABAP Keyword Documentation, optimizing it for consumption by MCP servers and LLMs.

📚 Supported Libraries

LibraryDescriptionSource URL
Standard ABAPComplete Standard ABAP language reference (includes all history)help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/
ABAP CloudABAP Cloud language reference for cloud developmenthelp.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/

🚀 Quick Start

Prerequisites
  • Node.js 22+ (uses native fetch)
  • Dependencies: npm install
Basic Usage
# Scrape HTML documentation
npm run scrape              # Standard ABAP (default)
npm run scrape:standard     # Standard ABAP explicitly
npm run scrape:cloud        # ABAP Cloud
npm run scrape:all          # Both libraries

# Generate Markdown, bundles, and enhancements
npm run generate            # Standard ABAP (default)
npm run generate:standard   # Standard ABAP explicitly
npm run generate:cloud      # ABAP Cloud
npm run generate:all        # Both libraries

# Complete pipeline (scrape + generate)
npm run pipeline            # Standard ABAP (default)
npm run pipeline:standard   # Standard ABAP explicitly
npm run pipeline:cloud      # ABAP Cloud
npm run pipeline:all        # Both libraries

📁 Output Structure

docs/
├── standard/              # Standard ABAP (from "latest")
│   ├── html/              # Raw scraped HTML files
│   ├── md/                # Individual Markdown files (1-10KB each)
│   ├── _manifest.json     # Scraping metadata
│   └── files_index.json   # File index for MCP integration
└── cloud/                 # ABAP Cloud (from "cp")
    ├── html/              # Raw scraped HTML files
    ├── md/                # Individual Markdown files (1-10KB each)
    ├── _manifest.json     # Scraping metadata
    └── files_index.json   # File index for MCP integration

🎯 MCP Server Integration

The generated documentation is optimized for MCP server consumption:

Search Strategy (Priority Order)
  1. Individual Files (md/ folder) - Best for specific queries
  2. File Index (files_index.json) - Quick lookup by keywords/categories
Key Features
  • ✅ All JavaScript links eliminated - No javascript:call_link() instances
  • ✅ Source URLs embedded - Direct links to official SAP documentation
  • ✅ Size-optimized - Individual files 1-10KB, perfect for LLM context windows
  • ✅ Rich metadata - Categories, keywords for enhanced search
  • ✅ Two libraries - Standard ABAP and ABAP Cloud

Use optimized_index.json for the optimal "Individual Files First" search strategy (as recommended in .cursor documentation):

// Load the optimized index
const index = JSON.parse(fs.readFileSync('docs/standard/optimized_index.json'));

// Priority 1: Search individual files (best for LLMs)
const specificResults = index.individualFiles.filter(f => 
  f.keywords.some(k => k.includes(query.toLowerCase()))
).sort((a, b) => b.score - a.score);

// Priority 2: Fall back to focused bundles if needed
if (specificResults.length < 5) {
  const bundleResults = index.bundles.filter(b => ...);
}

📊 Statistics

  • ~6,000+ documentation pages per library
  • Zero JavaScript links - all converted to direct URLs
  • Two libraries - Standard ABAP and ABAP Cloud
  • Multi-tier indexing - Individual files, bundles, mega-bundles, and quick refs

🔧 Advanced Options

Scraping Options
node scripts/scrape.js --library standard --limit 1000 --concurrency 4 --force
node scripts/scrape.js --library cloud --force
Generation Options
node scripts/generate.js --library standard --force
node scripts/generate.js --library cloud --force
Available Flags
FlagDescriptionDefault
--libraryLibrary to process (standard or cloud)standard
--allProcess both librariesfalse
--forceForce re-scrape/regenerate even if already donefalse
--limitMaximum number of pages to scrapeInfinity
--concurrencyNumber of concurrent fetch requests8

📝 Library Support

Supported ABAP libraries (defined in roots.txt):

  • Standard ABAP (standard) - Latest Standard ABAP documentation with full history
  • ABAP Cloud (cloud) - ABAP Cloud documentation for cloud development

🎉 Architecture

This streamlined version uses just 2 scripts:

  • scripts/scrape.js - Clean, focused HTML scraping
  • scripts/generate.js - Complete MD generation with all enhancements integrated
Integrated Features in generate.js:
  • ✅ HTML to Markdown conversion
  • ✅ JavaScript link fixing
  • ✅ Enhanced metadata generation (frontmatter)
  • ✅ Source URL embedding
  • ✅ Content optimization for LLM consumption

No complex pipeline scripts or separate enhancement steps - everything is integrated and optimized for maintainability.

ISC, read

Details

Sources3
GitHub APIdiscovered here, marianfoochecked
github.com/marianfoo/abap-docstree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesnode
discovered viaGitHub API · marianfoo
first seen in the atlas
ecosystem and domainabap, learning-and-reference
Flavors2
Standard ABAP
“**Standard ABAP** | Complete Standard ABAP language reference (includes all history)” — abap-docs — README, Supported Librarieschecked
ABAP Cloud
“**ABAP Cloud** | ABAP Cloud language reference for cloud development” — abap-docs — README, Supported Librarieschecked
History in the atlas2
  1. Entered as the repository behind two sentences the corpus already rests on. capability:documentation's abap framing says "The ABAP keyword documentation, the cheat sheets and the RAP tutorials are public repositories", and for the keyword documentation the public repository is this one, not SAP's: mcp-sap-docs carries it as the `abap-docs` submodule (https://github.com/marianfoo/abap-docs.git in .gitmodules), which is where its `abap-docs-standard` and `abap-docs-cloud` offline sources come from. doc-source rather than a provider, because that same capability's abap note states publishing a corpus is not answering the concern. identity.license is the `license` field of package.json; the GitHub API reports no licence for the repository, which is the second sentence of when_not_to_use.
  2. First seen.
For your agent
Ref
artifact:marianfoo-abap-docs
JSON
/artifacts/marianfoo-abap-docs.json
MCP
Connecting an agent