# OODS Foundry (remote · oods-foundry.com)

OODS Foundry is an object-oriented design system that extends the one you already have.

- Trust score: 79/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-06

## Components

- remote · `oods-foundry.com`: 79/100 (this document), [markdown](https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2.md), [page](https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2)
- npm · `@oods/foundry`: 79/100, [markdown](https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry.md), [page](https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry)

## Channel facts

- Endpoint: `https://oods-foundry.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.11.3`

## 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-11-06.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS is enforced; there's no plaintext access path.
  - 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**: 55/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2338 tokens (~259/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 83/100
  - Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 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 OODS Foundry MCP server?

OODS Foundry is a hosted endpoint at https://oods-foundry.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-oods-foundry-foundry 'https://oods-foundry.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-oods-foundry-foundry": {
      "url": "https://oods-foundry.com/mcp"
    }
  }
}
```

### VS Code

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

### Codex

```toml
[mcp_servers.com-oods-foundry-foundry]
url = "https://oods-foundry.com/mcp"
```

### opencode

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

### OpenClaw

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

### Hermes

```yaml
mcp_servers:
  com-oods-foundry-foundry:
    url: "https://oods-foundry.com/mcp"
```

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "com-oods-foundry-foundry": {
      "type": "http",
      "url": "https://oods-foundry.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-11-06 (score 79, +2)

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

### 2026-11-05 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67.

### 2026-11-04 (score 76, −1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 63.

### 2026-11-03 (score 77, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 0.11.2 → 0.11.3

### 2026-11-01 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60.

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

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53.

### 2026-10-28 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47.

### 2026-10-25 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37.

## MCP tools (9)

### `health_check` (~136 tokens)

Check Health

Read the running service status, pinned version, registry counts, built brands, themes, token scopes and retained proof summaries. Uptime and latency are current process measurements; host paths are omitted. includeChangelog adds the DSL changelog, and sinceVersion keeps entries after that version. catalog_list and object_registry read the definitions behind the counts.

Input parameters:

- `includeChangelog` (boolean): When true, include DSL version changelog in the response.
- `reproduce` (boolean): Include the command and calls for reproducing this result.
- `sinceVersion` (string): When provided with includeChangelog, only return changelog entries since this version.

### `catalog_list` (~360 tokens)

List Components

Read components a page at a time. category, trait, context and status filter the list; status describes the HTML renderer. detail is brief by default, or full when filtering; summary includes tags, contexts, regions and traits. Brief and summary allow up to 200 entries; full clamps pageSize to 10 and reports the adjustment. totalCount, hasMore and nextPage describe pagination. object_registry reads objects instead.

Input parameters:

- `category` (string): Filter components by category (e.g., 'core', 'lifecycle', 'visual')
- `context` (string): Filter components by context (e.g., 'detail', 'list')
- `detail` (string): Defaults to brief unfiltered, full with filters. Both defaults are paged (filtered: 10 entries). summary adds tags, contexts, regions and traits; full includes evidence. Explicit detail without pagin…
- `includeInternal` (boolean): Also list OODS Foundry's internal (non-business) objects in registry.objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them.
- `page` (integer): 1-based page index for pagination.
- `pageSize` (integer): Components per page. Filtered calls without detail default to 10; nextPage gives the next call.
- `reproduce` (boolean): Include the command and calls for reproducing this result.
- `status` (string): Filter by legacy static-HTML status only: 'stable' = mapped HTML renderer; 'planned' = HTML fallback. Consult productReality.surfaces for React/Vue, generated-consumer and maturity evidence.
- `trait` (string): Filter components by trait (e.g., 'Editable', 'Searchable')

### `object_registry` (~265 tokens)

Read Object Registry

Read objects from the pinned registry. action list returns names, traits and field counts; domain, trait and maturity filter them, and includeInternal adds internal objects. action show requires name and returns its composed definition; context narrows view extensions. registry_snapshot provides an overview; design_preview looks up recorded screens.

Input parameters:

- `action` (string, required): List objects or show one composed definition.
- `context` (string): Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline')
- `domain` (string): Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing')
- `includeInternal` (boolean): Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them.
- `maturity` (string): Filter by metadata maturity level
- `name` (string): Object name to look up (e.g. 'User', 'Product', 'Invoice')
- `reproduce` (boolean): Include the command and calls for reproducing this result.
- `trait` (string): Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful')

### `registry_snapshot` (~164 tokens)

Snapshot Registry

Read the registry summary: active objects and traits, loaded names, loader issues, etag and generatedAt. detail full includes definitions; names narrows them. includeInternal adds internal objects. Replies larger than 100,000 characters are refused with their size. object_registry reads one composed object; catalog_list reads components.

Input parameters:

- `detail` (string): summary (default), or full definitions, best with names.
- `includeInternal` (boolean): Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them.
- `names` (array): Exact trait and object names; misses go in notFound.
- `reproduce` (boolean): Include the command and calls for reproducing this result.

### `structured_data_fetch` (~316 tokens)

Fetch Structured Data

Read the tokens or manifest dataset. Full data is the default; detail summary returns section counts and the first page call. page reads lossless JSON Pointer entries; pageSize defaults to 10, at most 100, also bounded by size. meta.next continues and meta.full requests full data. includePayload false returns metadata; listVersions lists dates, version selects one, and ifNoneMatch returns matched true without unchanged payload. catalog_list reads components.

Input parameters:

- `dataset` (string, required): Registry dataset to return.
- `detail` (string): Dataset only. summary returns section counts and the call for page 1; full (default) preserves the dataset.
- `ifNoneMatch` (string): Return matched=true without payload when the ETag matches.
- `includePayload` (boolean): When false, omit payload even if no ETag match occurs.
- `listVersions` (boolean): When true, return available version dates instead of payload.
- `page` (integer): Dataset only: read a 1-based page of lossless JSON Pointer entries, each reply below 100,000 characters. Omit for full data.
- `pageSize` (integer): Dataset entries per page, default 10, also bounded by serialized size. Reply meta gives next and full calls.
- `reproduce` (boolean): Include the command and calls for reproducing this result.
- `version` (string): Request a specific date-stamped version (e.g., '2026-02-24'). Omit for latest. Applies to dataset mode only.

### `viz_render` (~653 tokens)

Render Chart

Draw and certify a chart from inline data. Provide chartType and encodings with rows, a pattern with its own data, or an intent to recommend a tabular chart. Brand and theme apply to drawing and certification. The compact reply contains hashes, warnings and certification; output.svg adds the SVG drawing, includeA11y adds the table and narrative, and includeNormalizedSpec adds its specification. Request SVG when a displayed chart is needed. Up to 500 rows; optional outputs still share the 100,000-character reply bound. artifact_certify returns the same drawing and checks for an input in chart.

Input parameters:

- `a11yEquivalence` (boolean): Check Vega-Lite accessible equivalents (default true). Errors stop rendering; warnings are returned. ECharts-primary scaffolds are not checked here.
- `brand` (string): Token brand for drawing and certification.
- `chartType` (string): Chart family; Cartesian types need rows and encodings, others their named input. Omit to suggest from rows.
- `chord` (object): Chord input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names; each directed pair must be unique.
- `description` (string): Optional override for the synthesized accessibility description. When omitted, a non-empty description is generated from the encodings.
- `encodings` (object): Cartesian bindings: each needs field; optional type, aggregate, title, format (d3-format), currency (ISO 4217).
- `geo` (object): Inline geojson or topojson with topoObjectName, rows, join and valueField; optional point or flow fields. tool_schema gives the full contract.
- `hierarchy` (object): Treemap/sunburst: {type:"nested",data:{name,value,children}} or {type:"adjacency_list",data:[{id,parentId,value}]}. See full schema.
- `id` (string): Optional stable identifier for the produced spec.
- `intent` (object): Structured request: goal, measures and dimensions, with optional chartFamily; uses rows instead of explicit chartType and encodings.
- `name` (string): Optional human-friendly chart title.
- `network` (object): Force graph: nodes [{id,group}] and links [{source,target,value}], at most 250 nodes.
- `opacity` (number): Constant mark opacity for Cartesian charts only; omission keeps renderer defaults.
- `output` (object): Optional outputs; default reply has hashes and certification.
- `pattern` (string): Exact registered pattern identity; preserves source data and presentation. Cannot combine with chartType, data, intent or identity/presentation overrides.
- `reproduce` (boolean): Include the command and calls for reproducing this result.
- `rows` (array): Inline flat data rows.
- `sankey` (object): Sankey input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names. Use chartType:"sankey".
- `strictFields` (boolean): Warn about unresolved fields and unmatched map joins (OODS-V131/V134). Default false preserves existing behavior.
- `theme` (string): Colour theme for drawing and certification.

### `artifact_certify` (~112 tokens)

Certify Chart

Draw and certify a chart from the input in chart, using matching data, brand and theme. Returns the same result as viz_render: hashes, warnings and the certification verdict, including accessibility equivalence, determinism, contrast and accuracy. Optional chart.output fields add SVG, the accessible table and narrative, or the normalized specification. A verdict can be conformant false; each pillar explains its result.

Input parameters:

- `chart` (object, required)
- `reproduce` (boolean): Include the command and calls for reproducing this result.

### `design_preview` (~122 tokens)

Look Up Recorded Screen

Look up a recorded screen by object, context and framework. Returns its running screen URL, content hash, brand and theme. No new screen is generated. object_registry reads the definition behind the screen. Set reproduce true when the command and calls used to generate it are requested.

Input parameters:

- `context` (string): The context the screen was composed for.
- `framework` (string): The framework of the generated app.
- `object` (string, required): An object with recorded screens at this version.
- `reproduce` (boolean): Include the command and calls for reproducing this result.

### `tool_schema` (~113 tokens)

Read Tool Schema

Read a shipped tool schema by name and kind (input or output). Returns its JSON Schema, package-relative file, recorded file hash and source URL. tools/list describes this endpoint’s narrower accepted inputs; the full schema may describe operations outside the hosted tools.

Input parameters:

- `kind` (string): The tool's input schema or its output schema.
- `name` (string, required): Any OODS Foundry tool at this version, local-only tools included.
- `reproduce` (boolean): Include the command and calls for reproducing this result.

## Diagnostics

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

## Score history

- 2026-11-06: 79
- 2026-11-05: 77
- 2026-11-04: 76
- 2026-11-03: 77
- 2026-11-02: 76
- 2026-11-01: 76
- 2026-10-31: 75
- 2026-10-30: 75
- 2026-10-29: 74
- 2026-10-28: 74
- 2026-10-27: 73
- 2026-10-26: 73
- 2026-10-25: 73
- 2026-10-24: 72
- 2026-10-23: 72
- 2026-10-22: 71
- 2026-10-21: 71
- 2026-10-20: 70
- 2026-10-19: 70
- 2026-10-18: 69
- 2026-10-17: 69
- 2026-10-16: 68
- 2026-10-15: 68
- 2026-10-14: 67
- 2026-10-13: 67
- 2026-10-12: 67
- 2026-10-06: 59
- 2026-10-04: 58

## Common questions

### What is the OODS Foundry MCP server?

OODS Foundry is an MCP server listed in the public MCP registry as com.oods-foundry/foundry. OODS Foundry is an object-oriented design system that extends the one you already have. This page covers its hosted endpoint (https://oods-foundry.com/mcp).

### Is the OODS Foundry MCP server safe to use?

OODS Foundry scores 79 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 OODS Foundry MCP server expose?

OODS Foundry exposes 9 tools: health_check, catalog_list, object_registry, registry_snapshot, structured_data_fetch, and 4 more. Their descriptions and schemas cost roughly 2,241 tokens of context every time the server is loaded.

### Does the OODS Foundry MCP server require authentication?

No. We connected to OODS Foundry without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the OODS Foundry MCP server still maintained?

OODS Foundry is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the OODS Foundry MCP server?

VerifyMCP ran 13 checks on OODS Foundry, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://oods-foundry.com/mcp
- Repository: https://github.com/kneelinghorse/OODS-Foundry
- Website: https://oods-foundry.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2.json
- HTML version of this page: https://verifymcp.io/servers/com-oods-foundry-foundry/oods-foundry-2
