Analytics Legends — SAP Analytics Intelligence
REMOTE · ANALYTICSLEGENDS.AI · SCANNED AUG 3
AI agent for SAP analytics: firms, day rates, contract radar, news, concepts, studies
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS not yet verified: we couldn't determine whether a plaintext access path exists. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3513 tokens (~195/item across 18 items; 15 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · analyticslegends.ai
claude mcp add --transport http ai-analyticslegends-sap-analytics https://analyticslegends.ai/mcp
[mcp_servers.ai-analyticslegends-sap-analytics] url = "https://analyticslegends.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-analyticslegends-sap-analytics": {
"type": "remote",
"url": "https://analyticslegends.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-analyticslegends-sap-analytics --url https://analyticslegends.ai/mcp --transport streamable-http
mcp_servers:
ai-analyticslegends-sap-analytics:
url: "https://analyticslegends.ai/mcp" {
"mcpServers": {
"ai-analyticslegends-sap-analytics": {
"type": "http",
"url": "https://analyticslegends.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 0
- Tool “find_opportunities” rewrote its description, which is the text the model reads security
- 1 Aug 26 −1
- HSTS header: pass → fail ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- The server now declares the “completions” capability functional
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 69
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://analyticslegends.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=analyticslegends.ai | CN=WE1,O=Google Trust Services,C=US | 30 Jul 2026 | 28 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 667b836ff5bc74df13613838a9827d4e |
| SANs: analyticslegends.ai, *.analyticslegends.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of analyticslegends.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| analyticslegends.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://analyticslegends.ai/mcp | Verified | 200 | |
| http (plaintext) | http://analyticslegends.ai/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
find_opportunities Search the public SAP analytics contract radar ~491
Search every SAP contract and permanent-role posting Analytics Legends publishes to an ANONYMOUS visitor — the same population a human browses on /opportunities/, where each posting has its own prerendered page. 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 80/80 active rows since 2026-07-31), and it carries NO rate, contract_type, currency or country_code: those fields come back null on that leg, so no rate or contract term can be read off it; (b) the SITE RADAR (`/api/contracts-lean.json`) — these DO carry country, category, seniority, posted_at and currency, and they are the analytics-specific ones (SAC Planning, Datasphere Technical Lead, Business Data Cloud). WHAT IS GATED IS A FIELD, NOT A ROW: on most radar rows `source_url` is null and `application_link` reads "members_only" — the verified link to the original listing is the paid Consultant-tier deliverable. Everything else about the posting is public, and `citation_url` is that posting's own page on analyticslegends.ai. Quote it. Report `_meta.tranche_row_count` as the published public population, never as the size of the market.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO-3166-1 alpha-2 code. It can only match the SITE-RADAR leg: the promoted leg stores country_code NULL on every row, so filtering by country silently drops it rather than returning nothing. `_meta.… |
| limit | integer | — | Max rows (hard cap 50). |
| location | string | — | 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, M… |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
find_sap_clients Search the SAP end-customer corpus (Legend tier) ~197
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 ('verified' on ~550 of ~21k rows), and you decide what standard of proof your answer needs.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| industry | string | — | Industry or sector filter, matched case-insensitively. |
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_concept Get one concept entry in full ~81
Fetch one concept entry by slug: title, category, level, tags and the editor's summary. Written by a named human editor, not generated. The card body, why-it-matters, key points and pro tip are subscriber content and are NOT returned — follow citation_url for those.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Concept slug from search_concepts. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_concept_card Full concept card (Consultant tier) ~114
The FULL encyclopaedia card for one concept — body, why-it-matters, key points, cheat sheet, glossary and pro tip, EN and FR — the corpus the €29.90 Consultant Pass sells. Requires a subscriber API key (Authorization: Bearer alk_…), Consultant tier or above; without one this tool refuses and get_concept keeps serving the public metadata. Find slugs with search_concepts.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Concept slug, verbatim from search_concepts.rows[].slug. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_day_rate_benchmark Public SAP analytics day-rate aggregate ~159
The PUBLIC day-rate aggregate for SAP analytics freelance work: min/max daily rate by country, specialisation and seniority, with a sample size and a quarter stamp. This is the free aggregate published at analyticslegends.ai/api/market-rates.json. The quartile bands (p25/p50/p75) are a paid Consultant-tier deliverable and are NOT in this response — do not infer them.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| seniority | string | — | e.g. senior, principal. |
| specialisation | string | — | e.g. datasphere, bdc, sac, bw4hana, joule. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_firm Get one firm's published profile ~207
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 ~94 % of rows, meaning none declared here, never that the firm has no partners. Does not return the paid firm-intelligence profile, contacts, or any person.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | The DATABASE slug, taken verbatim from search_firms.rows[].slug. It is not always the web slug in citation_url: re-measured 2026-07-31 against the tranche this tool actually serves (5 157 published r… |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_firm_intel Firm intelligence profile (Legend tier) ~191
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, Glassdoor and LinkedIn signals, analytics practice summary. Requires a subscriber API key, Legend tier or above. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| limit | integer | — | Max rows (hard cap 10 — these rows are wide). |
| name | string | — | Firm name, matched case-insensitively. Omit to browse the corpus by data completeness. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_sap_client_profile One SAP end-customer profile (Legend tier) ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Profile id, verbatim from find_sap_clients.rows[].id. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
get_study Read a study (Consultant tier) ~181
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 section. Find slugs and languages with list_studies.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | — | ISO-639-1 language of the edition, e.g. en or fr. Defaults to en. |
| section | string | — | A section heading from a previous call's `sections` list. Omit to get the list. |
| slug | string | yes | Study slug, verbatim from list_studies.rows[].slug. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
list_firm_kinds List firm kinds with live counts ~46
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
list_sap_modules SAP analytics module taxonomy ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
list_studies List the deep-research studies (metadata only) ~114
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 Legend-tier deliverable and are not served by this endpoint. Use this to tell a reader that a study exists and where to read it.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | — | Language code, EN or FR. |
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
search_concepts Search the SAP analytics concept encyclopaedia ~219
Search the SAP analytics concept encyclopaedia — the vocabulary of the stack, written for practitioners. Returns titles and summaries; call get_concept for the full entry.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Concept category, matched case-insensitively as an exact value OR a prefix. The 14 real values are long labels, measured 2026-07-30: Generative AI Foundations (55), Joule & SAP AI (42), Career & Prac… |
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
search_firms Search the SAP analytics firm directory ~184
Search the published Analytics Legends directory of SAP analytics service providers — placement agencies, Big-4 and ESN practices, SAP vendors, platforms and community groups — by country, kind 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 and are excluded by predicate.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH. |
| kind | string | — | Restrict to one organisation kind. Call list_firm_kinds for live counts. A value outside this list is refused, not silently ignored. |
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.
search_news Search SAP analytics market news ~466
Search the Analytics Legends market-news corpus. It is watched FOR SAP 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Category code, matched case-insensitively. The 21 real values, most-populated first: AI, SAP, SAC, Market, Joule, BDC, Regulation, Datasphere, Analyst, Partners, Product, France, Events, SAP Platform… |
| limit | integer | — | Max rows (hard cap 50). |
| query | string | — | Free-text filter, matched case-insensitively. |
| Name | Type | Req | Description |
|---|---|---|---|
| _attribution | string | yes | — |
| _meta | object | — | — |
| result_count | integer | yes | — |
| rows | array | yes | — |
| tool | string | yes | — |
No examples provided.