Analytics Legends — SAP AI & Analytics MCP Server

ai.analyticslegendsPublished by analyticslegends.aiOfficial publisherv1.1.2Updated Nov 7, 2026

SAP AI & analytics market data for agents: SAP firms, day rates, jobs, Joule & BDC news

VerifiedStreamable HTTPWeb executableKnowledge & MemoryData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Read-only remote MCP server exposing a curated SAP AI & analytics market corpus: service firms, day rates, job postings, news, concepts and studies.

What you can do
  • Search and count SAP service providers by country, region, kind and module, and fetch one firm's public record
  • Search contract and permanent-role postings, market news, and freelance platforms where consultants can create profiles
  • Look up day-rate benchmarks by country, specialisation and seniority, plus the canonical SAP module taxonomy
  • Search the concept encyclopaedia, Academy training catalogue and the learning knowledge graph linking modules, concepts and studies
  • List study metadata and, with a subscriber key, read study bodies, full concept cards, Academy modules, SAP end-customer profiles, firm intelligence and expansion briefs
When to use it
Useful when an assistant must answer questions about the SAP AI and analytics services market — who delivers what where, what contract work and day rates look like, or what a stack term means — and should cite a record rather than guess. It serves market data, not a connection to your own SAP tenant.
Requirements
Nothing to install: a hosted streamable-HTTP endpoint. The public tools need no credential. The eight gated tools need a personal API key sent as an Authorization Bearer header, obtained from an analyticslegends.ai account; the MCP Pass or Firm Pass subscription opens all of them, while free, Consultant and Legend keys get only a small daily sample.
Before you install
Paid tools refuse without a valid key, and the subscription is a recurring charge (prices are stated inconsistently across the supplied material). A key entered in a shared workspace connector is shared by that workspace and draws on one daily quota. Paid keys are capped on new distinct rows per day and per month. Training-data use of retrieved content is not permitted; cite the provided citation URLs and note when a citation is only a section hub.

Installation

In SourceWeft

  1. Open Analytics Legends — SAP AI & Analytics MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.analyticslegends%2Fsap-analytics/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "analytics-legends-sap-ai-analytics": {
      "type": "http",
      "url": "https://analyticslegends.ai/mcp"
    }
  }
}

README

Analytics Legends — SAP AI & Analytics MCP Server

A read-only Model Context Protocol server over a curated corpus of the SAP AI & analytics services market: who delivers SAP Business AI and Joule, Business Data Cloud, SAP Datasphere, SAP Analytics Cloud and BW/4HANA work, what the contract market looks like, what the day rates are, what the vocabulary means, and what has just happened.

It exists so that an assistant answering an SAP analytics question can cite a record instead of guessing. Every row carries a citation_url on analyticslegends.ai, and every response carries the size of the population it was drawn from.

Nothing to install. The server is hosted:

https://analyticslegends.ai/mcp        streamable-http

The public tools need no credential.

Looking for an MCP server that connects to your own SAP system (BTP, CAP, UI5, Fiori, ABAP, Datasphere…)? This one serves market data, not your tenant — the catalogue of SAP MCP servers lists the official SAP, AWS and community servers, verified on their own pages.


Connect

Claude Code
bash
claude mcp add --transport http analytics-legends https://analyticslegends.ai/mcp# with a subscriber key, to open the eight gated tools:claude mcp add --transport http analytics-legends https://analyticslegends.ai/mcp \  --header "Authorization: Bearer alk_…"
Claude web, Desktop and mobile (custom connector)

Add a custom connector pointing at https://analyticslegends.ai/mcp. The public tranche answers immediately, with no credential.

To open the paid tranche, use the connector's request-header authentication and set Authorization to Bearer alk_…. The credential is entered once, by whoever adds the connector, and is shared by that workspace — one key, one daily quota. There is no OAuth consent flow to walk: this server's unit of access is a personal API key minted on an analyticslegends.ai account, not a delegated identity.

Claude Desktop / any client reading a JSON config
json
{  "mcpServers": {    "analytics-legends": {      "type": "streamable-http",      "url": "https://analyticslegends.ai/mcp"    }  }}
With a subscriber key (opens the eight gated tools)
json
{  "mcpServers": {    "analytics-legends": {      "type": "streamable-http",      "url": "https://analyticslegends.ai/mcp",      "headers": { "Authorization": "Bearer alk_…" }    }  }}

