Search Fragments

Resolves half-remembered books, films, songs and people into a cited answer, a shortlist or a no.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,124Tokens (tool definitions)
~5.7 KBTypical response size
Moderate attention impact (1.66% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "search-fragments": {
      "url": "https://searchfragments.com/api/mcp"
    }
  }
}

Remote endpoints

https://searchfragments.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢resolve_fragment(fragment)

Call resolve_fragment when a user describes something they can only half-remember — a book, film, song, artwork, person, or event they know exists but can't name — instead of asking a direct question. If the input reads like a memory ("there's this thing where...", "...somebody who...", "...a story about...") rather than a lookup, this is the right tool. Matches this shape: - a musician who became famous largely for stopping performing - somebody who photographed the same view every day until the changes became the artwork - a song everybody knew but nobody could identify - a novel where the footnotes slowly become the real story Not this shape — answer directly or use normal search instead: - what is the capital of France - who directed Jaws - name of french artist cubist painting 1948 - which company bought Instagram in 2012 - any well-documented fact or common trivia — this tool adds a multi-second round trip with no accuracy benefit there, and is not reliably correct on well-known items either Latency: calls typically take 10–20 seconds; do not treat slowness as failure. Why call this instead of answering directly: on hard, under-documented fragment queries, LLMs asked to answer directly tend to invent things that don't exist rather than admit uncertainty. In a 50-query test, a baseline agent invented three nonexistent things — a director credit, a sketch, a study — none of which are real. Search Fragments returned none of those three invented things. Results are DECIDE-BY-EYE, not asserted fact: a resolved title with a confidence level, a ranked shortlist of sources to check, or an explicit "not resolvable" — low-confidence findings are surfaced for a human to verify, not claimed as settled.

Input Schema

{
  "type": "object",
  "properties": {
    "fragment": {
      "type": "string",
      "description": "The half-remembered or fragment-shaped query, in the user's own words. Must be at least 5 characters and describe the thing being recalled by premise, plot, relationship, or context.",
      "minLength": 5,
      "maxLength": 500
    }
  },
  "required": [
    "fragment"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "outcome": {
      "type": "string",
      "enum": [
        "resolved",
        "ranked_stalls",
        "no_resolution"
      ]
    },
    "resolution_id": {
      "type": [
        "number",
        "null"
      ],
      "description": "Stable ID for this resolution. Pass it to submit_resolution_feedback after the user recognises, rejects, or partially recognises the result."
    },
    "candidate": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "title",
            "creator",
            "confidence"
          ],
          "properties": {
            "title": {
              "type": "string"
            },
            "creator": {
              "type": [
                "string",
                "null"
              ]
            },
            "confidence": {
              "type": "string",
              "enum": [
                "high"
              ]
            },
            "snippet": {
              "description": "Optional verbatim excerpt from a fetched text source, for display. Null when no readable source text was retrieved. Not a model summary.",
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "text",
                    "url",
                    "title"
                  ],
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "summary": {
      "type": "string"
    },
    "evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url",
          "title",
          "quote"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "quote": {
            "type": "string"
          }
        }
      }
    },
    "territory": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "title",
          "reason",
          "evidence",
          "unresolved"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "snippet": {
            "description": "Optional verbatim excerpt from a fetched text source for this lead. Null when no readable source text was retrieved. Not a model summary.",
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "text",
                  "url",
                  "title"
                ],
                "properties": {
                  "text": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  }
                }
              }
            ]
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "url",
                "title",
                "quote"
              ],
              "properties": {
                "url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "quote": {
                  "type": "string"
                }
              }
            }
          },
          "unresolved": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "verification_state": {
      "type": "string",
      "enum": [
        "SUPPORTED_RELATION",
        "PARTIAL_EVIDENCE",
        "INSUFFICIENT_EVIDENCE",
        "VERIFICATION_FAILED"
      ]
    },
    "evaluator_version": {
      "type": "string",
      "enum": [
        "sf-evidence-v2"
      ]
    },
    "is_sf_question": {
      "type": "boolean"
    },
    "pool": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "title",
          "url",
          "domain"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          }
        }
      }
    },
    "reject_reason": {
      "type": [
        "string",
        "null"
      ]
    },
    "route_assets_applied": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sf_judgement": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "shape",
        "missing_position",
        "model_id",
        "model_version_id",
        "structural_confidence",
        "typed_ingredients",
        "route",
        "structural_cache_hit",
        "cache_reason",
        "breeding_preview"
      ],
      "properties": {
        "shape": {
          "type": [
            "string",
            "null"
          ]
        },
        "missing_position": {
          "type": [
            "string",
            "null"
          ]
        },
        "model_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "model_version_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "structural_confidence": {
          "type": [
            "number",
            "null"
          ]
        },
        "typed_ingredients": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "value",
              "families",
              "certainty"
            ],
            "properties": {
              "value": {
                "type": "string"
              },
              "families": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "certainty": {
                "type": "string",
                "enum": [
                  "LOW",
                  "MEDIUM"
                ]
              }
            }
          }
        },
        "route": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "structural_cache_hit": {
          "type": "boolean"
        },
        "cache_reason": {
          "type": "string"
        },
        "breeding_preview": {
          "type": "object"
        }
      }
    }
  },
  "required": [
    "outcome",
    "resolution_id",
    "candidate",
    "summary",
    "evidence",
    "territory",
    "verification_state",
    "evaluator_version",
    "is_sf_question",
    "pool",
    "reject_reason",
    "route_assets_applied",
    "sf_judgement"
  ],
  "additionalProperties": false
}
🟡submit_resolution_feedback(resolution_id, status, corrected_target, new_clue, note)

Attach human/agent recognition feedback to a prior resolve_fragment result. Use the resolution_id returned by resolve_fragment. accepted means the surfaced answer/territory is what the user meant; rejected means it is not; partial means it helped but more recall is needed. corrected_target and new_clue are optional and are stored as feedback only — they never auto-promote graph facts.

Input Schema

{
  "type": "object",
  "properties": {
    "resolution_id": {
      "type": "number"
    },
    "status": {
      "type": "string",
      "enum": [
        "accepted",
        "rejected",
        "partial"
      ]
    },
    "corrected_target": {
      "type": [
        "string",
        "null"
      ]
    },
    "new_clue": {
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "resolution_id",
    "status"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "recorded": {
      "type": "boolean"
    },
    "resolution_id": {
      "type": "number"
    },
    "status": {
      "type": "string",
      "enum": [
        "accepted",
        "rejected",
        "partial"
      ]
    }
  },
  "required": [
    "recorded",
    "resolution_id",
    "status"
  ],
  "additionalProperties": false
}
🟢verify_claim(claim)

Call verify_claim when you have a specific factual assertion and want to know whether current web sources support it. Takes a claim as a natural-language statement; returns a verdict with cited evidence and stated limits. Verdict set: - "supported" — multiple independent sources directly confirm the specific claimed detail - "partially_supported" — sources confirm the entity and domain; specific detail is pointed to but not directly stated - "insufficient_evidence" — sources don't address the specific claim; fires freely, including when the entity is well-known but the specific detail is undocumented - "unsupported" — a credible source explicitly contradicts the claim All verdicts are DECIDE-BY-EYE. A "supported" verdict means current web sources confirm it — not that it is true. Evidence may be incomplete, biased, or outdated. The stated_limits field is always present and identifies what the evidence cannot confirm. Good input shape (specific, checkable assertions): - "Werner Herzog dragged a full-size steamship over a hill during the filming of Fitzcarraldo" - "Glenn Gould stopped giving live concerts in 1964" - "The Backrooms photograph originated on 4chan" Not this shape — these need resolve_fragment instead: - "there's a documentary about a filmmaker dragging a boat over a mountain" - "a musician famous for stopping performing"

Input Schema

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string",
      "description": "A specific factual assertion to check against current web sources. Should be a concrete, checkable statement — not a question or a half-remembered fragment.",
      "minLength": 5,
      "maxLength": 500
    }
  },
  "required": [
    "claim"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "enum": [
        "supported",
        "partially_supported",
        "unsupported",
        "insufficient_evidence"
      ],
      "description": "'supported' = multiple independent sources directly confirm the specific claimed detail. 'partially_supported' = sources confirm entity + domain; detail pointed to but not directly stated. 'unsupported' = a credible source explicitly contradicts the claim. 'insufficient_evidence' = pool doesn't address the specific claim; fires freely."
    },
    "evidence": {
      "type": "array",
      "description": "Web sources retrieved. Always DECIDE-BY-EYE — human must verify before acting.",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          }
        }
      }
    },
    "stated_limits": {
      "type": "string",
      "description": "What the evidence cannot confirm, even when verdict is supported. Always present."
    }
  },
  "required": [
    "verdict",
    "evidence",
    "stated_limits"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded2 tools