fixRAgent maintenance triage

Assess a property maintenance photo: what it is, how urgent, which trade to call.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
77%
이름 품질
93%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains negative instruction about its own useassess_property_photo에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,709토큰 (도구 정의)
~4.0 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.34%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "fixragent": {
      "url": "https://fixragent.com/mcp"
    }
  }
}

원격 엔드포인트

https://fixragent.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (3)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢assess_property_photo(image_base64, mime_type, problem_text, reporter, depth)

Use this when someone has 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 wants to know what it is, how urgent it is, and which trade to call. Typical asks: "what is wrong with this water heater", "my tenant sent this photo, is it urgent", "which trade do I call for this". 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 does not read the photo: it returns fixRAgent's stored sample result, labelled SAMPLE, and says how to get a free key. Do not use this for: a person, a pet, an injury, a rash, a medical or veterinary question, a vehicle, food, a document, a screenshot, or a photo of a screen. Do not use it for anything happening RIGHT NOW that needs emergency services — a fire, a gas smell or hissing gas, a carbon-monoxide alarm sounding, water pouring onto live electrics, or anyone hurt: tell the user to leave the building and call 911 (or the local emergency number) first, and do not call this tool. Do not use it to price a repair, to book a contractor, or to decide an insurance claim; it routes the job, it does not quote or dispatch it.

입력 스키마

{
  "type": "object",
  "properties": {
    "image_base64": {
      "type": "string",
      "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."
    },
    "mime_type": {
      "type": "string",
      "enum": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "description": "The photo's type. Must match the bytes; a mismatch is refused, not guessed."
    },
    "problem_text": {
      "type": "string",
      "maxLength": 1200,
      "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."
    },
    "reporter": {
      "type": "string",
      "enum": [
        "resident",
        "assessor",
        "technician"
      ],
      "default": "resident",
      "description": "Who took the photo. Changes how the explanation is worded, not the verdict."
    },
    "depth": {
      "type": "string",
      "enum": [
        "fast",
        "deep"
      ],
      "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; use it only when a first read disagreed with itself."
    }
  },
  "required": [
    "image_base64",
    "mime_type"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "diagnosis_id": {
      "type": "string",
      "description": "Server-minted id for this assessment; the key for the profile and the outcome."
    },
    "share_url": {
      "type": "string",
      "description": "The Triage Profile as a page a resident or contractor can open."
    },
    "outcome_url": {
      "type": "string",
      "description": "Two taps to tell us what actually fixed it."
    },
    "engine_version": {
      "type": "string"
    },
    "rubric_version": {
      "type": "string"
    },
    "config_id": {
      "type": "string",
      "description": "An id beginning \"fallback-\" means a hardcoded config answered, not a measured one."
    },
    "core": {
      "type": "object",
      "description": "The fixed contract: asset, fault, tier, trade_required, resident_explanation and the rest."
    },
    "agreement": {
      "anyOf": [
        {
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "n reads ran, k agreed. k is null on a tie."
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sample": {
      "type": "boolean",
      "description": "true = no key was sent: this is the stored SAMPLE, NOT an assessment of the photo you sent. Absent on a real assessment."
    }
  },
  "required": [
    "diagnosis_id",
    "share_url",
    "core"
  ]
}
🟢get_triage_profile(diagnosis_id)

Use this when you already have a fixRAgent diagnosis_id (from assess_property_photo, or from a fixragent.com/c/<id> link a person pasted) and want the saved assessment back as data. Reads only; it never re-reads the photo, never calls the model, and spends nothing from the daily allowance. Do not use this to assess a new photo — that is assess_property_photo. Do not use it to look up a person, an address, a property or an account: it takes one id and returns one assessment, and it returns no contact details of any kind.

입력 스키마

{
  "type": "object",
  "properties": {
    "diagnosis_id": {
      "type": "string",
      "description": "The UUID from assess_property_photo, or the last path segment of a fixragent.com/c/<id> link."
    }
  },
  "required": [
    "diagnosis_id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "diagnosis_id": {
      "type": "string"
    },
    "share_url": {
      "type": "string"
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "engine_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "rubric_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "config_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "agreement": {
      "anyOf": [
        {
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "core": {
      "type": "object"
    }
  },
  "required": [
    "diagnosis_id",
    "share_url",
    "core"
  ]
}
🟢try_sample

Use this FIRST when the person has just connected fixRAgent, has no key yet, or asks what fixRAgent does or what a result looks like. It needs no key, takes no input, and returns a real 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. It does not read any photo and spends nothing. Do not present the sample as an assessment of the person's own photo; for their photo, use assess_property_photo with a key.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "sample": {
      "type": "boolean",
      "description": "Always true: this is a stored example, not a read of any photo you sent."
    },
    "label": {
      "type": "string",
      "description": "One sentence saying what this is, to show the person as-is."
    },
    "photo": {
      "type": "object",
      "description": "What the sample photo shows, in words. The photo itself is not served."
    },
    "captured_utc": {
      "type": "string",
      "description": "When the real engine produced this answer."
    },
    "diagnosis_id": {
      "type": "string"
    },
    "engine_version": {
      "type": "string"
    },
    "rubric_version": {
      "type": "string"
    },
    "config_id": {
      "type": "string"
    },
    "core": {
      "type": "object",
      "description": "The fixed contract, exactly as the engine returned it for the sample photo."
    },
    "agreement": {
      "anyOf": [
        {
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "n reads ran, k agreed."
    },
    "next_step": {
      "type": "string",
      "description": "How to get a free key and assess your own photo."
    }
  },
  "required": [
    "sample",
    "label",
    "core",
    "next_step"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 3개