# Digitaltableteur

> Design system contracts, docs search, and usage validation for @digitaltableteur components.

- name: com.digitaltableteur/mcp
- version: 2.0.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 94/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.digitaltableteur%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.digitaltableteur%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "digitaltableteur": {
      "type": "http",
      "url": "https://www.digitaltableteur.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-25d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (strong)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_expertise_stacks (destructiveHint, idempotentHint, openWorldHint); list_services (destructiveHint, idempotentHint, openWorldHint); list_audiences (destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 913 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 4 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 913 tokens to load them all
- tool set hash: 796b4440685bcfa9903ccc7b0c80160c
- tools last changed: 2026-10-17T07:31:58.912Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.digitaltableteur/mcp.svg)](https://protogrid.dev/servers/com.digitaltableteur/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `validate_component_usage` changed (description)
  - before: Check proposed @dt JSX against the component contracts: prop relationships, forbidden prop combinations, deprecated props, and raw-UI replacements. Pass a TSX snippet, or a component name with props.
  - after: Check proposed @dt JSX against the component contracts: prop relationships, forbidden prop combinations, deprecated props and raw-UI replacements. Pass a TSX snippet or a component name with props.
- 2026-10-17 `get` changed (description)
  - before: Get the full docs-registry entry for one component: usage guidance, props, example story source, and theming tokens.
  - after: Get the full docs-registry entry for one component: usage guidance, props, example story source and theming tokens.
- 2026-10-17 `search` changed (description, inputSchema)
  - before: Search the @dt design-system docs registry by name, keyword, or UI intent. Returns budgeted briefs (import line, key props, related components) with a hint for the follow-up get call.
  - after: Search the @dt design-system docs registry by name, keyword or UI intent. Returns budgeted briefs (import line, key props, related components) with a hint for the follow-up get call.
- 2026-10-17 `list_case_studies` changed (description)
  - before: List Digitaltableteur portfolio case studies with slug, title, category, tags, and URLs.
  - after: List Digitaltableteur portfolio case studies with slug, title, category, tags and URLs.

Full history: https://api.protogrid.dev/v1/servers/com.digitaltableteur%2Fmcp/changes

## Remotes

- https://www.digitaltableteur.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `get`: Get the full docs-registry entry for one component: usage guidance, props, example story source and theming tokens.
- `get_case_study`: Get one case study by URL slug (e.g. dsharp-design-system, helsinki-design-system).
- `get_consulting_fit`: Map a visitor problem statement to the best-matching consulting service.
- `get_hourly_rate`: Get typical and range hourly consulting rates in EUR (€90/h typical, €90–150/h depending on scope).
- `get_open_hours`: Get Digitaltableteur office hours in Europe/Helsinki timezone.
- `list_audiences`: List client audiences Digitaltableteur serves (startups, scaleups, enterprise, etc.).
- `list_case_studies`: List Digitaltableteur portfolio case studies with slug, title, category, tags and URLs.
- `list_expertise_stacks`: List technology and practice areas (React, Next.js, Storybook, Figma, TypeScript, etc.).
- `list_pricing_packages`: List fixed consulting packages with EUR price ranges and duration (preferred over hourly for defined outcomes).
- `list_services`: List core consulting services (design system audit, component library, tokens, AI DesignOps).
- `search`: Search the @dt design-system docs registry by name, keyword or UI intent. Returns budgeted briefs (import line, key props, related components) with a hint for the follow-up get call.
- `validate_component_usage`: Check proposed @dt JSX against the component contracts: prop relationships, forbidden prop combinations, deprecated props and raw-UI replacements. Pass a TSX snippet or a component name with props.
