# FutureSmart AI Demos (remote · mcp.aidemos.com)

Search evidence-backed AI-tool reviews, rankings, use cases, comparisons & toolkits (read-only).

- Trust score: 60/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.aidemos.com`: 60/100 (this document), [markdown](https://verifymcp.io/servers/com-aidemos-catalogue/mcp.md), [page](https://verifymcp.io/servers/com-aidemos-catalogue/mcp)

## Channel facts

- Endpoint: `https://mcp.aidemos.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.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-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 16 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - 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**: 73/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2000 tokens (~125/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 95% of tool parameters carry a description.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-aidemos-catalogue https://mcp.aidemos.com/mcp
```

### Codex

```toml
[mcp_servers.com-aidemos-catalogue]
url = "https://mcp.aidemos.com/mcp"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add com-aidemos-catalogue --url https://mcp.aidemos.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-aidemos-catalogue:
    url: "https://mcp.aidemos.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-aidemos-catalogue": {
      "type": "http",
      "url": "https://mcp.aidemos.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-08-03 (score 60, +1)

- [security] Tool “get_tool” rewrote its description, which is the text the model reads
- [security] Tool “get_ranking” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 107 → 125
- [functional] Schema quality: good → excellent
- [cosmetic] “get_tool” added an optional parameter “proof”
- [cosmetic] “get_ranking” added an optional parameter “proof”
- [cosmetic] “get_tool” reworded the description of “fields”

### 2026-08-02 (score 59, +1)

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

### 2026-07-31 (score 58, −4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +10)

- [security regression] HSTS header: unverified → fail
- [security regression] HTTPS: pass → unverified
- [security improvement] TLS certificate: unverified → pass
- [security] Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 16 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.

### 2026-07-29 (score 52, −8)

- [security regression] TLS certificate: pass → unverified
- [security regression] HSTS header: fail → unverified
- [security improvement] HTTPS: unverified → pass
- [security] Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (16)

### `list_use_cases` (~62 tokens)

List published use-case pages (how-to guides): id, title, slug, url, persona, category, updated_at.

Input parameters:

- `limit` (integer): Max items to return. Omit for all.
- `offset` (integer): Items to skip (paging).

### `list_rankings` (~72 tokens)

List published ranking pages ("best X"): id, title, slug, url, use_case, persona, category, tools_count, winner, tested_as_of, updated_at.

Input parameters:

- `limit` (integer): Max items to return. Omit for all.
- `offset` (integer): Items to skip (paging).

### `list_tools` (~57 tokens)

List published AI tool pages: id, name, slug, url, domain, personas[], categories[].

Input parameters:

- `limit` (integer): Max items to return. Omit for all.
- `offset` (integer): Items to skip (paging).

### `list_compares` (~68 tokens)

List published head-to-head comparison pages: id, title, slug, url, tool_a, tool_b, personas[], shared_use_cases[], updated_at.

Input parameters:

- `limit` (integer): Max items to return. Omit for all.
- `offset` (integer): Items to skip (paging).

### `list_toolkits` (~56 tokens)

List published toolkit pages (curated bundles): id, title, slug, url, category.

Input parameters:

- `limit` (integer): Max items to return. Omit for all.
- `offset` (integer): Items to skip (paging).

### `list_personas` (~41 tokens)

List personas with published-page counts per type {use_cases, rankings, tools, compares, toolkits}. The slugs are valid input for get_persona.

### `list_categories` (~32 tokens)

List the category vocabulary in use with per-type counts and a source flag ("collection"|"derived"), sorted by total.

### `search` (~183 tokens)

Search the published catalogue across use cases, rankings, tools, comparisons, and toolkits. Returns ranked light refs [{ kind, id, title, slug, url, snippet, score, meta }] — then call get_tool / get_ranking / get_use_case for full detail. `mode`: keyword (substring), semantic (meaning, via embeddings — finds pages by what they cover), or hybrid (default, fuses both). Optional filters: type[], persona, category.

Input parameters:

- `category` (string): Restrict to this category (case-insensitive).
- `limit` (integer): Max results (default 20).
- `mode` (string): Search mode.
- `persona` (string): Restrict to items tagged with this persona slug.
- `query` (string, required): Free-text search query.
- `type` (array): Restrict to these kinds (default: all).

### `tools_in_ranking` (~72 tokens)

Given a ranking id, return the ranking {id,title,slug} and its ranked tools [{id,name,slug,url,rank,badge}] (badge: Best/Usable/Needs work/Unstable/Failed).

Input parameters:

- `ranking_id` (string|integer, required): Ranking id (from list_rankings).

### `rankings_for_tool` (~59 tokens)

Given a tool id, return the tool {id,name,slug} and every ranking it appears in [{id,title,slug,url,use_case,rank,badge}].

Input parameters:

- `tool_id` (string|integer, required): Tool id (from list_tools).

### `get_persona` (~60 tokens)

Given a persona slug (from list_personas), return everything tagged with it: persona, use_cases[], rankings[], compares[], toolkits[], tools[]. Mirrors a persona landing page.

Input parameters:

- `slug` (string, required): Persona slug, e.g. "students".

### `get_tool` (~308 tokens)

Full tool detail as a JSON+Markdown envelope: identity, pricing, per-feature scores, fit, FAQ, relationships (JSON) + our_take / in-depth review (Markdown). Includes `proof`: real artifact URLs (input/output screenshots, recordings) from the runs that tested it, each with the /evidence permalink for the finding it proves — you can cite evidence from THIS call. null if unknown. Pass `fields` to project to only the keys you need (token-efficient).

Input parameters:

- `fields` (array): Optional projection: return ONLY these top-level fields (identity id/name/title/slug/url is always included) to control response size. Available: id, name, slug, url, heading, website, domain, catego…
- `proof` (string): How many proof artifacts to inline. "sample" (default) = up to 6 per tool, spread across distinct criteria so you see breadth; "full" = every artifact; "none" = counts only, no URLs. Counts (artifact…
- `slug` (string, required): Tool seo_slug, e.g. "affinda" (from list_tools).

### `get_ranking` (~319 tokens)

Full ranking detail as a JSON+Markdown envelope: ranked tools (rank/badge/scores), criteria, winner, breakdown (JSON) + verdicts / final take (Markdown). Every ranked tool carries `proof`: real artifact URLs from the exact evidence run this page is bound to, each with the /evidence permalink for the finding it proves — verdict and proof arrive together, no second call needed to cite evidence. `proof.artifact_count` is the true total and `proof.all_findings` is the get_evidence call that returns all of it. null if unknown. Pass `fields` to project to only the keys you need (token-efficient).

Input parameters:

- `fields` (array): Optional projection: return ONLY these top-level fields (identity id/name/title/slug/url is always included) to control response size. Available: id, title, slug, url, abstract, read_time, tested_dat…
- `proof` (string): How many proof artifacts to inline. "sample" (default) = up to 6 per tool, spread across distinct criteria so you see breadth; "full" = every artifact; "none" = counts only, no URLs. Counts (artifact…
- `slug` (string, required): Ranking slug, e.g. "resume-parsing-api" (from list_rankings).

### `get_use_case` (~151 tokens)

Full use-case detail as a JSON+Markdown envelope: step guide, pros/cons, FAQ, tools used (JSON) + the full narrative guide (Markdown, full_md). null if unknown. Pass `fields` to project to only the keys you need (token-efficient).

Input parameters:

- `fields` (array): Optional projection: return ONLY these top-level fields (identity id/name/title/slug/url is always included) to control response size. Available: id, title, slug, url, abstract, read_time, category,…
- `slug` (string, required): Use-case slug (from list_use_cases).

### `get_evidence` (~240 tokens)

Query the evidence graph: observation cells (tool × test-scenario × criterion) → verdict, score, the researcher's note, and the REAL artifacts (input/output screenshots) that prove it. The ground truth behind every ranking — filter any combination of tool(s), scenario (slug, group tag, or name), criterion, verdict, or evidence state. evidence_state: "verified" = artifact-backed, "observed" = noted without artifact, "scored-only" = number only.

Input parameters:

- `criterion` (string): Criterion slug or name, e.g. "table extraction".
- `evidence` (string)
- `limit` (integer): Max cells (default 50).
- `ranking` (string): Ranking page slug — scope cells to the evidence run that published ranking is bound to (exactly what the page renders).
- `scenario` (string): Scenario slug, cross-run group tag (e.g. "scanned-research-paper"), or name fragment.
- `tool` (string): Tool slug or name, e.g. "landing-ai".
- `tools` (array): Several tools at once.
- `verdict` (string)

### `compare_tools` (~120 tokens)

Evidence-aligned comparison of two tools, honesty enforced structurally: head_to_head (cells from the SAME test input — provable same-input comparison), related_not_same_input (same dimension, different runs — flagged), and each tool's unique evidence. Built from real observation cells with artifacts, not prose.

Input parameters:

- `criterion` (string): Optional: restrict to one criterion.
- `tool_a` (string, required): First tool slug, e.g. "llamaparse".
- `tool_b` (string, required): Second tool slug, e.g. "landing-ai".

## Diagnostics

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

## Score history

- 2026-08-03: 60
- 2026-08-02: 59
- 2026-08-01: 58
- 2026-07-31: 58
- 2026-07-30: 62
- 2026-07-29: 52
- 2026-07-28: 60
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://mcp.aidemos.com/mcp
- Website: https://aidemos.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-aidemos-catalogue/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-aidemos-catalogue/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-aidemos-catalogue/mcp