The manifest is served at /.well-known/mcp.json and mirrored in this repository as mcp.json. tools/list is the authority for the surface — this README is a copy, and a copy can drift.


The 22 tools

Fourteen are public and unauthenticated. Eight need a subscriber key; they are listed and refuse by name, never hidden — an agent can see what it is missing. Three open at Consultant, five at Legend, and the MCP Pass opens all eight.

ToolAnswers
search_firmsWhich SAP analytics providers match a country, kind, free text
count_firms_byA counting question in one call, instead of a page of rows
get_firmOne organisation from the published directory
list_firm_kindsThe directory's breakdown by organisation kind, with live counts
find_opportunitiesThe live contract and permanent-role radar
search_newsThe curated SAP analytics news corpus
search_conceptsThe concept encyclopaedia — the vocabulary of the stack
get_conceptOne concept: title, category, level, tags, editor's summary
list_studiesThe deep-research study editions and their metadata
get_day_rate_benchmarkThe public day-rate aggregate by country, stack, seniority
list_sap_modulesThe canonical SAP module/product taxonomy
list_freelance_platformsThe CV/profile platforms a consultant can sign up on
find_academy_modulesThe Academy training catalogue, searchable by module
query_knowledge_graphA traversal of the learning knowledge graph
🔒 get_concept_cardThe full encyclopaedia card — body, key points, cheat sheet
🔒 get_studyOne study body
🔒 get_academy_moduleOne Academy module, in full
🔒 find_sap_clientsThe SAP end-customer corpus — who runs SAP
🔒 get_sap_client_profileOne end-customer's SAP footprint and analytics estate
🔒 get_firm_intelA firm's practice size, partner level, delivery flags
🔒 get_expansion_briefBefore opening in another region: providers, SAP end-customers and openings there, and the brand families bridging your home region to it
🔒 find_partner_candidatesThe local providers of a target country or region to partner with, subcontract to, or acquire

Every tool is annotated readOnlyHint: true. The server writes nothing, anywhere.


Two rules it holds itself to

A count is read at query time, and it comes with its population. Responses carry _meta.match_count (what your filters matched) and _meta.tranche_total_row_count (the whole tranche). Quote those rather than any number written in a description — including the ones in this file.

A citation says what it is. Every item carries citation_url and citation_scope. record means the URL is that item's own page; section_hub means this platform publishes no page for that item and the URL is the section index — say so, or cite the section, but do not present a hub URL as the item's page. News items also carry source_url for the upstream publisher: cite both.


What is deliberately not served, at any tier

  • People. Individual professionals are held as initials only. No tool returns anyone's identity or contact details.
  • The matchers. Opportunity-to-consultant scoring stays on the platform.
  • SAP's own documentation. Not ours to restate — cite SAP.

Retrieval with attribution is permitted. Training-data use is not.


Subscriptions

The eight gated tools open with an analyticslegends.ai subscription (Consultant or above), or with the MCP Pass (€39.90/month) — the machine-access subscription: this server's entire paid tranche, no web subscriber screens.


Where the source lives

The platform's application repository is private: it holds a paid corpus and personal data. This repository is the server's public face — its manifest, its registry descriptor, its client configuration and this documentation. The server itself answers at https://analyticslegends.ai/mcp, and the honest way to inspect it is to call tools/list against it.

Health, with its own timestamp: /api/mcp-health.json — read its generated_at rather than assuming a cadence.

Published in the official MCP registry as ai.analyticslegends/sap-analytics.

Licence

MIT for the contents of this repository. The licence does not grant rights over the data served by the endpoint, which stays under the platform's terms.

Source: README.md at commit 2b40929

Tools

23

search_firms

Search the SAP AI & analytics firm directory

Search the published Analytics Legends directory of SAP AI & analytics service providers — placement agencies, Big-4 and ESN practices, SAP vendors, platforms and community groups — by country, region (EMEA · AMER · LATAM · APAC · AFRICA), kind, declared SAP module and free text. Returns name, HQ country/city, website, careers URL and a one-line editorial claim. SAP END-CUSTOMER companies are NOT in this directory: they are a separate paid dataset, excluded here by the `is_client` FLAG — not by the `client_enterprise` kind code. The two are different columns, and where a row's flag and its kind label disagree in the SSOT it is the flag that decides what this tool serves, so read the flag's meaning into the answer and not the label's. PAGINATED WITH A KEY (a free one is enough): the whole matched set is reachable — pass `_meta.next_cursor` back as `cursor` with the same filters until it is null. Without a key: first 10 rows only, no cursor. When `query` is set, rows are ordered by how well the NAME matches it (exact, then prefix, then substring), and rows matching only the description come last; without `query` the order is the directory's own quality ranking.

