Skip to main content
Glama

Open shared search

open_shared_search
Read-onlyIdempotent

Open a search the user shared from the Close Knit site (a link with #profile=v1., v2. or v3.): their budget, priorities, places (gym, work, schools…), liked and ruled-out areas and private notes, re-ranked now with the same shortlist as find_areas. Use it when the user pastes such a link or says 'discuss my search'.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "link": "<link>"
    },
    "name": "open_shared_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
linkYes[input value] A Close Knit link the user shared (…#profile=v1.…, v2. or v3.), e.g. from 'Discuss with Claude' on the site.
top_nNo[paging] How many areas to return.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "RatePrevious": {
      -    "properties": {
      -      "bad": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "[input value] What was wrong, missing or confusing.",
      -        "title": "Bad"
      -      },
      -      "call_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "[id] The callId of the answer you are rating; leave it out when answers carry none.",
      -        "title": "Call Id"
      -      },
      -      "fix": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "[input value] The change to the tool or its answer you would want.",
      -        "title": "Fix"
      -      },
      -      "good": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "[input value] What was useful in the answer.",
      -        "title": "Good"
      -      },
      -      "rating": {
      -        "description": "[input value] 1 = useless or wrong, 3 = usable with gaps, 5 = exactly what was needed.",
      -        "title": "Rating",
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "rating"
      -    ],
      -    "title": "RatePrevious",
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / intent
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "[input value] Optional, one to three sentences you write: what the user is looking for with this call and the criteria that matter, e.g. '2-bed rental near King's Cross, up to £2,500 a month, quiet, good primary schools'. Close Knit reads these to improve its answers. Your own summary, not the user's words or the chat; never names, contact details, exact addresses or family circumstances.",
      -  "title": "Intent"
      -}
    • removedInput schema / properties / rate_previous
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "$ref": "#/$defs/RatePrevious"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "[input value] Optional: your rating of an earlier Close Knit answer, by the callId it carried (none: the last answer). Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."
      -}
  2. Changed9 schema fields changed
    • changedInput schema / $defs / RatePrevious / properties / bad / description
      Previous value: -"What was wrong, missing or confusing."New value: +"[input value] What was wrong, missing or confusing."
    • changedInput schema / $defs / RatePrevious / properties / call_id / description
      Previous value: -"The callId of the answer you are rating; leave it out when answers carry none."New value: +"[id] The callId of the answer you are rating; leave it out when answers carry none."
    • changedInput schema / $defs / RatePrevious / properties / fix / description
      Previous value: -"The change to the tool or its answer you would want."New value: +"[input value] The change to the tool or its answer you would want."
    • changedInput schema / $defs / RatePrevious / properties / good / description
      Previous value: -"What was useful in the answer."New value: +"[input value] What was useful in the answer."
    • changedInput schema / $defs / RatePrevious / properties / rating / description
      Previous value: -"1 = useless or wrong, 3 = usable with gaps, 5 = exactly what was needed."New value: +"[input value] 1 = useless or wrong, 3 = usable with gaps, 5 = exactly what was needed."
    • changedInput schema / properties / intent / description
      Previous value: -"Optional, one to three sentences you write: what the user is looking for with this call and the criteria that matter, e.g. '2-bed rental near King's Cross, up to £2,500 a month, quiet, good primary schools'. Close Knit reads these to improve its answers. Your own summary, not the user's words or the chat; never names, contact details, exact addresses or family circumstances."New value: +"[input value] Optional, one to three sentences you write: what the user is looking for with this call and the criteria that matter, e.g. '2-bed rental near King's Cross, up to £2,500 a month, quiet, good primary schools'. Close Knit reads these to improve its answers. Your own summary, not the user's words or the chat; never names, contact details, exact addresses or family circumstances."
    • changedInput schema / properties / link / description
      Previous value: -"An Close Knit link the user shared (…#profile=v1.…, v2. or v3.), e.g. from 'Discuss with Claude' on the site."New value: +"[input value] A Close Knit link the user shared (…#profile=v1.…, v2. or v3.), e.g. from 'Discuss with Claude' on the site."
    • changedInput schema / properties / rate_previous / description
      Previous value: -"Optional: your rating of an earlier Close Knit answer, by the callId it carried (none: the last answer). Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."New value: +"[input value] Optional: your rating of an earlier Close Knit answer, by the callId it carried (none: the last answer). Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."
    • changedInput schema / properties / top_n / description
      Previous value: -"How many areas to return."New value: +"[paging] How many areas to return."
  3. Changed6 schema fields changed
    • addedInput schema / $defs / RatePrevious / properties / call_id / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / $defs / RatePrevious / properties / call_id / default
      Added value: +null
    • changedInput schema / $defs / RatePrevious / properties / call_id / description
      Previous value: -"The callId of the answer you are rating."New value: +"The callId of the answer you are rating; leave it out when answers carry none."
    • removedInput schema / $defs / RatePrevious / properties / call_id / type
      Removed value: -"string"
    • changedInput schema / $defs / RatePrevious / required
      Previous value: -[
      -  "call_id",
      -  "rating"
      -]New value: +[
      +  "rating"
      +]
    • changedInput schema / properties / rate_previous / description
      Previous value: -"Optional: your rating of an earlier Close Knit answer, by the callId it carried. Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."New value: +"Optional: your rating of an earlier Close Knit answer, by the callId it carried (none: the last answer). Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."
  4. Changed3 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "RatePrevious": {
      +    "properties": {
      +      "bad": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "What was wrong, missing or confusing.",
      +        "title": "Bad"
      +      },
      +      "call_id": {
      +        "description": "The callId of the answer you are rating.",
      +        "title": "Call Id",
      +        "type": "string"
      +      },
      +      "fix": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The change to the tool or its answer you would want.",
      +        "title": "Fix"
      +      },
      +      "good": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "What was useful in the answer.",
      +        "title": "Good"
      +      },
      +      "rating": {
      +        "description": "1 = useless or wrong, 3 = usable with gaps, 5 = exactly what was needed.",
      +        "title": "Rating",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "call_id",
      +      "rating"
      +    ],
      +    "title": "RatePrevious",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / intent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional, one to three sentences you write: what the user is looking for with this call and the criteria that matter, e.g. '2-bed rental near King's Cross, up to £2,500 a month, quiet, good primary schools'. Close Knit reads these to improve its answers. Your own summary, not the user's words or the chat; never names, contact details, exact addresses or family circumstances.",
      +  "title": "Intent"
      +}
    • addedInput schema / properties / rate_previous
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/RatePrevious"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional: your rating of an earlier Close Knit answer, by the callId it carried. Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want."
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive) and closed-world scope, so the description adds the less obvious traits: supported link versions (v1/v2/v3 via the #profile fragment), that results are re-ranked at call time, and that private notes are included in the payload. It does not discuss failure modes for stale or malformed links, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, then the trigger condition. The parenthetical field list ('gym, work, schools…') is dense but earns its place by telling the agent what data comes back without needing the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich annotation set and an output schema present, the description is nearly complete: it covers the input format, the trigger, and the shape of the returned data. The only omission is what happens when the link is invalid, expired, or from an unsupported version — relevant given the strict minLength/maxLength on link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the link parameter's own description already documents the #profile=v1/v2/v3 format and the 'Discuss with Claude' origin, so the prose largely repeats structured data. The top_n paging parameter is never mentioned in the description, leaving that aspect entirely to the schema — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Open a search the user shared from the Close Knit site') and immediately enumerates what that resource contains (budget, priorities, places, liked/ruled-out areas, private notes). It also explicitly distinguishes the output by naming a sibling: 're-ranked now with the same shortlist as find_areas.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete trigger: 'Use it when the user pastes such a link or says "discuss my search"', which is enough for an agent to route correctly. It stops short of stating when NOT to use it (e.g. when the user has no shared link, in which case find_areas or search would apply), so it is not fully explicit about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.