# com.peopleanalyst/discovery (remote · peopleanalyst.com)

PeopleAnalyst's free people-analytics feeds: answers, tools, evidence, story and scene catalogs.

- Trust score: 80/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-22

## Components

- remote · `peopleanalyst.com`: 80/100 (this document), [markdown](https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst.md), [page](https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst)

## Channel facts

- Endpoint: `https://peopleanalyst.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-22.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1955 tokens (~115/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the com.peopleanalyst/discovery MCP server?

com.peopleanalyst/discovery is a hosted endpoint at https://peopleanalyst.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-peopleanalyst-discovery 'https://peopleanalyst.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-peopleanalyst-discovery": {
      "url": "https://peopleanalyst.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-peopleanalyst-discovery": {
      "type": "http",
      "url": "https://peopleanalyst.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-peopleanalyst-discovery]
url = "https://peopleanalyst.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-peopleanalyst-discovery": {
      "type": "remote",
      "url": "https://peopleanalyst.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-peopleanalyst-discovery --url 'https://peopleanalyst.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-peopleanalyst-discovery:
    url: "https://peopleanalyst.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-peopleanalyst-discovery": {
      "Transport": "http",
      "Url": "https://peopleanalyst.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-peopleanalyst-discovery -t streamable-http -u 'https://peopleanalyst.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-peopleanalyst-discovery": {
      "type": "http",
      "url": "https://peopleanalyst.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 76, +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.

### 2026-09-11 (score 75, 0)

- [security] Tool “list_answers” rewrote its description, which is the text the model reads
- [cosmetic] Tool “list_answers” changed its title: List every query-shaped answer → List all authored answer pages

### 2026-09-10 (score 75, +1)

- [functional] Server version: 1.4.0 → 1.5.0
- [functional] New tool “get_membership_offer”

### 2026-09-09 (score 74, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.3.0 → 1.4.0
- [functional] New tool “list_answers”

## MCP tools (17)

### `list_peopleanalyst_feeds` (~44 tokens)

List PeopleAnalyst feeds

List PeopleAnalyst's free machine-readable feeds and their MCP/REST availability. OpenAPI is also published at https://peopleanalyst.com/openapi.json.

Output parameters:

- `feeds` (array)

### `get_membership_offer` (~50 tokens)

Get the Bicycle Cooperative membership offer

Returns the people analytics chapter of the Bicycle Cooperative membership offer: five options (enterprise member, practitioner member, worker, practitioner rent, enterprise rent) with chapter substitution applied and this front's join URL.

Output parameters:

- `api_version` (string)
- `chapter` (string)
- `join_url` (string)
- `offer` (object)

### `list_answers` (~42 tokens)

List all authored answer pages

Returns the full index of authored /answers pages — one entry per slug, with the question and canonical URL. Use this to discover available slugs before calling get_answer.

Output parameters:

- `answers` (array)
- `contract` (string)
- `count` (number)

### `get_answer` (~134 tokens)

Get a query-shaped answer

Returns one authored /answers page as structured content: question, markdown answer body (short answer, problem frame, evidence, grounded sources), and citations with libraryId or url. Known slugs (33): measure-employee-performance, survey-validity-check, people-analytics-program-maturity, people-analytics-vs-hr-reporting, engagement-survey-vs-listening-diagnostic, people-analytics-tools-compare, beyond-annual-engagement-survey, replace-gut-feel-talent-decisions, ….

Input parameters:

- `slug` (string, required): Answer slug from the query map (e.g. survey-validity-check).

Output parameters:

- `answer` (string)
- `canonicalUrl` (string)
- `citations` (array)
- `question` (string)
- `slug` (string)
- `title` (string)
- `updatedAt` (string)

### `get_product_description` (~103 tokens)

Machine-readable description of each PeopleAnalyst product

Machine-readable description of each PeopleAnalyst product. Versioned, CORS-open descriptions of every product in the portfolio — name, category, oneLiner, problemFrames, capabilities, beachheads, whenNotToUse (honest disqualifiers), canonicalUrls, relatedProducts. Assembled from canon. Pass ?product to filter.

Input parameters:

- `product` (string): Filter to one product id (e.g. performix, anycomp, compensation-toolbox).

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `products` (array)

### `get_marketing_registry` (~86 tokens)

The Pitboss marketing-asset registry (typed cards + personas)

The Pitboss marketing-asset registry (typed cards + personas). Cross-site marketing-asset cards built from the portfolio's brandscripts and proofs, plus the persona set. ?product filters to one product; ?status filters by lifecycle.

Input parameters:

- `product` (string): Filter cards to one product.
- `status` (string): Filter by lifecycle (e.g. live, draft).

Output parameters:

- `built_at` (string)
- `cards` (array)
- `contract` (string)
- `counts` (object)
- `filter` (object)
- `personas` (array)

### `get_brandscripts` (~97 tokens)

Per-persona StoryBrand arguments for each product

Per-persona StoryBrand arguments for each product. The persona-level argument layer (SB7-shaped): the major problem solved for a persona and what the solution looks like. ?product / ?persona filter; ?status opts into drafts.

Input parameters:

- `persona` (string): Filter to one persona slug.
- `product` (string): Filter to one product's arguments.
- `status` (string): live (default) | draft | all.

Output parameters:

- `brandscripts` (array)
- `contract` (string)
- `count` (number)
- `filter` (object)

### `get_story_tracks` (~157 tokens)

Pre-authored data-story tracks — the possibility space

Pre-authored data-story tracks — the possibility space. Complete data stories: the SB7 argument, the acts and beats that carry it, the branches it forks down, the decision it produces, and the data required to test it. Candidates only — nothing here asserts a story is true of any organisation; that is decided against data. ?persona / ?problem / ?metric / ?slug filter.

Input parameters:

- `metric` (string): Filter by metric tag, e.g. attrition.
- `persona` (string): Candidate stories for one persona (registry prefixes and aliases are normalized).
- `problem` (string): Filter by problem tag, e.g. regretted-attrition.
- `slug` (string): Fetch a single story track.

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `note` (string)
- `stories` (array)

### `get_scene_templates` (~207 tokens)

Falsifiable scene templates — one claim plus what would make it false

Falsifiable scene templates — one claim plus what would make it false. The cards a story is told with. Each declares truth conditions the data can falsify, so a claim survives on evidence rather than assertion. Persona relevance is derived from focus (a stated heuristic). Drafts excluded unless ?status=all.

Input parameters:

- `archetype` (string): Archetype, e.g. trend, where, flow, driver.
- `focus` (string): Spine focus, e.g. regretted-loss, compensation, cross.
- `form` (string): Canonical form the scene presents as, e.g. rising.
- `id` (string): Fetch a single scene template.
- `persona` (string): Scenes relevant to one persona.
- `shape` (string): Data shape, e.g. series, groups, funnel.
- `status` (string): published (default) | all.
- `tier` (string): 1 descriptive | 2 model-bound | 3 decision/value.

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `note` (string)
- `scenes` (array)

### `get_canonical_forms` (~92 tokens)

The canonical form vocabulary — the structural primitive

The canonical form vocabulary — the structural primitive. 7 data shapes and the 33 canonical forms they resolve to. The form is why one engine reads compensation, attrition, funnels and survey data without a per-domain rewrite: the domain is in the metric tag, the structure is here. 'oftenMeans' is a labelled heuristic, never a conclusion.

Input parameters:

- `shape` (string): Filter to one shape.

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `forms` (array)
- `note` (string)
- `shapes` (array)

### `get_claim_warrant` (~212 tokens)

How many works discuss a claim — discourse volume, with the works named

How many works discuss a claim — discourse volume, with the works named. For a construct pair mined from the book corpus: how many distinct works discuss the link, and which ones, with each work's stated rationale. ⚠ This is DISCOURSE, not evidence — book frequency is confounded by publication incentives, fashion and citation cascades, so it is reported as 'discussed in N works' and never as corroboration, confidence, or a score. Single-work claims are returned, labelled as such; corroboration is not a gate. No query returns corpus-level stats including a counting discrepancy we state openly.

Input parameters:

- `construct` (string): Every pair the corpus links this construct to, most-discussed first.
- `focus` (string): Discourse volume for one focus area.
- `from` (string): Source construct, e.g. employee_engagement. Use with `to`.
- `to` (string): Target construct, e.g. employee_turnover. Use with `from`.

Output parameters:

- `caveat` (string)
- `citationCoverage` (object)
- `citationNote` (string)
- `contract` (string)
- `count` (number)
- `focusSalience` (array)
- `found` (boolean)
- `label` (string)
- `pairs` (array)
- `query` (object)
- `salience`
- `stats` (object)
- `statsNote` (string)
- `warrant`

### `get_library_ids` (~137 tokens)

Library id export — stable ids for the works homed here

Library id export — stable ids for the works homed here. Batch export of library_id rows (id, title, author, year, property tags) for the works that home on peopleanalyst.com. Ids are content-addressed (SHA-256 of normalized title|authors|year) and stable across repos, so a consumer can join to this catalog without string matching. Scoped to works homed here — titles whose canonical home is another property are excluded, matching /library.

Input parameters:

- `limit` (string): Cap the number of rows returned.
- `tag` (string): Filter by property tag, e.g. principia.

Output parameters:

- `count` (number)
- `excluded_foreign_home` (number)
- `generated_at` (string)
- `id_format` (string)
- `inventory_total` (number)
- `issuer` (string)
- `records` (array)
- `scope` (string)
- `spec` (string)

### `run_segmentation` (~105 tokens)

Behavioral segmentation, role discovery, and exemplar matching

Behavioral segmentation, role discovery, and exemplar matching. Deterministic segmentation over caller-supplied numeric vectors: cluster subjects, discover roles from behaviour + relationship edges, detect emergent roles, or match against exemplars. Structured non-biometric signals only — no audio, video, or affect inference. The caller supplies all data; nothing is retained. Capped at 5,000 rows per request.

Input parameters:

- `body` (object, required): JSON request body accepted by the underlying endpoint.

Output parameters:

- `assignments` (array)
- `boundary` (object)
- `dimensions_ignored` (array)
- `dimensions_used` (array)
- `features_ignored` (array)
- `features_used` (array)
- `k` (number)
- `matches` (array)
- `provenance` (object)
- `roles` (array)
- `segmentation` (object)
- `segments` (array)
- `silhouette` (number)

### `plan_next_data_ask` (~171 tokens)

What data to ask for next, and what it would rule out

What data to ask for next, and what it would rule out. The acquisition planner. Given which data-stories are still candidates, returns the single most efficient next question, the full ranked list, and the minimum set of asks that makes every live story testable — split into what can be sent today versus what needs legal review. Ranked by information-per-friction: how evenly an answer splits the live hypothesis set (computed by entropy from the discrimination matrix, never hand-asserted) divided by a cost in which GOVERNANCE outweighs effort. Absent priors all live stories weigh equally, so results reflect structure, not likelihood. GET accepts ?live=, ?have=, ?lack= as comma lists.

Input parameters:

- `body` (object, required): JSON request body accepted by the underlying endpoint.

Output parameters:

- `caveat` (string)
- `contract` (string)
- `live` (array)
- `nextAsk`
- `plan` (object)
- `ranked` (array)
- `valueOfInformation` (object)

### `get_insight_cards` (~84 tokens)

A pitch rendered as player-ready InsightCards

A pitch rendered as player-ready InsightCards. Serves a named pitch as an ordered InsightCard[] (the cross-site insight-player contract). ?pitch selects the pitch; ?awareness optionally reshapes the sequence for the buyer's awareness state.

Input parameters:

- `awareness` (string): Awareness state to reshape the sequence.
- `pitch` (string, required): The pitch slug to render.

Output parameters:

- `cards` (array)
- `contract` (string)
- `count` (number)
- `pitches` (array)
- `source` (string)

### `get_situations` (~71 tokens)

Demonstration scenarios (discovered → diagnosed → solved)

Demonstration scenarios (discovered → diagnosed → solved). The proof layer paired with brandscripts: concrete situations a product resolves. ?product filters; ?status opts into drafts.

Input parameters:

- `product` (string): Filter to one product.
- `status` (string): live (default) | draft | all.

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `situations` (array)

### `get_tools` (~163 tokens)

The PeopleAnalyst tool catalog (each answer reports its grounding)

The PeopleAnalyst tool catalog (each answer reports its grounding). Machine-readable catalog of acting tools — name, category, what it does, inputs/outputs, concrete use cases, the profile URL, and how to run it (auth-gated REST + MCP). Each Bicycle answer reports provenance.grounding. Production currently reports grounded: false (HO-2512); approach strings describe the designed product, not the last production run. Discovery is open (find + cite the tools); execution is API-key gated. ?category filters by family; ?slug returns one tool.

Input parameters:

- `category` (string): Filter by family (e.g. Marketing, Startup & strategy, Software engineering).
- `slug` (string): Return a single tool by slug (e.g. positioning).

Output parameters:

- `contract` (string)
- `count` (number)
- `filter` (object)
- `grounding` (object)
- `reliability` (object)
- `tools` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst#diagnostics

## Score history

- 2026-09-22: 80
- 2026-09-21: 80
- 2026-09-20: 79
- 2026-09-19: 79
- 2026-09-18: 78
- 2026-09-17: 78
- 2026-09-16: 78
- 2026-09-15: 77
- 2026-09-14: 77
- 2026-09-13: 76
- 2026-09-12: 76
- 2026-09-11: 75
- 2026-09-10: 75
- 2026-09-09: 74
- 2026-09-08: 74

## Common questions

### What is the com.peopleanalyst/discovery MCP server?

com.peopleanalyst/discovery is an MCP server listed in the public MCP registry as com.peopleanalyst/discovery. PeopleAnalyst's free people-analytics feeds: answers, tools, evidence, story and scene catalogs. This page covers its hosted endpoint (https://peopleanalyst.com/mcp).

### Is the com.peopleanalyst/discovery MCP server safe to use?

com.peopleanalyst/discovery scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the com.peopleanalyst/discovery MCP server expose?

com.peopleanalyst/discovery exposes 17 tools: list_peopleanalyst_feeds, get_membership_offer, list_answers, get_answer, get_product_description, and 12 more. Their descriptions and schemas cost roughly 1,955 tokens of context every time the server is loaded.

### Does the com.peopleanalyst/discovery MCP server require authentication?

No. We connected to com.peopleanalyst/discovery without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the com.peopleanalyst/discovery MCP server still maintained?

com.peopleanalyst/discovery is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://peopleanalyst.com/mcp
- Repository: https://github.com/people-analyst/peopleanalyst-site
- Website: https://peopleanalyst.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst.json
- HTML version of this page: https://verifymcp.io/servers/com-peopleanalyst-discovery/peopleanalyst