Parameterskindlimitquerycursormoduleregioncountry

count_firms_by

Count the firm directory by country, region, kind, module or SAP signal

Answer a COUNTING question about the published firm directory in one call: how many organisations per country, per REGION (the six-value geography), per kind, per declared SAP module, or per SAP signal band — with the same `country`/`kind`/`module`/`query` filters `search_firms` takes, so you can count a slice as easily as the whole. Use this instead of paging `search_firms` and tallying rows: the directory holds thousands of organisations, and reading them all to produce a table of counts costs hundreds of calls and megabytes of rows for numbers Postgres computes in one scan. Every bucket is a value the directory actually stores; `value: null` is a real bucket meaning the field is unknown for those rows, and it is served rather than hidden — a country table that silently drops the rows with no country adds up to less than the population and says nothing about it.

Parametersbyrequiredkindquerymoduleregioncountry

get_firm

Get one firm's published profile

Fetch one organisation from the published directory by its database slug (`rows[].slug` from search_firms, verbatim). Returns the same public fields plus `partnerships_declared`, the count of partnerships this directory records for the firm — 0 on ~77 % of rows (re-measured 2026-09-30 on the published tranche: 77,1 %; it read ~97 % until the 2026-09-30 brand-family pass derived 3 730 sibling links from sister entities), meaning none recorded here, never that the firm has no partners; a `sibling` link is a reading of shared brand, not a declared org chart. Does not return the paid firm-intelligence profile, contacts, or any person.

Parametersslugrequired

list_firm_kinds

List firm kinds with live counts

Breakdown of the published firm directory by organisation kind, with a live row count per kind. Use this before search_firms to know what the population actually is instead of guessing.

Takes no parameters.

list_freelance_platforms

List the CV/profile platforms a consultant can sign up on

The subset of the published directory where a consultant can CREATE A PROFILE — freelance marketplaces, job boards with candidate profiles, talent platforms and expert networks — each with its signup URL, an editorial confidence grade and the date it was assessed. This answers the entering-contractor's first practical question ('where do I register?') in one call. Everything here is also in search_firms — this tool adds the platform fields and the filter, never a wider population. `signup_url` is the platform's own page: it was verified on `assessed_at`, and a platform absent here is not proven to refuse signups — it is unassessed or unpublished.

Parameterslimitcursorcountryplatform_type

find_opportunities

Search the public SAP AI & analytics contract radar

Search every SAP contract and permanent-role posting Analytics Legends publishes to an ANONYMOUS visitor. Only the SITE RADAR leg below is the population a human browses on /opportunities/, where each of its postings has its own prerendered page; the PROMOTED leg is served to agents only — it is not listed on /opportunities/ and its rows have no page of their own (citation_scope "section_hub"). It merges the platform's TWO public legs, which are near-disjoint (measured 2026-07-30: 1 row in common): (a) the PROMOTED feed (`public.public_opportunities`) — general SAP work (FI/CO, SD, EWM, MDG, BTP, ABAP), all German cities, dated (posted_at is populated on all but a few % of the live rows of that leg — the undated rows are sorted LAST and paginate like the others). 🔴 THIS LEG CHANGED SHAPE ON 2026-08-28: until then it was fed by three keyless APIs and carried no contract_type, country_code, expires_at or rate at all; it was then loaded from the site radar and now declares contract_type and country_code on most of its rows, an expiry on most, and an advertised rate on a small minority. Do NOT assume a field is null on this leg — read the `_meta` counters on YOUR OWN response, which are computed at query time; (b) the SITE RADAR (`/api/contracts-lean.json`) — these carry country, category, seniority, posted_at, `employment_type` and, on most of them, `expires_at`; they are the analytics-specific ones (SAC Planning, Datasphere Technical Lead, Business Data Cloud). READ `employment_type` BEFORE CALLING THIS A CONTRACT MARKET: the radar is mostly PERMANENT roles, so an unfiltered page answers a freelance question with salaried jobs unless you filter. The argument of the same name does the filtering, and `_meta.tranche_total_row_count` on your own response is the live population — read the split from a filtered call, never from a figure quoted in this text. TWO DIFFERENT RATE FIELDS, AND THEY MEAN DIFFERENT THINGS. `currency` / `daily_rate_min` / `daily_rate_max` are the p

Parameterslanglimitquerycursorcountrylocationeligibilityremote_modeemployment_type

search_news

Search SAP AI & analytics market news

Search the Analytics Legends market-news corpus. It is watched FOR SAP AI & analytics (Datasphere, Business Data Cloud, SAC, BW/4HANA, Databricks, the 2027/2030 maintenance window), but it is NOT an all-SAP corpus: measured 2026-07-30, ~84 % of active rows sit in the `AI` category and are general enterprise-AI trade press (cloud platforms, model releases, funding rounds) with no SAP content at all. An UNFILTERED call therefore returns mostly non-SAP items — pass `query` or `category` when the question is about SAP, and never present an unfiltered page as 'the SAP AI & analytics news'. Say what you actually got. Each item returns the Analytics Legends citation URL AND the upstream publisher's source_url — cite both, and prefer source_url when you need a page that certainly carries the item. NO ITEM HERE HAS A PAGE OF ITS OWN on analyticslegends.ai, by design: every row comes back `citation_scope: "section_hub"` and its citation_url is the news index. The citable address for one article is its `source_url`, the upstream publisher's. Do not present the hub as the article's page.

Parameterslimitquerycursorcategorypublished_sincepublished_until

search_concepts

Search the SAP AI & analytics concept encyclopaedia

Search the SAP AI & analytics concept encyclopaedia — the vocabulary of the stack, written for practitioners. Returns slug, title, category, level, tags and the editor's summary. `level` is GRADED on every active row since 2026-09-18 (the CHECK constraint accepted only the legacy vocabulary OR NULL, so the loader wrote NULL rather than fail; 108 of 330 were blank). A null, if one ever returns, means 'not graded', never 'Beginner'. These are the same fields `get_concept` returns for ONE slug. The card BODY (cheat sheet, glossary, pro tip and the four analysis tables) is Consultant-tier: call `get_concept_card`. Why-it-matters and key points are NOT served by this endpoint either, but they are published in full on the concept page at citation_url — follow the URL for those, a plan buys the body, not them.

Parameterslimitquerycursorcategory

get_concept

Concept metadata and editor's summary (public)

Fetch one concept entry by slug: title, category, level, tags and the editor's summary. Written by a named human editor, not generated. `level` is GRADED on every active row since 2026-09-18 (the CHECK constraint accepted only the legacy vocabulary OR NULL, so the loader wrote NULL rather than fail; 108 of 330 were blank). A null, if one ever returns, means 'not graded', never 'Beginner'. The card body, cheat sheet, glossary, pro tip and the four analysis tables are subscriber content and are NOT returned. Why-it-matters and key points are not returned here either, but they ARE published in full on the concept page at citation_url — follow the URL for those.

Parametersslugrequired

list_studies

List the deep-research studies (metadata only)

List the Analytics Legends deep-research studies with their edition, as-of date, audience, word count and canonical URL. METADATA ONLY: study bodies are a paid Consultant-tier deliverable, served by `get_study` on this same endpoint with a subscriber key. Use this to tell a reader that a study exists and where to read it. ONE ROW IS ONE LANGUAGE EDITION, NOT ONE STUDY: each study is published in every language it has been translated into, so `_meta.tranche_total_row_count` counts editions and `_meta.distinct_studies` counts the works. `_meta.available_languages` gives the live per-language counts; each row carries its `editions` list. Pass `lang` to get one row per study.

Parameterslanglimitquerycursor

get_day_rate_benchmark

Public SAP AI & analytics day-rate aggregate

