Analytics Legends — SAP Analytics Intelligence
AI agent for SAP analytics: firms, day rates, contract radar, news, concepts, studies
Executive verdict
trustsnap_9a27dfe9b7af5257- Machine trust evaluator activity
- Possible agent/script activity
- profile / compare inspection
Current trust snapshot
trustsnap_9a27dfe9b7af5257Canonical machine links
Own this MCP?
Claim ownership, prove control with a GitHub, DNS, HTTP, MCP metadata, or email-domain challenge, revalidate now, publish a badge, configure monitoring, and unlock a verified server profile.
POST /v1/servers/ai.analyticslegends/sap-analytics/revalidateBadge embed
[](https://verify.sentinelsignal.io/servers/ai.analyticslegends/sap-analytics)
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Production readiness class
Evidence confidence
Recommended for
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Warningstep_up_auth_probe• Missingconnector_replay_probe• Missing — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Warning
Evidence provenance
action_safety_probe• Error
Evidence provenance
tool_snapshot_probe• Missingconnector_replay_probe• Missing
Why compatibility is limited by client
Remediation checklist
OpenAI connectors expect OAuth for remote server auth.Dynamic client registration materially improves connector setup.search fetch only is not yet satisfiedoauth configured is not yet satisfiedadmin refresh required is not yet satisfiedsafe for company knowledge is not yet satisfied
Remediation checklist
search fetch only is not yet satisfiedoauth configured is not yet satisfiedadmin refresh required is not yet satisfiedsafe for company knowledge is not yet satisfiedsafe for messages api remote mcp is not yet satisfiedTransport compliance issues should be resolved before wider client rollout.
Remediation checklist
Add a clearer auth boundary around risky write actions.Add confirmation or dry-run semantics for risky actions.Constrain or sandbox exec-capable tools before publishing broadly.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewPublic server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Jul 31, 2026 05:33:58 AM UTC | Latest validation: healthy | Score 69.5 with status healthy. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://analyticslegends.ai
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://analyticslegends.ai/mcp
- Server card: none
Security posture
Agent Commerce & Payment Readiness - Beta
Beta assessment. Verify separates commerce-adjacent context from observed payment execution. Usage, billing, pricing, card, wallet, or meter terms alone do not make a server payment-capable. This is not a certification of safety, compliance, or fraud prevention.
Warnings
- Verify observed commerce-adjacent billing, usage, or pricing context, but did not observe a tool that can execute payment.
Evidence
| Field | Value | Source | Matched terms | Confidence |
|---|---|---|---|---|
| commerce_signal | moderate | tool_schema | limit, currency, quote, rate, card | medium |
| payment_rails | Stripe, card | tool_schema | stripe, card | medium |
Recommended operator fixes
- Clarify whether observed billing, usage, or pricing context can execute payment or is informational only.
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
search_firms |
read write exec network filesystem export | High | command execution bulk data access filesystem mutation | No explicit safeguard hints detected. |
get_firm |
read network filesystem | Medium | none | No explicit safeguard hints detected. |
list_firm_kinds |
read filesystem | Low | none | No explicit safeguard hints detected. |
find_opportunities |
read write delete exec network admin export | Critical | destructive operation command execution bulk data access admin mutation | No explicit safeguard hints detected. |
search_news |
read exec network filesystem export | High | command execution bulk data access | No explicit safeguard hints detected. |
search_concepts |
read exec export | High | command execution bulk data access | No explicit safeguard hints detected. |
get_concept |
read network | Medium | none | No explicit safeguard hints detected. |
list_studies |
read exec network export | High | command execution bulk data access | No explicit safeguard hints detected. |
get_day_rate_benchmark |
read | Low | none | No explicit safeguard hints detected. |
list_sap_modules |
read exec admin export | High | command execution bulk data access | No explicit safeguard hints detected. |
Write-action governance
Status detail: 6 high-risk tool(s), 1 destructive tool(s), 6 exec-capable tool(s) are exposed without a clear auth boundary; no safeguards or confirmation signals detected.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
search_firms |
High | command execution bulk data access filesystem mutation | no |
find_opportunities |
Critical | destructive operation command execution bulk data access admin mutation | no |
search_news |
High | command execution bulk data access | no |
search_concepts |
High | command execution bulk data access | no |
list_studies |
High | command execution bulk data access | no |
list_sap_modules |
High | command execution bulk data access | no |
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Why this score?
Algorithmic score breakdown
Compatibility profiles
Connector URL: https://analyticslegends.ai/mcp # No OAuth metadata detected. # Server: ai.analyticslegends/sap-analytics
{
"mcpServers": {
"sap-analytics": {
"command": "npx",
"args": ["mcp-remote", "https://analyticslegends.ai/mcp"]
}
}
}
smithery mcp add "https://analyticslegends.ai/mcp"
curl -sS https://analyticslegends.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Associate roots, sampling, and elicitation with active client requests | Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| High | Keep connector refreshes backward compatible | Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Publish OAuth authorization-server metadata | Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. | Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.Playbook
|
| High | Publish a complete server card | Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. | Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.Playbook
|
| High | Stop asking users to paste secrets directly | Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Document minimal scopes and return cleaner auth challenges | Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. | Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.Playbook
|
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Reduce tool-surface churn | Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Recovery Semantics | 0/4 | -4.0 |
| Execution Sandbox Safety | 0/4 | -4.0 |
| Error Contract | 0/4 | -4.0 |
| Trust Confidence | 1.8/4 | -2.2 |
| Utility Coverage | 2/4 | -2.0 |
| Transport Compliance | 2/4 | -2.0 |
| Spec Recency | 2/4 | -2.0 |
| Safety Transparency | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Least Privilege Scope | 2/4 | -2.0 |
| Destructive Operation Safety | 2/4 | -2.0 |
Validation diff
Need at least two validation runs before diffing changes.
Tool snapshot diff & changelog
Need at least two validation runs before building a tool changelog.
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Transport compliance drilldown
Issues: missing_session_id
Request association
Utility coverage
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Passes |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Likely to fail |
|
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
ai.analyticslegends/sap-analytics |
official_registry | yes | 69.52 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Install snippets
Connector URL: https://analyticslegends.ai/mcp # No OAuth metadata detected. # Server: ai.analyticslegends/sap-analytics
{
"mcpServers": {
"sap-analytics": {
"command": "npx",
"args": ["mcp-remote", "https://analyticslegends.ai/mcp"]
}
}
}
smithery mcp add "https://analyticslegends.ai/mcp"
curl -sS https://analyticslegends.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.ai.analyticslegends/sap-analytics.Claims & monitoring
No verified maintainer claim recorded.
Alert routing
| Watch | Team | Channels | Minimum severity |
|---|---|---|---|
| No active watch destinations. | |||
Maintainer analytics
Maintainer response quality
Maintainer annotations
No maintainer annotations have been recorded yet.
Maintainer rebuttals & expected behavior
No maintainer rebuttals or expected-behavior overrides are recorded yet.
Latest validation evidence
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404openid_configurationno authorization serverserver_cardClient error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Error | n/a | 6 high-risk, 1 destructive, 6 exec-capable tool(s); no clear auth boundary; safeguards=0; confirmation=none. |
advanced_capabilities_probe |
OK | n/a | 4 capability signal(s): prompts, resource links, resources, structured outputs. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: action safety, server card. |
connector_replay_probe |
Missing | n/a | No connector replay evidence recorded. |
determinism_probe |
OK | 110.3 ms | Check completed |
initialize |
OK | 177.1 ms | Protocol 2025-03-26 |
interactive_flow_probe |
Missing | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 49.3 ms | Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
OK | 39.3 ms | Fetched https://analyticslegends.ai/robots.txt |
prompt_get |
OK | 109.8 ms | 1 prompt message(s) returned |
prompts_list |
OK | 121.5 ms | 2 prompt(s) exposed |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
OK | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
OK | 3826.1 ms | 1 resource content item(s) returned |
resources_list |
OK | 127.8 ms | 3 resource item(s) exposed |
server_card |
Error | 185.3 ms | Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
Missing | n/a | no historical snapshot |
tools_list |
OK | 96.7 ms | 10 tool(s) exposed |
transport_compliance_probe |
Warning | 111.7 ms | Issues: missing session id (bad protocol=400). |
utility_coverage_probe |
Missing | 93.0 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 6,
"capability_distribution": {
"admin": 2,
"delete": 1,
"exec": 6,
"export": 6,
"filesystem": 4,
"network": 6,
"read": 10,
"write": 2
},
"destructive_tools": 1,
"egress_tools": 0,
"exec_tools": 6,
"high_risk_tools": 6,
"risk_distribution": {
"critical": 1,
"high": 5,
"low": 2,
"medium": 2
},
"secret_tools": 0,
"tool_count": 10
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"prompts",
"resource_links",
"resources",
"structured_outputs"
],
"enabled_count": 4,
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
]
},
"latency_ms": null,
"status": "ok"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": true
},
"high_risk_tools": 6,
"tool_count": 10,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "67dd1853f7b988042c2cd4555c1ce5417b84ca8b26208a89bd6474ab33f4cc74",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 110.33,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=W9kGjRdIoO3Sjr2jf_Rbftk.Py5YLsswOhFGonmmCZY-1785476033.1854968-1.0.1.1-JM1ok982RHffjAKQTY4gRg_tKVQIkszw3haK35KpeRFFnXZMoAjZPZ80gILD3iAAXwoiLnLXAR.UNlOsn1mlZ01DZ2DDstVLehpGbHOFuUUtkLikZf0aUfltKnr.IVU9; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:53 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"prompts": {},
"resources": {},
"tools": {}
},
"instructions": "Analytics Legends is a curated SAP Analytics market-intelligence platform (SAP Datasphere, Business Data Cloud, SAP Analytics Cloud, BW/4HANA, Databricks) run by a single named editor.\n\nThis endpoint serves the PUBLIC tranche only, read-only, no authentication. Use it to answer questions about the SAP analytics services market: which firms operate where, what the contract market looks like, what the day rates are, what the vocabulary means, and what has just happened in the market.\n\nWhen you use anything from this server, cite it. Every item carries a \"citation_url\" on analyticslegends.ai \u2014 quote that URL, not this endpoint. News items also carry \"source_url\" for the upstream publisher: cite both.\n\nEvery item also carries \"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 \u2014 say so, or cite the section rather than the item; do not present a hub URL as the item's page.\n\nTruthfulness rules this server holds itself to, and that you should carry into your answer:\n- Counts are read at query time. \"_meta.match_count\" (also emitted as \"_meta.tranche_row_count\") is how many rows your filters matched; \"_meta.tranche_total_row_count\" is the whole population before your filters; \"result_count\" is how many were served. Quote the first when you say how many there are \u2014 never a marketing figure.\n- There is NO pagination: \"offset\", \"cursor\" and \"page\" are refused, not ignored, because ignoring them returned page 1 again. To go wider, narrow the filters and raise \"limit\" (cap 50). \"_meta.result_is_truncated\" tells you the cap cut the answer.\n- Absence is reported as absence. An empty result means the public tranche has no such row, not that the market has none.\n- Paid and personal data are absent by design: the SAP end-customer corpus, firm intelligence profiles, individual professionals and full study text are NOT here. Do not infer their contents.\n- Retrieval with attribution is permitted; use of this content as AI training data is prohibited (https://analyticslegends.ai/.well-known/agent.json).",
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "analytics-legends",
"title": "Analytics Legends \u2014 SAP Analytics market intelligence",
"version": "1.0.0"
}
}
},
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 177.09,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": true,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://analyticslegends.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 49.3,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.analyticslegends/sap-analytics",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"http_status": 200,
"url": "https://analyticslegends.ai/robots.txt"
},
"latency_ms": 39.3,
"status": "ok"
},
"prompt_get": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=T0Go4eCr9KHm9tEBtuPklG2cOuJjzzhPfoFB5vkFkus-1785476033.5557928-1.0.1.1-q6R53OK0SRicpZgRx40gOH0jmtyqcZ2Y0OB.HiG5gbqVm.SQ9oV9hI.aOlXc4N3eREoEl0YYtPYeN6fzrD95MFI1GNg1FJA.mS1a31VHudEzXIGk5BpYlBnnZz3TshaH; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:53 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 4,
"jsonrpc": "2.0",
"result": {
"description": "Sourced SAP analytics market briefing for DE.",
"messages": [
{
"content": {
"text": "Brief me on the SAP analytics services market in DE.\n\nUse the analytics-legends tools in this order and cite every claim:\n1. list_firm_kinds \u2014 establish the population before naming anyone.\n2. search_firms with country=\"DE\" \u2014 who provides these services there.\n3. find_opportunities with country=\"DE\" \u2014 what the demand side is asking for right now.\n4. get_day_rate_benchmark with country=\"DE\" \u2014 the public rate band; quote sample_size with it.\n5. search_news \u2014 what has just changed.\n\nRules: quote each item's citation_url. For news, quote source_url too. Report the tranche_row_count you searched, and say plainly when a result set is empty rather than filling the gap from memory. Do not state day-rate quartiles \u2014 they are not public.",
"type": "text"
},
"role": "user"
}
]
}
},
"prompt_arguments": [
{
"description": "ISO-3166 alpha-2 country code, e.g. DE.",
"name": "country",
"required": true
},
{
"description": "Optional product focus, e.g. Datasphere, BDC, SAC.",
"name": "focus",
"required": false
}
],
"prompt_name": "brief_sap_analytics_market",
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 109.78,
"status": "ok"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=IgiDwEUlD1mhmRpYYwsrW04wHGnu4zpNUImhIubbRoU-1785476033.434199-1.0.1.1-h8393WbuHNdFU_pot_1iRh768wo44hS8pyIt1Xv9kOv.jY9iAAO9Gh80sUS19c2zVTJhsHJFt5d2WcajvQJODYdXaSnguTDcTnf_u.gLedIx5.wKwswy3Xphe1RfvcXi; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:53 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": [
{
"arguments": [
{
"description": "ISO-3166 alpha-2 country code, e.g. DE.",
"name": "country",
"required": true
},
{
"description": "Optional product focus, e.g. Datasphere, BDC, SAC.",
"name": "focus",
"required": false
}
],
"description": "Assemble a sourced, cited briefing on the SAP analytics services market for one country: who the providers are, what is on the radar, what the day rates look like and what has just happened.",
"name": "brief_sap_analytics_market",
"title": "Brief me on the SAP analytics market in a country"
},
{
"arguments": [
{
"description": "The term to explain.",
"name": "term",
"required": true
}
],
"description": "Explain one SAP analytics term from the Analytics Legends encyclopaedia and cite the canonical URL.",
"name": "explain_sap_analytics_term",
"title": "Explain an SAP analytics term with a citation"
}
]
}
},
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 121.47,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=AhVFf_HPoF5ffRfVeBnMxX8Eorvj.aTO3v.p8G5rLWc-1785476033.7936084-1.0.1.1-5.alWTTmrez.6zkfNPCM9fVsE_JNSuj9XI1MJA7ZR0iYjZjnyLLGxfjlDv3CPH0eO4YRZnc4ES9eZZh3vKLMo.2p8G8W7O_U1pAtcV2rYCt_qb8ODGQEkQYfv1_.todK; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:57 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 6,
"jsonrpc": "2.0",
"result": {
"contents": [
{
"mimeType": "application/json",
"text": "{\n \"endpoint\": \"https://analyticslegends.ai/mcp\",\n \"auth\": \"none \u2014 public read-only tranche\",\n \"served\": {\n \"firms\": {\n \"source\": \"database.organizations\",\n \"rows\": 5048,\n \"tools\": [\n \"search_firms\",\n \"get_firm\",\n \"list_firm_kinds\"\n ]\n },\n \"opportunities\": {\n \"source\": \"public.public_opportunities + https://analyticslegends.ai/api/contracts-lean.json (all active rows; the application link alone is tier-gated)\",\n \"rows\": 19,\n \"rows_note\": \"`rows` counts the promoted leg only; the site-radar leg is read at query time.\",\n \"tools\": [\n \"find_opportunities\"\n ]\n },\n \"news\": {\n \"source\": \"content.news_items\",\n \"rows\": 3543,\n \"tools\": [\n \"search_news\"\n ]\n },\n \"concepts\": {\n \"source\": \"content.concepts\",\n \"rows\": 305,\n \"tools\": [\n \"search_concepts\",\n \"get_concept\"\n ]\n },\n \"studies\": {\n \"source\": \"content.studies (metadata only)\",\n \"rows\": 38,\n \"tools\": [\n \"list_studies\"\n ]\n },\n \"modules\": {\n \"source\": \"lookup.sap_modules\",\n \"rows\": 40,\n \"tools\": [\n \"list_sap_modules\"\n ]\n },\n \"day_rates\": {\n \"source\": \"https://analyticslegends.ai/api/market-rates.json\",\n \"rows\": null,\n \"tools\": [\n \"get_day_rate_benchmark\"\n ]\n }\n },\n \"excluded\": {\n \"sap_end_customer_corpus\": \"paid Legend+ dataset, RLS-locked 2026-07-08, static JSON returns 404\",\n \"firm_intelligence_profiles\": \"paid Legend+ dataset, same lockdown\",\n \"professionals_and_people\": \"personal data \u2014 never served\",\n \"study_bodies\": \"paid Legend tier; metadata only here\",\n \"knowledge_graph\": \"build artefact with no Postgres home\",\n \"day_rate_quartiles\": \"paid Consultant tier; only the public min/max aggregate is served\",\n \"opportunity_consultant_matches\": \"paid Firm tier deliverable\"\n },\n \"_attribution\": \"Source: Analytics Legends (https://analyticslegends.ai) \u2014 retrieval-with-attribution permitted per https://analyticslegends.ai/.well-known/agent.json; use as AI training data is prohibited. Cite the canonical URL on each item.\"\n}",
"uri": "analytics-legends://tranche"
}
]
}
},
"resource_uri": "analytics-legends://tranche",
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 3826.14,
"status": "ok"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=zaNospDs_cUruNf3myBx7J0ECKxPteynVAe9QJTi9z4-1785476033.666371-1.0.1.1-5voAE.4B5O2mGYYMjHGCJWbUNphppNslgeaN.K0bX1D6Vd3xlqTXuSqH_oMBhbnN13jjUfnuUKZe2VO3nJL84w.lPllXOLXtIcQHrKEPKucsrnSNUi5WlxbOxGq5KOAc; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:53 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": [
{
"description": "The explicit list of datasets this hosted MCP endpoint serves, the datasets it excludes and why, and the live row count of each. Read this before trusting or citing any tool result.",
"mimeType": "application/json",
"name": "Public tranche contract",
"title": "What this endpoint serves, and what it deliberately does not",
"uri": "analytics-legends://tranche"
},
{
"description": "The machine-readable policy governing AI access to Analytics Legends: retrieval with attribution is permitted, training-data use is prohibited.",
"mimeType": "application/json",
"name": "AI access policy",
"title": "Retrieval-with-attribution carve-out (.well-known/agent.json)",
"uri": "analytics-legends://agents-policy"
},
{
"description": "Auto-derived platform manifest: counts, tiers, routes, tech stack.",
"mimeType": "application/json",
"name": "Platform manifest",
"title": "Platform manifest (api/about.json)",
"uri": "analytics-legends://about"
}
]
}
},
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 127.77,
"status": "ok"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://analyticslegends.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 185.3,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"current_tool_count": 10,
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"mcp-protocol-version": "2025-03-26",
"set-cookie": "__cf_bm=7L5A0pM_ije_aAtUJyaF_D_t79djjj5Fr_FZhvsPo1M-1785476033.337834-1.0.1.1-LqD3gkhAMsnwm9Rw2NA3d9US2gCZjk12H0YMR0geyFj.5Ri14pCkE9sC8nHN5QrUS_FLRN1brzNC9CZxB16aCm06FFZldlSIbTERcAGTqq3uaviSXqj6suRYEijLANvx; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:53 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search the SAP analytics firm directory"
},
"description": "Search the published Analytics Legends directory of SAP analytics service providers \u2014 placement agencies, Big-4 and ESN practices, SAP vendors, platforms and community groups \u2014 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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
},
"kind": {
"description": "Restrict to one organisation kind. Call list_firm_kinds for live counts. A value outside this list is refused, not silently ignored.",
"enum": [
"agency_placement",
"professional_services_big4",
"professional_services_esn",
"vendor_sap",
"vendor_partner",
"platform_marketplace",
"community_group"
],
"type": "string"
},
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "search_firms",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"hq_country": {
"type": "string"
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"website": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Search the SAP analytics firm directory"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get one firm's published profile"
},
"description": "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 \u2014 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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "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 rows), 429 of them (8,3 %) carry a numeric firm id instead \u2014 '00317' is BearingPoint Switzerland, whose page is /companies/bearingpoint-switzerland/. Deriving a slug from the citation URL fails on those rows; carry rows[].slug across instead.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_firm",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Get one firm's published profile"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List firm kinds with live counts"
},
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_firm_kinds",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"kind": {
"type": "string"
},
"n": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "List firm kinds with live counts"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search the public SAP analytics contract radar"
},
"description": "Search every SAP contract and permanent-role posting Analytics Legends publishes to an ANONYMOUS visitor \u2014 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`) \u2014 general SAP work (FI/CO, SD, EWM, MDG, BTP, ABAP), all German cities, and it carries NO rate, contract_type, currency, posted_at 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`) \u2014 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\" \u2014 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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"country": {
"description": "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.note` says so on any country-filtered call.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"location": {
"description": "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, Mannheim, Stuttgart); the site-radar leg is worldwide.",
"type": "string"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "find_opportunities",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"firm_name": {
"type": "string"
},
"location": {
"type": "string"
},
"source_url": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Search the public SAP analytics contract radar"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search SAP analytics market news"
},
"description": "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 \u2014 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 \u2014 cite both, and prefer source_url when you need a page that certainly carries the item.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "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, Security, Migration, Freelance, Analytics, Consulting, Cloud, Customer Win. Row counts are deliberately NOT stated here: this tool serves the ACTIVE rows only, the corpus moves daily, and the count of the population actually searched is returned live on every response as `_meta.tranche_row_count`. One bucket needs a warning. 'SAC' is the noisiest label in this corpus because the acronym collides with unrelated ones \u2014 Windows 'Smart App Control', and the surname 'Sacks'. Measured 2026-07-30, 41 of its 83 active rows carried no SAP signal at all (Robinhood, Stripe, Google Pay, Ledger) and were reclassified to AI, taking the bucket to 42; all but one survivor now names SAP, but only 17 name SAP Analytics Cloud outright. For genuine SAC product news, pair category:'SAC' with query:'analytics cloud'.",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "search_news",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"published_at": {
"type": "string"
},
"source_name": {
"type": "string"
},
"source_url": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Search SAP analytics market news"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search the SAP analytics concept encyclopaedia"
},
"description": "Search the SAP analytics concept encyclopaedia \u2014 the vocabulary of the stack, written for practitioners. Returns titles and summaries; call get_concept for the full entry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "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 & Practice (29), Governance & Compliance (25), Architecture & Performance (25), SAC (Analytics Cloud) (22), BDC Platform (22), Adjacent Stacks (19), Datasphere Core (17), Sales & Commercial (16), Productivity & AI (10), Industry Solutions (10), BW/4HANA & Migration (9), Data Engineering & Integration (1). So category:\"datasphere\" reaches Datasphere Core.",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "search_concepts",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Search the SAP analytics concept encyclopaedia"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get one concept entry in full"
},
"description": "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 \u2014 follow citation_url for those.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Concept slug from search_concepts.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_concept",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"slug": {
"type": "string"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Get one concept entry in full"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List the deep-research studies (metadata only)"
},
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lang": {
"description": "Language code, EN or FR.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "list_studies",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"access": {
"type": "string"
},
"as_of": {
"type": "string"
},
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"word_count": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "List the deep-research studies (metadata only)"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Public SAP analytics day-rate aggregate"
},
"description": "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 \u2014 do not infer them.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO-3166-1 alpha-2 country code, e.g. DE, FR, CH.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
},
"seniority": {
"description": "e.g. senior, principal.",
"type": "string"
},
"specialisation": {
"description": "e.g. datasphere, bdc, sac, bw4hana, joule.",
"type": "string"
}
},
"type": "object"
},
"name": "get_day_rate_benchmark",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"country": {
"type": "string"
},
"currency": {
"type": "string"
},
"sample_size": {
"type": "integer"
},
"seniority": {
"type": "string"
},
"specialisation": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "Public SAP analytics day-rate aggregate"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "SAP analytics module taxonomy"
},
"description": "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 \u2014 'SAC', 'Analytics Cloud', 'Datasphere' \u2014 onto the codes the other tools filter on.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"description": "Max rows (hard cap 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Free-text filter, matched case-insensitively.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "list_sap_modules",
"outputSchema": {
"properties": {
"_attribution": {
"type": "string"
},
"_meta": {
"type": "object"
},
"result_count": {
"type": "integer"
},
"rows": {
"items": {
"properties": {
"category": {
"type": "string"
},
"citation_note": {
"type": "string"
},
"citation_scope": {
"enum": [
"record",
"section_hub"
],
"type": "string"
},
"citation_url": {
"type": "string"
},
"code": {
"type": "string"
},
"label_en": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"result_count",
"rows",
"_attribution"
],
"type": "object"
},
"title": "SAP analytics module taxonomy"
}
]
}
},
"url": "https://analyticslegends.ai/mcp"
},
"latency_ms": 96.69,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"set-cookie": "__cf_bm=3kDnPGh4jCY7KMG34yi5GFOmNwwEMxvGn8CZvnHN5f0-1785476037.8862312-1.0.1.1-0hVrQvj6sx6DuAyA1MAhSAn9nHREF.XbaZ0gLHj2AtqFTheHlEQWTGuTVB6QY30PWflwBs.cjJu2.qAWN62rWgkkZexJXUumx07d.qA79PYkRj2ZSfAlRSS0cC47m15M; HttpOnly; SameSite=None; Secure; Path=/; Domain=supabase.co; Expires=Fri, 31 Jul 2026 06:03:57 GMT",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"error": {
"code": -32022,
"data": {
"requested": "1999-99-99",
"supported": [
"2026-07-28",
"2025-11-25",
"2025-06-18",
"2025-03-26"
]
},
"message": "Unsupported protocol version"
},
"id": 410,
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 400,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id"
],
"last_event_id_visible": false,
"protocol_header_present": true,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 111.69,
"status": "warning"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": {
"argument_name": "country",
"name": "brief_sap_analytics_market",
"type": "prompt"
}
},
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 404,
"probe_status": "missing"
}
},
"latency_ms": 93.0,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://analyticslegends.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://analyticslegends.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://analyticslegends.ai/.well-known/mcp/server-card.json"
}
},
"remote_url": "https://analyticslegends.ai/mcp",
"server_card_payload": null,
"server_identifier": "ai.analyticslegends/sap-analytics"
}
Known versions
1.0.0
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Jul 31, 2026 05:33:58 AM UTC | Healthy | 69.5 | 5167.1 ms | 10 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Jul 31, 2026 05:33:58 AM UTC | Healthy | 69.5 | 2025-03-26 | public | 10 | 6 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Jul 31, 2026 05:33:52 AM UTC | Completed | Healthy | 5167.1 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |