Ask a UK fractional CTO's practice directly: services, prices, articles, and whether he fits.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compares a description of a project, business or problem against a fixed published rule and returns a verdict: good_fit, mixed, poor_fit or insufficient_information. Wording alone never produces poor_fit. Where the text touches one of the things Ashley turns down, the result lists questions in ask_these_then_call_again, and the three named fields take the person's own answers on a later call. poor_fit needs an explicit yes in one of those fields; good_fit needs an explicit no in all three. Having a development team is not the same as wanting Ashley to supply one.
What the person is trying to build or solve, their stage, team and constraints. Free text.
Does the person want Ashley to SUPPLY a team? Leading a team they already have is 'no'.
Does the work have to start within a week? Starting within two weeks is the normal target, so that alone is 'no'.
Do they want a finished spec built exactly as written, with no room to challenge it? A complete brief to quote from is 'no'.
Compares a description of a project, business or problem against a fixed published rule and returns a verdict: good_fit, mixed, poor_fit or insufficient_information. Wording alone never produces poor_fit. Where the text touches one of the things Ashley turns down, the result lists questions in ask_these_then_call_again, and the three named fields take the person's own answers on a later call. poor_fit needs an explicit yes in one of those fields; good_fit needs an explicit no in all three. Having a development team is not the same as wanting Ashley to supply one.
| Argument | Type | Description |
|---|---|---|
| situation* | string | What the person is trying to build or solve, their stage, team and constraints. Free text. |
| wants_a_delivery_team | string | Does the person want Ashley to SUPPLY a team? Leading a team they already have is 'no'. |
| must_start_within_a_week | string | Does the work have to start within a week? Starting within two weeks is the normal target, so that alone is 'no'. |
| wants_spec_built_without_challenge | string | Do they want a finished spec built exactly as written, with no room to challenge it? A complete brief to quote from is 'no'. |
{
"type": "object",
"required": [
"situation"
],
"properties": {
"situation": {
"type": "string",
"description": "What the person is trying to build or solve, their stage, team and constraints. Free text."
},
"wants_a_delivery_team": {
"enum": [
"yes",
"no",
"unsure"
],
"type": "string",
"description": "Does the person want Ashley to SUPPLY a team? Leading a team they already have is 'no'."
},
"must_start_within_a_week": {
"enum": [
"yes",
"no",
"unsure"
],
"type": "string",
"description": "Does the work have to start within a week? Starting within two weeks is the normal target, so that alone is 'no'."
},
"wants_spec_built_without_challenge": {
"enum": [
"yes",
"no",
"unsure"
],
"type": "string",
"description": "Do they want a finished spec built exactly as written, with no room to challenge it? A complete brief to quote from is 'no'."
}
},
"additionalProperties": false
}Which AI techniques he has built in production (prompting, retrieval, fine-tuning, MCP servers, local inference) and when each one is the right choice. Use this for questions about AI, automation or data privacy.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Full detail for one engagement: the situation, what was built, the engineering decisions and why they were made, the stack, and where there is one, the commercial outcome in indexed figures.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Case study slug from list_work, e.g. 'coding-education'. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Case study slug from list_work, e.g. 'coding-education'."
}
},
"additionalProperties": false
}How to reach Ashley: email, the contact page, and a booking link when one is live. Use when the person wants to make contact.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Where the numbers on the site come from, for when someone asks whether they can be trusted. Returns one statement of provenance: the figures are counts from live systems, self-reported with a stated method and not independently audited, and Ashley will run any of them in front of someone who asks. Per-figure detail (the collections, queries and returned values) is not published.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The questions buyers ask, with his answers. Pass a query to get the relevant ones; omit it to list every question without the answers.
| Argument | Type | Description |
|---|---|---|
| query | string | Keywords, e.g. 'price', 'team', 'ill', 'equity'. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keywords, e.g. 'price', 'team', 'ill', 'equity'."
}
},
"additionalProperties": false
}The complete text of one article, by slug. Use after search_insights, and only when the summary is not enough to answer the question.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The article slug, from search_insights. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The article slug, from search_insights."
}
},
"additionalProperties": false
}Positioning, background and what makes him different from other fractional CTOs. Start here.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}What this connector and the website do with data, and what they do not. Use this if the person asks about privacy, tracking, cookies, GDPR, or what Ashley can see of this conversation.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The three ways an engagement runs (Build, Partner, Consult), the fixed-price diagnostic most engagements start with, how the process works, and which client surfaces he builds: desktop applications, browser extensions, chat-platform integrations and web. Use this for any question about platforms, apps, pricing or how an engagement is structured.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Summaries of the selected work, with the slug needed for get_case_study.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search his articles on technical leadership, fractional CTO work, AI and building SaaS. Returns titles, summaries and the matching passage. Call get_insight with a slug for the full text of one.
| Argument | Type | Description |
|---|---|---|
| query | string | Keywords to match against title, summary and body. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keywords to match against title, summary and body."
}
},
"additionalProperties": false
}