The PUBLIC day-rate aggregate for SAP AI & analytics freelance work: min/max daily rate by country, specialisation and seniority — `daily_rate_min` / `daily_rate_max` (plus `daily_rate_median`, `daily_rate_p10`, `daily_rate_p90` when the source publishes them), every amount in the row's own `currency` — with source, source date, confidence and the sample the source states. This is the free aggregate published at analyticslegends.ai/api/market-rates.json, and it is SMALL — a few dozen rows at most, every one of them a secondary source (a published market study or a job-board scan), and `sample_size` is null on most of them. NO COUNT IS WRITTEN HERE ON PURPOSE: `_meta.tranche_total_row_count` and the rows themselves are the live measure. A frozen pair stood here until 2026-08-27 — '11 rows on 2026-08-09 … sample_size null on 8 of them' — and the second half was WRONG (7 of 11) while the first was still right, which is the whole argument against writing either. NOTHING IS HELD BACK BEHIND IT: there is no paid counterpart to this aggregate. The community-contribution path exists (public.rate_contributions) but publishes nothing yet — v_community_rate_aggregates and v_rate_index are still empty, because a contributed rate only surfaces once a cell holds enough submissions to be reported without identifying anyone. So whatever percentile a source row happens to carry is served here, free, to everyone. The GB row carries a median, p10 and p90, and its own note says its min/max ARE the 25th and 75th percentiles. What is missing from this answer is missing from THIS aggregate; it is not a paid tier. THIS IS NOT THE ONLY RATE THE PLATFORM PUBLISHES, AND ON THE QUESTIONS THIS MARKET ASKS MOST IT IS THE THINNER ONE. The website carries a `rate_band` per live radar posting for signed-in subscribers — a panel-inferred P25–P75 band per (seniority × product × region) cell, Eursap n=312 plus the Analytics Legends operator panel. This server does not serve it (`find_opportunities.rat

Parameterscountryseniorityspecialisation

list_sap_modules

SAP AI & analytics module taxonomy

The canonical SAP module/product taxonomy Analytics Legends classifies against (codes and EN/FR labels by category). Use it to normalise a user's loose product wording — 'SAC', 'Analytics Cloud', 'Datasphere' — onto the codes the other tools filter on.

Parameterslimitquerycursor

find_academy_modules

Search the Academy training catalogue

Search the Analytics Legends Academy — the written training modules on SAP Datasphere, Business Data Cloud, SAP Analytics Cloud, BW/4HANA and Databricks — by track, level and free text. `_meta.tranche_total_row_count` carries the live catalogue size on every call; it is the only count to quote. Returns the catalogue entry: id, slug, EN/FR title, track, level, duration in minutes, tags and the editor's summary. DO NOT CONFUSE IT WITH `list_sap_modules`, which serves a different population under the same word: that one is the 40-row PRODUCT taxonomy (codes such as SAC, DATASPHERE) used to normalise product wording. This one is the course catalogue. Without `query`, rows come back in the catalogue's own CURRICULUM order — the order a reader is meant to take them in — track by track. This catalogue is written training, NOT SAP certification tracks: this server publishes no certification data at any tier, so a certification question has no answer here rather than a partial one. CATALOGUE ONLY — the module BODY is subscriber content, served by `get_academy_module` on this same endpoint with an API key of an MCP Pass or Firm account. On THIS endpoint the paid tranche is opened by the MCP Pass (€29.90/month, analyticslegends.ai/mcp-server/) or the Firm Pass, from one key; the Consultant and Legend web plans do not include MCP access. `status` and `is_preview` are SERVED, never filtered on: they are the two flags the platform marks free access with, they do not coincide (measured 2026-08-16: 38 rows `status='available'`, 56 rows `is_preview`), and you decide which one your answer needs. PAGINATED WITH A KEY (a free one is enough): pass `_meta.next_cursor` back as `cursor` with the same filters until it is null; without a key, first 10 rows only. Read `_meta.available_tracks` and `_meta.available_levels` — both counted on the served population at call time — before assuming a facet value exists.

Parameterslevellimitquerytrackcursor

query_knowledge_graph

Traverse the learning knowledge graph

The RELATIONS between the platform's teaching objects — which Academy module teaches which concept, which study covers which module, what a concept relates to. THIS IS THE ONLY TOOL ON THIS SERVER THAT SERVES EDGES; the others serve rows. Ask it what connects to what, not what exists. SCOPE, AND IT IS NARROWER THAN 'the knowledge graph': it carries four node types — `concept`, `module`, `study`, `vendor` — and every edge whose BOTH endpoints are one of them. The whole graph holds twelve node types; the eight it does not carry are each either served by their own tool or named as not served at all, and `_meta.excluded_node_types` says which per type (consultant data is served at NO tier), so a missing type is a documented boundary and never a silent gap. Call it with `node_id` (e.g. `module:M178`, `concept:C001`, `study:ai-impact-2026-EN`) to walk one node's neighbourhood; with `node_type` and/or `query` to find a node id first. `edge_type` and `direction` narrow a walk. Read `_meta.available_edge_types` — computed from the served projection on every call — before assuming an edge type exists.

