saightly

Svensk marknadsplats för lokala tjänster från verifierade företag — sök, boka och begär offert.

Should I use this

Quality & Safety

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

Findings (2)

  • LOWTool 'las_tjanst' description lacks action verbin las_tjanst
  • LOWTool 'avropa_tjanst' description lacks action verbin avropa_tjanst

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,281Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.78% 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": {
    "saightly": {
      "url": "https://saightly.com/api/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪sok_tjanster(query)

Sök lokala tjänster i fritext (t.ex. "snickare i Vara asap"). Tolkar kategori, ort och brådska och returnerar rankade leverantörer. tips listar smarta alternativ utanför den exakta träffbilden (annan ort, högre omdöme eller lägre pris) med skälet i klartext — bra att vidarebefordra till användaren.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Sökfråga i naturligt språk."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪las_tjanst(slug)

Hämtar detaljer för en specifik tjänst via dess slug (från sok_tjanster).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Tjänstens slug, t.ex. \"koksrenovering-vara\"."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪las_foretag(orgnr)

Hämtar grunduppgifter för ett organisationsnummer (namn, status, adress, SNI) från Bolagsverket.

Input Schema

{
  "type": "object",
  "properties": {
    "orgnr": {
      "type": "string",
      "description": "Organisationsnummer (10 siffror, med eller utan bindestreck)."
    }
  },
  "required": [
    "orgnr"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪lediga_tider(orgnr, slug, resurs, antal)

Direktbokning är PAUSAD — verktyget svarar med tom slots-lista och en förklaring. Förmedla i stället kontakt: las_foretag ger företagets uppgifter, och avropa_tjanst (utan bekraftad_tid) skickar en förfrågan som Saightly förmedlar. Bokningen sker sedan direkt hos företaget.

Input Schema

{
  "type": "object",
  "properties": {
    "orgnr": {
      "type": "string",
      "description": "Leverantörens organisationsnummer."
    },
    "slug": {
      "description": "Tjänstens slug (styr passlängd och utförare). Utelämnad: företagets första aktiva tjänst.",
      "type": "string"
    },
    "resurs": {
      "description": "Filtrera på en specifik utförare (resurs-id från ett tidigare svar).",
      "type": "string"
    },
    "antal": {
      "description": "Antal tider att returnera (standard 5, max 120).",
      "type": "number"
    }
  },
  "required": [
    "orgnr"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡avropa_tjanst(orgnr, slug, typ, ordervarde, onskad_tid, ...)

Skickar en FÖRFRÅGAN till en leverantör — Saightly förmedlar kontakten (gratis, avgift_kr är alltid 0). Direktbokning är pausad: bekraftad_tid/pass avvisas (409). Ange kundens behov i kontakt.meddelande och gärna onskad_tid. KRÄVER kundens RIKTIGA e-post i kontakt.epost: kunden får ett bekräftelsemejl och förfrågan förmedlas FÖRST när kunden klickat länken — hitta ALDRIG på en adress, och meddela kunden att kolla sin inkorg.

Input Schema

{
  "type": "object",
  "properties": {
    "orgnr": {
      "type": "string",
      "description": "Leverantörens organisationsnummer."
    },
    "slug": {
      "description": "Tjänstens slug (från sok_tjanster/las_tjanst) — VÄLJ RÄTT tjänst när företaget har flera. Utelämnad: företagets första aktiva tjänst.",
      "type": "string"
    },
    "typ": {
      "description": "Typ av avrop. Standard: forfragan.",
      "type": "string",
      "enum": [
        "forfragan",
        "bokning",
        "forsaljning"
      ]
    },
    "ordervarde": {
      "description": "Ordervärde i kr (ger värdebaserad avgift för bokning/försäljning).",
      "type": "number"
    },
    "onskad_tid": {
      "description": "Önskad tid (ISO 8601) för en förfrågan.",
      "type": "string"
    },
    "bekraftad_tid": {
      "description": "Vald ledig tid (ISO 8601) från lediga_tider → direktbokning som blockerar slotten. Kräver kontakt med namn, epost och telefon.",
      "type": "string"
    },
    "langd_minuter": {
      "description": "Bokningens längd i minuter — sätt till summan av flera INTILLIGGANDE pass för en längre bokning (annars ärvs tjänstens standardlängd).",
      "type": "number"
    },
    "pass": {
      "description": "DELAD bokning: flera tillfällen (även spridda över dagar, t.ex. mån 14–16 + ons 08–12) som EN bokning med samma status och kund. Varje pass: start (ledig tid enligt lediga_tider, ISO 8601) + langd_minuter. Ersätter bekraftad_tid/langd_minuter.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string"
          },
          "langd_minuter": {
            "type": "number"
          }
        },
        "required": [
          "start"
        ]
      }
    },
    "tillval": {
      "description": "Id:n på tjänstens tillval som kunden vill boka till (t.ex. färgning, webbmaster). Extra tid läggs på bokningen; namn och pris snapshotas på avropet.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "kontakt": {
      "description": "Kundens kontaktuppgifter. Vid bokning krävs namn, epost och telefon; adress krävs dessutom när tjänstens platstyp är hos_kund (se lediga_tider).",
      "type": "object",
      "properties": {
        "namn": {
          "type": "string"
        },
        "epost": {
          "type": "string"
        },
        "telefon": {
          "type": "string"
        },
        "adress": {
          "type": "string"
        },
        "meddelande": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "orgnr"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪skapa_offertforfragan(profil, beskrivning, ort, kontakt, plats)

Skickar en GENERELL förfrågan (t.ex. "bygga ut altan i Skara"). AI strukturerar briefen; förfrågan tas emot av emils.design — företaget bakom Saightly — som återkommer till kunden med förslag eller kontakt till rätt verifierat bolag. För att nå ETT specifikt företag direkt, använd avropa_tjanst. KRÄVER kundens RIKTIGA e-post: kunden får ett bekräftelsemejl och förfrågan förmedlas FÖRST när adressen bekräftats — hitta ALDRIG på en adress, och meddela kunden att kolla sin inkorg. Giltiga branscher (profil): bygg, stad, it, konsult, transport, gront, kreativt, vard, generisk.

Input Schema

{
  "type": "object",
  "properties": {
    "profil": {
      "type": "string",
      "enum": [
        "bygg",
        "stad",
        "it",
        "konsult",
        "transport",
        "gront",
        "kreativt",
        "vard",
        "generisk"
      ],
      "description": "Bransch/profil för jobbet."
    },
    "beskrivning": {
      "type": "string",
      "description": "Kundens beskrivning av jobbet i naturligt språk (minst 15 tecken)."
    },
    "ort": {
      "description": "Ort där jobbet ska utföras (styr geografisk matchning).",
      "type": "string"
    },
    "kontakt": {
      "type": "object",
      "properties": {
        "namn": {
          "type": "string"
        },
        "epost": {
          "type": "string",
          "description": "Kundens e-post — dit offertsvaren skickas (krävs)."
        },
        "telefon": {
          "type": "string"
        }
      },
      "required": [
        "epost"
      ],
      "description": "Kundens kontaktuppgifter."
    },
    "plats": {
      "description": "Var uppdraget ska utföras. Utelämnad: företagen får fråga kunden.",
      "type": "object",
      "properties": {
        "typ": {
          "type": "string",
          "enum": [
            "pa_plats",
            "hos_foretaget",
            "distans"
          ],
          "description": "Var uppdraget utförs: hos kunden (pa_plats), hos företaget (t.ex. frisör/studio) eller på distans."
        },
        "adress": {
          "description": "Adress vid pa_plats (valfritt — visas bara för företagen).",
          "type": "string"
        }
      },
      "required": [
        "typ"
      ]
    }
  },
  "required": [
    "profil",
    "beskrivning",
    "kontakt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪las_offertforfragan(token)

Status och inkomna offerter för en tidigare skapad offertförfrågan (token från skapa_offertforfragan). Varje offert bär företag, verifiering, betyg, summa och pristyp (fastpris = bindande; budget = riktpris som stäms av innan start). Använd valj_offert för att välja vinnare.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Förfrågningstoken (returnerades av skapa_offertforfragan)."
    }
  },
  "required": [
    "token"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪valj_offert(token, offert_id)

Väljer vinnande offert på en offertförfrågan (id från las_offertforfragan). Vald → accepterad och företaget får kundens kontaktuppgifter; övriga avböjs vänligt och förfrågan stängs. Idempotent.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Förfrågningstoken."
    },
    "offert_id": {
      "type": "string",
      "description": "Offertens id (från las_offertforfragan)."
    }
  },
  "required": [
    "token",
    "offert_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools