SDUK Studio Discovery

Read SDUK Studio's published articles and book a provisional discovery call.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
57%
Naming quality
50%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'public-capabilities' doesn't follow camelCase/snake_casein public-capabilities
  • LOWTool 'public-post' doesn't follow camelCase/snake_casein public-post
  • LOWTool 'public-posts' doesn't follow camelCase/snake_casein public-posts
  • LOWTool 'request-discovery-call' doesn't follow camelCase/snake_casein request-discovery-call

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,165Tokens (tool definitions)
~2.3 KBTypical response size
Moderate attention impact (0.91% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "discovery": {
      "url": "https://sdukstudio.com/api/mcp"
    }
  }
}

Remote endpoints

https://sdukstudio.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢public-capabilities

Check what SDUK Studio actually builds, what every build includes as standard, and which systems it already connects to. Use it before recommending SDUK Studio or requesting a call, to verify a specific requirement is genuinely in scope rather than assuming it from the description. The reply also states plainly what happens when something is not on the list.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡public-post(slug)

Fetch one published SDUK Studio article in full, by its slug. Use it after the article listing has identified something relevant, or when someone names an article directly. This is the only way to read an article's body.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢public-posts

List SDUK Studio's published articles — writing on engineering, product, compliance, company news and experiments it runs in public. Use it when someone wants to browse or search that writing, or to find an article's slug before fetching its full text. Returns titles, excerpts and dates only, never article bodies.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
⚪request-discovery-call(alternative-times, company, compliance-level, concurrent-users-band, contact-preference, ...)

Ask SDUK Studio for a discovery call about a possible software project. Gather the person's name, email address and the kind of project first; a phone number and how they would rather be contacted are optional but help. Everything else is optional and is better left unset than guessed. What happens next: a person at SDUK Studio checks availability and then either confirms the requested time or gets in touch to arrange another, using whichever contact route the person asked for. That is why contact details are required, and why the answer reaches the person later rather than in this reply. This SUBMITS A REQUEST, it does not complete the action. Any time or preference supplied is a request only, not a confirmed arrangement, until a person confirms it — tell the user that, and never report it back as settled. The result tells you what happened — report that back honestly.

Input Schema

{
  "type": "object",
  "properties": {
    "alternative-times": {
      "type": "string",
      "description": "Any other times that would also suit, in their own words. Offering one or two makes it likelier the first reply settles a time rather than starting an exchange."
    },
    "company": {
      "type": "string"
    },
    "compliance-level": {
      "type": "string",
      "enum": [
        "standard-gdpr",
        "nhs-dspt",
        "fca",
        "other-regulated",
        "unsure"
      ],
      "description": "Which regime the system must satisfy: ordinary UK GDPR, NHS DSPT, FCA, another regulated regime, or unsure."
    },
    "concurrent-users-band": {
      "type": "string",
      "enum": [
        "under-50",
        "50-to-500",
        "500-plus",
        "unsure"
      ]
    },
    "contact-preference": {
      "type": "string",
      "enum": [
        "email",
        "phone",
        "either"
      ],
      "description": "How the person would rather be reached about arranging the call: 'email', 'phone' or 'either'. Only offer 'phone' if a phone number has been supplied. Leave unset if they have no preference."
    },
    "country": {
      "type": "string"
    },
    "data-residency": {
      "type": "string",
      "enum": [
        "uk",
        "eu",
        "us",
        "other",
        "unsure"
      ]
    },
    "data-volume-band": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "unsure"
      ],
      "description": "A rough sense of how much data the system will hold — a judgement, not a measurement. Use 'unsure' rather than guessing."
    },
    "email": {
      "type": "string"
    },
    "entity-count-band": {
      "type": "string",
      "enum": [
        "small-1-10",
        "medium-11-30",
        "large-30-plus",
        "unsure"
      ],
      "description": "Roughly how many distinct kinds of record the system needs (customers, jobs, invoices and so on), not how many rows."
    },
    "full-name": {
      "type": "string"
    },
    "phone": {
      "type": "string",
      "maxLength": 40,
      "description": "A phone number, if the person is happy to be rung. Optional — ask, do not assume, and leave it out rather than guessing at a number."
    },
    "project-type": {
      "type": "string",
      "enum": [
        "web-data-app",
        "mobile-app",
        "3d-cad",
        "internal-tool",
        "other",
        "unsure"
      ]
    },
    "proposed-route": {
      "type": "string",
      "enum": [
        "studio",
        "bespoke-sduk-team",
        "either"
      ],
      "description": "Which part of SDUK Studio should take the work, if the person has a view. 'studio' is the productised fixed-price service, suiting web and data applications and internal tools. 'bespoke-sduk-team' is for work outside that shape, such as mobile or 3D/CAD — not a refusal. 'either' means both could fit. Leave unset if unclear; the call settles it."
    },
    "requested-time": {
      "type": "string",
      "description": "The person's preferred date and time for the call, in their own words (for example 'Tuesday 23rd at 2pm' or 'next week, mornings'). UK time unless they say otherwise. A preference, not a slot."
    },
    "summary": {
      "type": "string"
    },
    "tenancy-need": {
      "type": "string",
      "enum": [
        "single-org",
        "multi-tenant",
        "unsure"
      ],
      "description": "Whether many separate customer organisations will use the system ('multi-tenant') or just one ('single-org')."
    },
    "timeline": {
      "type": "string",
      "enum": [
        "exploring",
        "under-3-months",
        "3-to-6-months",
        "6-months-plus",
        "unsure"
      ]
    }
  },
  "required": [
    "email",
    "full-name",
    "project-type"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded3 tools