Server definition
- Hash
- sha256:891d3030daf9d04812e19c0657f7a0cf98927f2912f46745f8c09f81ef0a82ed
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "fixRAgent triages property maintenance from a photo. If the person has no fixRAgent key yet (or has just connected), offer try_sample first: it needs no key, costs nothing, and shows a real stored result for a sample photo from fixRAgent's test set, labelled SAMPLE. Say plainly that it is a sample and not their photo. Give assess_property_photo one photo of something in a building and, if you have them, the problem in the reporter's own words; you get back what the asset is, whether a fault is visible, one of four urgency words (EMERGENCY, TODAY, THIS WEEK, WHENEVER), which trade to call, a line to say to the resident, and a share_url for the Triage Profile. get_triage_profile reads one back by id. Anything happening right now that needs emergency services — fire, gas, someone hurt — is a 911 call, not a tool call. A free demo key is issued at https://fixragent.com/docs#key and is sent as the x-triage-key header, an Authorization: Bearer header, or ?k= on this server URL. An assessment spends one of the key's 60 daily requests; a read spends none of them and calls no model, but both count against the same 20 requests an hour per address. Without a key, assess_property_photo still reads the real photo, up to 3 times per connection in a rolling 24 hours (shared across every keyless caller up to a daily ceiling); past either limit it returns the same SAMPLE as try_sample and does not read the photo, and says how to get a free key with no such limit.",
"tools": [
{
"description": "Assesses a photo of something in a building — an appliance, a boiler, a pipe, a water heater, an electrical panel, a fitting, a leak, damage — and reports what it is, how urgent it is and which trade it needs. Returns the fixed contract: what the asset is, whether a fault is visible, one of four urgency words (EMERGENCY, TODAY, THIS WEEK, WHENEVER), which trade to call, a line to say to the resident, and how many independent reads agreed. One call reads the photo on fixragent.com and spends one request from the key's daily allowance. Sent with NO key, it reads the real photo up to 3 times per connection in a rolling 24 hours (a small free allowance, shared across every keyless caller up to a daily ceiling); past either limit it returns fixRAgent's stored sample result, labelled SAMPLE, and says how to get a free key with no such limit. Scope: photos of building assets and faults. It does not assess people, pets, injuries, rashes, medical or veterinary questions, vehicles, food, documents, screenshots or photos of screens. It is not an emergency service: a fire, a gas smell or hissing gas, a carbon-monoxide alarm sounding, water pouring onto live electrics or anyone hurt needs the local emergency number (911 in the US), not a photo assessment. It does not price repairs, book contractors or decide insurance claims; it routes the job, it does not quote or dispatch it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"depth": {
"default": "fast",
"description": "fast reads the photo three times, deep five, and the reply reports how many agreed. deep is slower and spends more of the day's budget.",
"enum": [
"fast",
"deep"
],
"type": "string"
},
"image": {
"description": "The photo as a file reference: an object whose download_url is an https URL of a JPEG, PNG or WebP image (at most 3 MB, at least 1 KB). fixragent.com downloads it once, under the same limits and the same location-metadata removal as image_base64. Give either image or image_base64, not both.",
"properties": {
"download_url": {
"description": "An https URL the photo can be downloaded from.",
"type": "string"
},
"file_id": {
"description": "The host's id for the file. Not used to fetch it.",
"type": "string"
},
"file_name": {
"description": "Optional. Not used.",
"type": "string"
},
"mime_type": {
"description": "Optional. If given, it must match the downloaded bytes.",
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"type": "object"
},
"image_base64": {
"description": "The photo, base64-encoded. A data:image/jpeg;base64, prefix is accepted and stripped. JPEG, PNG or WebP, at most 3 MB once decoded, at least 1 KB. Location metadata is removed on our server before the photo is hashed, read or stored; it is NOT removed before it leaves the caller. Give either image_base64 (with mime_type) or image, not both.",
"type": "string"
},
"mime_type": {
"description": "The photo's type: needed with image_base64, optional with image. Must match the bytes; a mismatch is refused, not guessed.",
"enum": [
"image/jpeg",
"image/png",
"image/webp"
],
"type": "string"
},
"problem_text": {
"description": "What the person reported, in their own words (\"no hot water since Tuesday\"). Optional. Treated as a reported symptom to be checked against the photo, never as ground truth: the reply says whether the report and the photo agree.",
"maxLength": 1200,
"type": "string"
},
"reporter": {
"default": "resident",
"description": "Who took the photo. Changes how the explanation is worded, not the verdict.",
"enum": [
"resident",
"assessor",
"technician"
],
"type": "string"
}
},
"type": "object"
},
"name": "assess_property_photo",
"outputSchema": {
"properties": {
"agreement": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
],
"description": "n reads ran, k agreed. k is null on a tie."
},
"config_id": {
"description": "An id beginning \"fallback-\" means a hardcoded config answered, not a measured one.",
"type": "string"
},
"core": {
"description": "The fixed contract: asset, fault, tier, trade_required, resident_explanation and the rest.",
"type": "object"
},
"diagnosis_id": {
"description": "Server-minted id for this assessment; the key for the profile and the outcome.",
"type": "string"
},
"engine_version": {
"type": "string"
},
"outcome_url": {
"description": "Two taps to tell us what actually fixed it.",
"type": "string"
},
"rubric_version": {
"type": "string"
},
"sample": {
"description": "true = no key was sent: this is the stored SAMPLE, NOT an assessment of the photo you sent. Absent on a real assessment.",
"type": "boolean"
},
"share_url": {
"description": "The Triage Profile as a page a resident or contractor can open.",
"type": "string"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"diagnosis_id",
"share_url",
"core"
],
"type": "object"
}
},
{
"description": "Returns a saved fixRAgent assessment by its diagnosis_id (from an assessment, or the last part of a fixragent.com/c/<id> link). Read only: it never re-reads the photo, never calls the model and spends nothing from the daily allowance. It takes one id and returns one assessment with no contact details of any kind. It needs a fixRAgent key (a free demo key is issued at https://fixragent.com/docs#key); without one it returns an error and no data.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"diagnosis_id": {
"description": "The UUID of a saved assessment, or the last path segment of a fixragent.com/c/<id> link.",
"type": "string"
}
},
"required": [
"diagnosis_id"
],
"type": "object"
},
"name": "get_triage_profile",
"outputSchema": {
"properties": {
"agreement": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
]
},
"config_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"core": {
"type": "object"
},
"created_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"diagnosis_id": {
"type": "string"
},
"engine_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rubric_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"share_url": {
"type": "string"
}
},
"required": [
"diagnosis_id",
"share_url",
"core"
],
"type": "object"
}
},
{
"description": "Returns a stored fixRAgent assessment of a sample photo from fixRAgent's test set (an HVAC air handler and furnace), labelled SAMPLE, plus how to get a free key. Needs no key and no input, reads no photo and spends nothing. The result is a sample, not an assessment of anyone's own photo.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "try_sample",
"outputSchema": {
"properties": {
"agreement": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
],
"description": "n reads ran, k agreed."
},
"captured_utc": {
"description": "When the real engine produced this answer.",
"type": "string"
},
"config_id": {
"type": "string"
},
"core": {
"description": "The fixed contract, exactly as the engine returned it for the sample photo.",
"type": "object"
},
"diagnosis_id": {
"type": "string"
},
"engine_version": {
"type": "string"
},
"label": {
"description": "One sentence saying what this is.",
"type": "string"
},
"next_step": {
"description": "How to get a free key and assess your own photo.",
"type": "string"
},
"photo": {
"description": "What the sample photo shows, in words. The photo itself is not served.",
"type": "object"
},
"rubric_version": {
"type": "string"
},
"sample": {
"description": "Always true: this is a stored example, not a read of any photo you sent.",
"type": "boolean"
}
},
"required": [
"sample",
"label",
"core",
"next_step"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:891d3030daf9d04812e19c0657f7a0cf98927f2912f46745f8c09f81ef0a82ed | sha256sum