Parameterslanglimitquerycursornode_iddirectionedge_typenode_type

find_answers

Find the answer to an SAP AI & analytics problem

Start here when someone asks about an SAP AI & analytics PROBLEM rather than a term. Matches a natural question, in English, French or German, to the twelve ranked challenges Analytics Legends tracks: agents in production, Joule value, AI cost, AI-ready data, on-premise reach, the open ecosystem, the BW cliff, BDC versus Datasphere versus Databricks, staffing, roadmap volatility, EU compliance, end of BI 4.3. Returns at most three rows: the short answer, what shipped, what is announced, what slipped or is unconfirmed, facts outside the status registry with their source and quality, next steps, review date and citation_url. Statuses are read from the SAP announcement registry; a date is a plan, not a commitment. An empty result means the question is outside these challenges: say so and use search_concepts, find_academy_modules or get_day_rate_benchmark.

Parameterslangaudiencequestionrequired

get_concept_card

Full concept card (Consultant tier)

The FULL encyclopaedia card for one concept — body, cheat sheet, glossary, pro tip, and the four analysis tables (decision table, peer comparison, named pitfalls, performance facts), EN, FR and DE, plus why-it-matters and key points (those two are also published free on the concept page; here they come structured, in three languages, in the same payload) — the corpus the Consultant web plan sells. On THIS endpoint the paid tranche is opened by the MCP Pass (€29.90/month, analyticslegends.ai/mcp-server/) or the Firm Pass, from one key; the Consultant and Legend web plans do not include MCP access. Requires the API key of an MCP Pass or Firm account (Authorization: Bearer alk_…) — the Consultant and Legend web plans do not include MCP access; without one this tool refuses and get_concept keeps serving the public metadata. Find slugs with search_concepts.

Parametersslugrequired

get_study

Read a study (Consultant tier)

Read one Analytics Legends study BODY — the paid text behind list_studies' metadata. Requires the API key of an MCP Pass or Firm account (the Consultant and Legend web plans do not include MCP access). Bodies run to 38k words and exceed the 256 KiB response ceiling, so this tool serves STRUCTURE first: called without `section` it returns the section list and the introduction; pass `section` (a heading from that list, matched case-insensitively) to read one section. Find slugs and languages with list_studies.

Parameterslangslugrequiredsection

get_academy_module

Read an Academy module (Consultant tier)

Read one Academy training module in full — body, learning objectives and summary, EN, FR and DE — the written course corpus the Consultant web plan sells. On THIS endpoint the paid tranche is opened by the MCP Pass (€29.90/month, analyticslegends.ai/mcp-server/) or the Firm Pass; the Consultant and Legend web plans do not include MCP access. Requires an API key of an MCP Pass or Firm account (Authorization: Bearer alk_…); without one this tool refuses and `find_academy_modules` keeps serving the catalogue. Takes the module id (`M001`) or its slug (`datasphere-foundations`), both matched case-insensitively — `find_academy_modules` returns both on every row, and `query_knowledge_graph` returns the same ids as `module:M001` node ids, so a graph walk now ENDS somewhere. The module is served in one call. `lang` (en · fr · de) returns that language only; without it the three languages come back together — EXCEPT when the three would exceed the response ceiling (the Datasphere foundations course M001, rewritten as a full training on 2026-10-28, weighs 423 KB in three languages): the English text is then served alone and `filters.lang` says so — call again with lang=fr or lang=de for the other two.

Parametersidrequiredlang

find_sap_clients

Search the SAP end-customer corpus (Legend tier)

Search the SAP END-CUSTOMER corpus — the companies that RUN SAP, not the firms that sell services (those are search_firms). This is the paid Legend+ dataset locked away from the public surface on 2026-07-08; it requires the API key of an MCP Pass or Firm account. Verification status is SERVED, never silently filtered: `sap_client_verification_status` and `status` are columns on every row ('verified' on a few hundred of ~15k rows — the exact counts are in _meta on every call, never in this text), and you decide what standard of proof your answer needs. `product` filters on the detected-adoption flags every profile already carries (the `uses_*` columns get_sap_client_profile serves): it keeps only rows where that product was DETECTED. A row it drops is 'not detected by our detection pass', never 'does not use it' — detection is a positive signal with no negative counterpart.

Parameterslimitquerycursorcountryproductindustry

get_sap_client_profile

One SAP end-customer profile (Legend tier)

The full profile of one SAP end-customer — SAP footprint (products in use, modules known), analytics solutions, identity and evidence fields. Requires the API key of an MCP Pass or Firm account (the Consultant and Legend web plans do not include MCP access). `id` comes verbatim from find_sap_clients.rows[].id.

Parametersidrequired

get_expansion_brief

Expansion brief for a target region (Legend tier)

The one-call brief a services practice reads before opening a subsidiary in another region: providers already there (by kind and by country, and how many are LOCAL entities versus members of multi-region groups), SAP end-customers there (by country and by industry — counts from the Legend corpus, never rows), live opportunities by country, and the BRIDGE GROUPS — brand families that hold entities both in the target region and in your home region (or anywhere else when `home_region` is omitted). Regions are the platform's six-value geography: EMEA holds Europe AND the Middle East, AFRICA is its own region, AMER is North America, LATAM and APAC are what they say, GLOBAL is the country-unknown bucket and is refused as a target. Day rates are NOT in this brief: call get_day_rate_benchmark per country; it answers only for the countries listed in its `available_countries` (Europe, the Middle East, North America and a few APAC countries at low/medium confidence) and refuses the rest rather than transpose a European band. Every count is read at query time from the SSOT. Requires the API key of an MCP Pass or Firm account (the Consultant and Legend web plans do not include MCP access).

Parametershome_regiontarget_regionrequired

find_partner_candidates

Local partner or acquisition candidates for a market entry (Legend tier)

Rank the LOCAL service providers of a target country or region — the firms a practice partners with, subcontracts to, or acquires to enter a market. `local_only` (default true) keeps firms with NO sister entity in another country (read from the brand-family key of the SSOT): a subsidiary of a global group is a competitor, not a partner. Filter by kind and by DECLARED SAP module; rows carry the declared modules, the sister countries of the brand (when any), the count of declared partnerships and the public directory fields. Ordered by SAP signal, then data completeness. `country` or `region` is required: a partner search without a target market is the whole directory. Paginated by cursor. Requires the API key of an MCP Pass or Firm account (the Consultant and Legend web plans do not include MCP access). No person, no e-mail — outreach details stay behind the platform's signed-URL path.

Parameterskindlimitcursormoduleregioncountrylocal_only

get_firm_intel

Firm intelligence profile (Legend tier)

The paid intelligence profile of a services firm — SAP practice size and partner level, delivery flags per product, typical day rate and seniority, notable clients, analytics practice summary, and a LinkedIn company URL (present on ~71% of the corpus, re-measured 2026-09-05 on 9,104 profiles — it read ~39% from 2026-08-10 to 2026-09-05, i.e. a third of the corpus below the truth, because an enrichment pass filled the column and no reader of this sentence was told — glassdoor_rating, glassdoor_reviews_count and linkedin_followers are null on all but a handful of profiles, absence here is a data gap, not a signal). READ THE SPARSITY BEFORE QUOTING A ROW: on the 9,103 profiles measured 2026-08-23, `typical_day_rate_eur` is null on 78.0% and `sap_partner_level` on 85.7% — the two headline fields are the exception, not the rule, and a null means 'not researched', never 'no partner level'. Requires the API key of an MCP Pass or Firm account (the Consultant and Legend web plans do not include MCP access). Person-shaped fields (contacts, founders, leadership, recruiters, postal addresses) are NEVER served by this endpoint at any tier — they remain behind the platform's signed-URL path. Search by name; the public directory (search_firms) is a different, wider population.

Parametersmodenamelimitcursorcountrydelivers

Version history

7
  1. v1.1.2LatestNov 7, 2026
  2. v1.1.1Oct 30, 2026
  3. v1.1.0Oct 18, 2026
  4. v1.0.9Oct 12, 2026
  5. v1.0.8Oct 1, 2026
  6. v1.0.7Sep 30, 2026
  7. v1.0.6Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts