Your personal size guide. Find your shoe size in any brand from the brand's official size chart.
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.
Records a shoe the person owns and the size they wear in it. This is what every recommendation is built from, so ask for at least one shoe that fits them well before calling recommend_size. Use find_shoe first to get the identifiers.
The complete set of answers from find_shoe, including the size they wear. find_shoe says when it is complete.
The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http getsize https://www.getsize.shoes/mcp
Records a shoe the person owns and the size they wear in it. This is what every recommendation is built from, so ask for at least one shoe that fits them well before calling recommend_size. Use find_shoe first to get the identifiers.
| Argument | Type | Description |
|---|---|---|
| answers* | array | The complete set of answers from find_shoe, including the size they wear. find_shoe says when it is complete. |
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId",
"answers"
],
"properties": {
"answers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The complete set of answers from find_shoe, including the size they wear. find_shoe says when it is complete."
},
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Identifies a shoe one answer at a time. Call it with no answers to get the list of brands, then again with each answer appended: brand, then model, then colourway, then size. It replies with the next question and the answers allowed, until the shoe is identified. Append each option's id, not the name shown beside it: the name is for the person, the id is the answer. Always work through this rather than guessing, because only the answers it offers exist and a shoe we do not hold cannot be sized.
| Argument | Type | Description |
|---|---|---|
| answers | array | The answers so far, in order. Each is the id of an option the previous call offered. Empty or omitted to start. |
| purpose | string | What the shoe is for. A shoe they own needs a size, so the walk asks for one. A shoe they are considering does not, because working the size out is the point, and that walk finishes a step earlier. |
{
"type": "object",
"required": [],
"properties": {
"answers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The answers so far, in order. Each is the id of an option the previous call offered. Empty or omitted to start."
},
"purpose": {
"enum": [
"own",
"considering"
],
"type": "string",
"description": "What the shoe is for. A shoe they own needs a size, so the walk asks for one. A shoe they are considering does not, because working the size out is the point, and that walk finishes a step earlier."
}
},
"additionalProperties": false
}Shows what the person has told us they own, with the id needed to remove one or to record how it fits.
| Argument | Type | Description |
|---|---|---|
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId"
],
"properties": {
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Records what the person says about wearing a shoe they own: whether it is the right length and width. This is the most valuable thing they can tell us, because it is the difference between what the chart says and what happened. Use the shoe id from list_shoes.
| Argument | Type | Description |
|---|---|---|
| shoeId* | integer | The id from list_shoes. |
| verdict* | string | What they said. PERFECT means they would buy it again. |
| dimension* | string | Which way it fits or does not. |
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId",
"shoeId",
"dimension",
"verdict"
],
"properties": {
"shoeId": {
"type": "integer",
"description": "The id from list_shoes."
},
"verdict": {
"enum": [
"TOO_SMALL",
"PERFECT",
"TOO_LARGE"
],
"type": "string",
"description": "What they said. PERFECT means they would buy it again."
},
"dimension": {
"enum": [
"LENGTH",
"WIDTH"
],
"type": "string",
"description": "Which way it fits or does not."
},
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Works out which size to buy in a shoe the person does not own yet, from the shoes they do own and any foot measurement. Needs at least one owned shoe or a measurement first. Returns the size and what it was based on.
| Argument | Type | Description |
|---|---|---|
| answers* | array | The answers from find_shoe identifying the shoe they are considering. A size is not needed here: working it out is the point. |
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId",
"answers"
],
"properties": {
"answers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The answers from find_shoe identifying the shoe they are considering. A size is not needed here: working it out is the point."
},
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Removes a shoe the person no longer wants counted, using the id from list_shoes. Anything they said about how it fits goes with it.
| Argument | Type | Description |
|---|---|---|
| shoeId* | integer | The id from list_shoes. |
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId",
"shoeId"
],
"properties": {
"shoeId": {
"type": "integer",
"description": "The id from list_shoes."
},
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Records the length of the person's foot in millimetres, heel to longest toe. More precise than a shoe they own, and worth asking for when they have no shoes to give or the answer matters. A measurement and owned shoes can both be present.
| Argument | Type | Description |
|---|---|---|
| lengthMm* | integer | Foot length in millimetres. A typical adult is between 220 and 320. |
| sessionId* | string | The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next. |
{
"type": "object",
"required": [
"sessionId",
"lengthMm"
],
"properties": {
"lengthMm": {
"type": "integer",
"description": "Foot length in millimetres. A typical adult is between 220 and 320."
},
"sessionId": {
"type": "string",
"description": "The session id returned by start_session. Everything the person tells you is stored against it, and it is the only thing linking one call to the next."
}
},
"additionalProperties": false
}Call this first, once per conversation. Returns a session id that every other tool needs. No personal data is required and none is asked for.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"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 8, 2026.