Read-only desk for buyers and assistants: offer, prices, fit check, readiness scan, intake draft.
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.
Deterministic fit check with nine yes/no signals taken from the published article on when an FDE fits and when it does not. Returns one of: fits, start_with_mapping, not_clear_yet, wait, something_else_fits_better, each with the sentence from the site it is based on. It also says when another kind of supplier is the simpler choice. Ask the person; do not guess the signals.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http buyer-desk https://forwardsmith.com/mcp
Deterministic fit check with nine yes/no signals taken from the published article on when an FDE fits and when it does not. Returns one of: fits, start_with_mapping, not_clear_yet, wait, something_else_fits_better, each with the sentence from the site it is based on. It also says when another kind of supplier is the simpler choice. Ask the person; do not guess the signals.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| signals* | object |
{
"type": "object",
"required": [
"signals"
],
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
},
"signals": {
"type": "object",
"required": [
"one_process_with_owner",
"knowledge_with_people",
"runs_in_own_environment",
"want_to_carry_on_yourselves",
"experts_and_access_available",
"sharp_specification",
"standard_product_covers_it",
"only_independent_benchmark",
"wants_to_buy_model_or_platform"
],
"properties": {
"sharp_specification": {
"type": "boolean"
},
"knowledge_with_people": {
"type": "boolean"
},
"one_process_with_owner": {
"type": "boolean"
},
"runs_in_own_environment": {
"type": "boolean"
},
"only_independent_benchmark": {
"type": "boolean"
},
"standard_product_covers_it": {
"type": "boolean"
},
"want_to_carry_on_yourselves": {
"type": "boolean"
},
"experts_and_access_available": {
"type": "boolean"
},
"wants_to_buy_model_or_platform": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Adds up the published starting prices for a chosen path of one to three steps (mapping, sprint, fde). Returns the lines, the sum as a lower bound in EUR excl. VAT, what is not included and what is not published. No discounts, no new prices, not a quote.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| path* | array |
{
"type": "object",
"required": [
"path"
],
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
},
"path": {
"type": "array",
"items": {
"enum": [
"mapping",
"sprint",
"fde"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
}Returns how a forward-deployed engineer of Forwardsmith works: Map, Build, Hand over; the five stations of the method and its golden rule; the six kinds of work; the eight points that belong in a statement of work; what must be ready before the start; and the handover test.
| Argument | Type | Description |
|---|---|---|
| lang | string |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Returns the three ways to start with Forwardsmith (Information Flow Mapping Session, FDE Build Sprint, FDE 30-60-90 engagement) with duration, starting price as a number in EUR excl. VAT, what it delivers, what is not included, the ownership statement and a list of things the site does not publish, so you can say so instead of guessing. Prices are starting prices, not quotes. Please cite the URL.
| Argument | Type | Description |
|---|---|---|
| lang | string |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Turns what you learned into a ready-to-send intake request: a brief in ten numbered lines, a link that opens the intake form with the message already filled in, and (once delivery to the inbox is confirmed) an e-mail to [email protected]. It sends nothing and stores nothing: the person reads the text, adds name and work e-mail and sends it. Do not put names, e-mail addresses or phone numbers in any field; the tool refuses them.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| problem* | string | What goes wrong today |
| process* | string | Which process should work |
| systems | string | |
| why_now | string | |
| red_lines | string | |
| owner_role | string | Role of the process owner, not a name |
| environment | string | |
| scan_answers |
Runs the same six-question FDE Readiness Scan as the page on forwardsmith.com, with the same scoring. Returns the score, the recommended starting point with its starting price, what is already in place and what to prepare. Indicative self-assessment, not a quote.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| answers* | object |
{
"type": "object",
"required": [
"answers"
],
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
},
"answers": {
"type": "object",
"required": [
"process",
"history",
"sensitivity",
"redlines",
"models",
"volume"
],
"properties": {
"models": {
"enum": [
"none",
"adhoc",
"pilot",
"production"
],
"type": "string",
"description": "How do you use AI models or tools in this process today?"
},
"volume": {
"enum": [
"lt100",
"100-1000",
"1000-10000",
"gt10000"
],
"type": "string",
"description": "What monthly volume do you want this process to handle?"
},
"history": {
"enum": [
"lt50",
"50-200",
"200-1000",
"gt1000",
"unknown"
],
"type": "string",
"description": "How many historical cases with a known outcome can you pull?"
},
"process": {
"enum": [
"service",
"cases",
"documents",
"sales",
"internal",
"undecided"
],
"type": "string",
"description": "Which process would you start with?"
},
"redlines": {
"enum": [
"written",
"tacit",
"none",
"unsure"
],
"type": "string",
"description": "Are there hard red-line rules the system must never break?"
},
"sensitivity": {
"enum": [
"low",
"medium",
"high-classified",
"high-unclear"
],
"type": "string",
"description": "How sensitive is the data in these cases?"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}Takes one process as 2-20 steps and returns per step whether it is handled by code (MCP/API), by a model (and on which route) or by a person, whether a redaction gate comes first and whether human approval is needed. Fixed rule table from the published method; no model is called. A preview of what the Information Flow Mapping Session does with your team, not a design. Describe steps in general words; no personal data.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| steps* | array | |
| process_name* | string |
{
"type": "object",
"required": [
"process_name",
"steps"
],
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"kind"
],
"properties": {
"kind": {
"enum": [
"fetch_record",
"calculate",
"write_record",
"notify",
"classify",
"extract",
"summarise",
"draft_text",
"judge_edge_case",
"decide"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"personal_data": {
"type": "boolean",
"default": false
},
"external_effect": {
"type": "boolean",
"default": false,
"description": "true when the step pays, rejects, books or sends something outside the organisation"
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 2
},
"process_name": {
"type": "string",
"maxLength": 160,
"minLength": 3
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| object |
| preferred_start | string |
| data_sensitivity | string |
| known_outcome_cases | string |
{
"type": "object",
"required": [
"process",
"problem"
],
"properties": {
"lang": {
"enum": [
"en",
"nl"
],
"type": "string",
"default": "en"
},
"problem": {
"type": "string",
"maxLength": 600,
"minLength": 10,
"description": "What goes wrong today"
},
"process": {
"type": "string",
"maxLength": 600,
"minLength": 10,
"description": "Which process should work"
},
"systems": {
"type": "string",
"maxLength": 300
},
"why_now": {
"type": "string",
"maxLength": 300
},
"red_lines": {
"type": "string",
"maxLength": 400
},
"owner_role": {
"type": "string",
"maxLength": 120,
"description": "Role of the process owner, not a name"
},
"environment": {
"enum": [
"own_cloud",
"vpc",
"on_premises",
"undecided"
],
"type": "string"
},
"scan_answers": {
"type": "object",
"required": [
"process",
"history",
"sensitivity",
"redlines",
"models",
"volume"
],
"properties": {
"models": {
"enum": [
"none",
"adhoc",
"pilot",
"production"
],
"type": "string",
"description": "How do you use AI models or tools in this process today?"
},
"volume": {
"enum": [
"lt100",
"100-1000",
"1000-10000",
"gt10000"
],
"type": "string",
"description": "What monthly volume do you want this process to handle?"
},
"history": {
"enum": [
"lt50",
"50-200",
"200-1000",
"gt1000",
"unknown"
],
"type": "string",
"description": "How many historical cases with a known outcome can you pull?"
},
"process": {
"enum": [
"service",
"cases",
"documents",
"sales",
"internal",
"undecided"
],
"type": "string",
"description": "Which process would you start with?"
},
"redlines": {
"enum": [
"written",
"tacit",
"none",
"unsure"
],
"type": "string",
"description": "Are there hard red-line rules the system must never break?"
},
"sensitivity": {
"enum": [
"low",
"medium",
"high-classified",
"high-unclear"
],
"type": "string",
"description": "How sensitive is the data in these cases?"
}
},
"additionalProperties": false
},
"preferred_start": {
"enum": [
"mapping",
"sprint",
"fde",
"unsure"
],
"type": "string",
"default": "unsure"
},
"data_sensitivity": {
"enum": [
"low",
"medium",
"high-classified",
"high-unclear"
],
"type": "string"
},
"known_outcome_cases": {
"enum": [
"lt50",
"50-200",
"200-1000",
"gt1000",
"unknown"
],
"type": "string"
}
},
"additionalProperties": false
}