MCP Server

SDUK Studio Discovery

com.sdukstudio/discovery

What this MCP does

Lists and reads SDUK Studio articles, reports its capabilities, and submits provisional software-project discovery call requests.

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
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', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 200}}, '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
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', 'required': ['email', 'full-name', 'project-type'], 'properties': {'email': {'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.'}, 'company': {'type': 'string'}, 'country': {'type': 'string'}, 'summary': {'type': 'string'}, 'timeline': {'enum': ['exploring', 'under-3-months', '3-to-6-months', '6-months-plus', 'unsure'], 'type': 'string'}, 'full-name': {'type': 'string'}, 'project-type': {'enum': ['web-data-app', 'mobile-app', '3d-cad', 'internal-tool', 'other', 'unsure'], 'type': 'string'}, 'tenancy-need': {'enum': ['single-org', 'multi-tenant', 'unsure'], 'type': 'string', 'description': "Whether many separate customer organisations will use the system ('multi-tenant') or just one ('single-org')."}, 'data-residency': {'enum': ['uk', 'eu', 'us', 'other', 'unsure'], 'type': 'string'}, 'proposed-route': {'enum': ['studio', 'bespoke-sduk-team', 'either'], 'type': 'string', '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."}, 'compliance-level': {'enum': ['standard-gdpr', 'nhs-dspt', 'fca', 'other-regulated', 'unsure'], 'type': 'string', 'description': 'Which regime the system must satisfy: ordinary UK GDPR, NHS DSPT, FCA, another regulated regime, or unsure.'}, 'data-volume-band': {'enum': ['low', 'medium', 'high', 'unsure'], 'type': 'string', 'description': "A rough sense of how much data the system will hold — a judgement, not a measurement. Use 'unsure' rather than guessing."}, '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.'}, 'entity-count-band': {'enum': ['small-1-10', 'medium-11-30', 'large-30-plus', 'unsure'], 'type': 'string', 'description': 'Roughly how many distinct kinds of record the system needs (customers, jobs, invoices and so on), not how many rows.'}, 'contact-preference': {'enum': ['email', 'phone', 'either'], 'type': 'string', '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."}, 'concurrent-users-band': {'enum': ['under-50', '50-to-500', '500-plus', 'unsure'], 'type': 'string'}}, 'additionalProperties': False}
Removed
book-discovery-call
Sept. 23, 2026, 2:54 a.m.
Added
request-discovery-call
Sept. 23, 2026, 2:54 a.m.
Changed
public-posts
Sept. 23, 2026, 2:54 a.m.
Changed
public-post
Sept. 23, 2026, 2:54 a.m.
Added
public-capabilities
Sept. 23, 2026, 2:54 a.m.
Added
public-posts
Sept. 17, 2026, 12:37 p.m.
Added
public-post
Sept. 17, 2026, 12:37 p.m.
Added
book-discovery-call
Sept. 17, 2026, 12:37 p.m.