Try it yourself · Module 1
Connect your AI via MCP
A read-only MCP endpoint over the same governed People serving RPCs the case studies use. Your AI client gets 15 tools, not tables. The dataset is synthetic GlobalTech, not a real company.
Endpoint
https://peopleanalyticsai.net/api/mcpStreamable HTTP, stateless JSON-RPC over POST. GET returns the text people-mcp. No SSE.
Visitor scope
public demo token · aggregate only · min_cell 50
The token maps to demo-external-viewer. It is a public demo credential, not a secret. It cannot select another identity, run SQL, list people, or open incident replay. Rotate it by changing the Vercel env vars and redeploying.
people-mcp-demo-visitor-agg-min50-v1Cursor
VerifiedConnected end-to-end from Cursor with a static Authorization header.
Verified against: cursor.com/docs/mcp · mcp.json remote server with headers
1Where to go
- Cursor Settings → Tools & MCP, or open ~/.cursor/mcp.json (global) / .cursor/mcp.json (project).
2What to click
- New MCP Server (drops you into mcp.json).
- Save, then toggle the server on. Cursor detects Streamable HTTP from the url field; no transport key is needed.
3What to paste
{ "mcpServers": { "people-analytics": { "url": "https://peopleanalyticsai.net/api/mcp", "headers": { "Authorization": "Bearer people-mcp-demo-visitor-agg-min50-v1" } } } }4Token / endpoint placement
headers.Authorization with the literal prefix “Bearer ” and a space. To keep it out of the file use "Bearer ${env:PEOPLE_MCP_TOKEN}" and set the variable in your shell profile.5Example test question
“Using people-analytics, what is certified Headcount as of 2026-08-31?”
6Expected result
- The client calls get_metric with metric_id=headcount and receives value 49,823 for as_of 2026-08-31.
- The payload carries identity_id, snapshot pointer, and effective_min_cell. No SQL is generated on your side.
- Tools & MCP lists 15 tools under people-analytics; none of them takes identity_id.
7Permission notes
- The token maps to demo-external-viewer: aggregate cells only, min_cell 50.
- Confidential metrics such as compa_ratio_median return value=null with a deny reason; the tool call still succeeds.
- identity_id arguments are rejected. The token cannot select another identity, run SQL, list people, or open the incident replay.
- It is a public demo credential, not a secret. Rotate by changing the Vercel env vars and redeploying.
8Common errors
- Server shows “Failed to connect”.
- The url must end in /api/mcp, not /connect. GET returns the text people-mcp; POST without the header returns 401.
- 401 unauthorized.
- The header value must start with “Bearer ” (capital B, one space). Env interpolation only resolves at Cursor startup — restart after editing your shell profile.
- Tool list is stale.
- Cursor caches tools per server. Toggle the server off and on, or restart Cursor.
15 tools
Every tool maps to a people_get_* RPC. None accepts identity_id; the token fixes the identity server-side.
list_metrics— Certified metrics visible to the site visitor identityget_metric— Scalar value; denied metrics return value=nullget_metric_trend— Monthly points for a certified metricget_metric_breakdown— Aggregate cells with automatic min-cell suppressionget_metric_definition— Definition, formula, owner, versionlist_entities— Ontology entities filtered by sensitivitydescribe_entity— Attributes; PII hidden from the site visitor identityget_join_paths— Allowed and denied edges. No SQLget_glossary_term— Business-rule glossaryget_lineage— Lineage edgesget_source_health— Current certified pointer and metric healthget_quality_tests— data-v1 quality testsget_quality_incidents— Historical incidents, not current certified valuesget_serving_snapshot— Certified pointer and runget_skill_coverage— Job-family skill coverage aggregates
Next: Test permissions with four identities · Architecture · Dataset.