Search arXiv papers, download full text, semantic search, citation graphs, and alerts via MCP.
Analytics Legends — SAP Analytics Intelligence is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
AI agent for SAP analytics: firms, day rates, contract radar, news, concepts, studies
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http analytics-legends-sap-analytics-intelligence-mcp https://analyticslegends.ai/mcp
# 2 — ask your agent for something these tools do
# search_firms, count_firms_by, get_firm and 19 more
Analytics Legends — SAP Analytics Intelligence costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http analytics-legends-sap-analytics-intelligence-mcp https://analyticslegends.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
22 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| region | string | no | Region code of the HQ country — the platform's six-value geography: EMEA (Europe AND the Middle East), AMER (North America), LATAM, APAC, AFRICA (its own region, not folded into EMEA), GLOBAL (country |
| kind | string | no | Restrict to one organisation kind. This list is the vocabulary the corpus holds today, not a frontier — call list_firm_kinds for the live one. A malformed code is refused; a well-formed code the corpu |
| module | string | no | Restrict to organisations with a DECLARED link to one SAP module/product code (UPPERCASE snake_case, e.g. DATASPHERE, BDC, SAC, BW4HANA, S4HANA, JOULE — case-insensitive on input). The declared links |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which facet to count on. Required — there is no default worth guessing. |
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| region | string | no | Region code of the HQ country — the platform's six-value geography: EMEA (Europe AND the Middle East), AMER (North America), LATAM, APAC, AFRICA (its own region, not folded into EMEA), GLOBAL (country |
| kind | string | no | Restrict to one organisation kind before counting, same vocabulary as search_firms. Combining it with by:"kind" is legal and returns that single bucket. |
| module | string | no | Restrict to organisations with a DECLARED link to one SAP module code before counting, same vocabulary as search_firms' module. Combining it with by:"module" is legal and returns that single bucke |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The DATABASE slug, taken verbatim from search_firms.rows[].slug. It is not always the web slug in citation_url: a minority of published rows carry a numeric firm id instead (365 of them on 2026-08-09 |
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.
No parameter schema on file.
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| platform_type | string | no | Restrict to one platform type, lowercase snake_case. The live vocabulary with counts is _meta.available_platform_types on every response — a well-formed unknown value returns no rows, it never widen |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| location | string | no | City or place, matched case-insensitively as a substring of the posting's location. The promoted leg is all-German (Hamburg, Frankfurt am Main, Bremen, Munich, Cologne, Dortmund, Hanover, Landshut, Ma |
| country | string | no | ISO-3166-1 alpha-2 code, applied to both legs as a predicate on the row's own country_code. It NO LONGER selects the site-radar leg alone: the promoted feed carried country_code on almost none of its |
| employment_type | string | no | Restrict to one engagement type. THE RADAR IS MOSTLY PERMANENT, so a freelance or contract question answered off an unfiltered page is answered with salaried jobs. For the actual split, make the filte |
| remote_mode | string | no | Restrict to one work-location policy: remote, hybrid or onsite. READ THIS BEFORE ANSWERING A REMOTE QUESTION: a large share of the radar declares no policy at all (_meta.remote_mode_undeclared |
| lang | string | no | Reading language for the TITLE — 'EN' (default), 'FR' or 'DE'. This is a RENDERING choice, never a filter: it changes which string title carries, never which rows come back. Read title_lang on eve |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| category | string | no | Category code, matched case-insensitively. The live vocabulary is NOT written here — read _meta.available_categories on any response: every category label this corpus holds right now, with its activ |
| published_since | string | no | Lower bound on published_at, inclusive, as YYYY-MM-DD. Without a bound a period question is only answerable by walking pages — and _meta.match_count then counts the QUERY, not the period, so any f |
| published_until | string | no | Upper bound on published_at, INCLUSIVE of the day named, as YYYY-MM-DD. Combine with published_since for a window; _meta.match_count then describes that window, which is what makes it quotable. |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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, mea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| category | string | no | Concept category, matched case-insensitively as an exact value OR a prefix — so category:"datasphere" reaches 'Datasphere Core'. The values are long human labels, not codes. DO NOT GUESS THEM FROM THI |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Concept slug from search_concepts. |
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 e
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| lang | string | no | ISO-639-1 language of the EDITION to list, e.g. en, fr or de — each study is published as one row per language. Omit it to see every edition of every study; the live list of languages actually present |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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 aggrega
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| specialisation | string | no | One of the codes the aggregate actually holds — analytics_all, bw, bw4hana, bw4hana_sac, sac, datasphere (2026-08-09; the live list comes back as _meta.available_specialisations on every call). They |
| seniority | string | no | e.g. senior, principal. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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 edit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| track | string | no | Restrict to one track, by SLUG (databricks-data-eng) or by English name (Databricks & Data Eng.), matched case-insensitively. The live vocabulary with per-track counts is _meta.available_tracks |
| level | string | no | Restrict to one level, matched case-insensitively: Beginner · Intermediate · Advanced · Expert. Counts in _meta.available_levels. |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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, `
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | no | Fully-qualified node id, <type>:<id> — module:M178, concept:C001, study:ai-impact-2026-EN, vendor:alteryx. With it, rows are that node's EDGES (one row per neighbour). Without it, rows are N |
| node_type | string | no | Restrict to one carried node type: concept · module · study · vendor. Read _meta.available_node_types. |
| edge_type | string | no | Restrict a walk to one relation. The authority is _meta.available_edge_types, computed on every call — no list is kept here: a four-name list once stood here while the projection served five, then a |
| direction | string | no | Which side of the edge node_id must sit on. Default both. Ignored without node_id, and the response says so rather than pretending it applied. |
| query | string | no | Case-insensitive substring of a node's label. Applies to the NODE listing, not to a walk. Matched against the label SERVED, so it follows lang. |
| lang | string | no | ISO-639-1 language for the LABELS — en, fr or de. Defaults to en. The fallback is declared and never silent: the language asked for, then English, then French, and _meta.label_language_coverage says |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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 €29.90 Consultant Pass sel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Concept slug, verbatim from search_concepts.rows[].slug. |
Read one Analytics Legends study BODY — the paid text behind list_studies' metadata. Requires a subscriber API key, Consultant tier or above. 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Study slug, verbatim from list_studies.rows[].slug. |
| lang | string | no | ISO-639-1 language of the edition, e.g. en or fr. Defaults to en. |
| section | string | no | A section heading from a previous call's sections list. Omit to get the list. |
Read one Academy training module in full — body, learning objectives and summary, EN, FR and DE — the written course corpus the €29.90 Consultant Pass sells. On THIS endpoint the machine-access subscription is the MCP Pass (€39.90/month, analyticslegends.ai/pricing/), which opens the ENTIRE paid tranche from one key; the €29.90 Consultant Pass is its web-subscriber equivalent and opens the same ti
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Module id (M001) or slug (datasphere-foundations), verbatim from find_academy_modules.rows[].id / .slug. |
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 a subscriber API key, Legend tier or above. Verification status is SERVED, never silently filtered: sap_client_verification_status and status are columns on every row ('verifie
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text filter, case-insensitive. EVERY word must appear in the record (substring per word, any order), so a natural-language phrase narrows the answer instead of having to match verbatim. |
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| industry | string | no | Industry or sector filter, matched case-insensitively. |
| product | string | no | Keep only end-customers where this SAP product was DETECTED in use. Absence from the result means undetected, not unused. |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
The full profile of one SAP end-customer — SAP footprint (products in use, modules known), analytics solutions, identity and evidence fields. Requires a subscriber API key, Legend tier or above. id comes verbatim from find_sap_clients.rows[].id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Profile id, verbatim from find_sap_clients.rows[].id. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_region | string | yes | The region you want to enter. One of EMEA, AMER, LATAM, APAC, AFRICA (GLOBAL is refused: it is not a market). |
| home_region | string | no | Optional. The region you operate from today. When set, bridge groups are the families present in BOTH regions; when omitted, in the target region and any other. |
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 dec
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| region | string | no | Region code of the HQ country — the platform's six-value geography: EMEA (Europe AND the Middle East), AMER (North America), LATAM, APAC, AFRICA (its own region, not folded into EMEA), GLOBAL (country |
| kind | string | no | Restrict to one provider kind (placement agencies, ESN/SI practices, Big-4, SAP partners, platforms). SAP's own entities, communities, schools and public bodies are never in this population. |
| module | string | no | Restrict to firms with a DECLARED link to one SAP module code (UPPERCASE snake_case, e.g. DATASPHERE, BDC, SAC — call count_firms_by {by:"module"} for the live vocabulary). Absence means no declared l |
| local_only | boolean | no | true (default): only firms with no sister entity abroad. false: every provider of the market, groups included. |
| limit | integer | no | Max rows (hard cap 50). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
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 enrich
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Firm name, matched case-insensitively; an exact name ranks first, then a name starting with it, then the other matches. Omit to browse the corpus by data completeness. |
| country | string | no | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| delivers | string | no | Keep only firms whose profile DECLARES delivery of this product (the delivers_* flags every row already carries). An undeclared flag drops the row: absence from the result means the profile does not |
| mode | string | no | Keep only firms whose profile declares this engagement mode (mode_freelance / mode_permanent / mode_subcontract). Same reading as delivers: declared-only. |
| limit | integer | no | Max rows (hard cap 10 — these rows are wide). |
| cursor | string | no | Opaque token from a previous response's _meta.next_cursor. Pass it back with the SAME filter arguments; null means the last page. Changing a filter refuses the cursor. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Analytics Legends — SAP Analytics Intelligence or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.9.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Analytics Legends — SAP Analytics Intelligence can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.