Is Kolmo MCP server safe?
Yes, with the usual care.
Safe to use. Minor gaps such as a missing repository or slower maintenance.
What to know before installing
- highWrite-action tools reachable without authentication
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
1 high1 low
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 356ms20/20
- Tool poisoning36 tool descriptions checked13/15
- Auth qualityopen endpoint exposes 2 write-action tools with no auth3/15
- Maintenancelast push 3 days ago15/15
- Maintainer identitynamespace and repository owner differ; website matches verified namespace5/10
Findings (2)
- highWrite-action tools reachable without authentication
auth.open-write - lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool get_estimate: …Seattle cost estimate: range, material/labor split, days, line items. ?=optional; (mat)=get_material_options ID (a unique close name also resolves; an ambiguous one lists candidates). interior-painting: rooms([{id,name,length,width(ft),height(6-30),paintCeiling,paintTrim,doorCount,windowCount,surfaceCondition(new-drywall|good-condition|poor-condition),trimComplexity(baseboards-only|simple-trim|complex-trim),wallTexture(smooth|light-texture|heavy-texture),roomEmpty}]); paintQuality(mat); paintFinish(flat|eggshell|satin|semi-gloss|gloss); includesPrimer; majorColorChange?(+colorChange{currentColor,targetColor}) exterior-painting: wallArea,trimArea(sqft); doorCount; paintQuality(mat); surfacePrepLevel(minimal|moderate|extensive); includesPrimer; stories?(1-3); colorChange?(+colorChangeData{currentColor,targetColor}) flooring: rooms([{id,name,length,width(ft)}]); flooringMaterial(mat); includesUnderlayment,includesBaseboard,includesRemoval,includesSubfloorPrep; underlaymentType?,baseboardType?(mat); baseboardLinearFeet?(default perimeter); removalType?(carpet|tile|hardwood); transitionCount? deck: deckType(new|existing); dimensions({length,width≤200,height≤30 ft}); deckingMaterial(mat: composite-decking…); framingMaterial(mat); includesRailing,includesStairs; railingMaterial?,finishType?(mat); railingLinearFeet?; stairSteps?(1-30); landingRequired?; deckShape?(rectangle|l-shape|angled-corners|multi-level); skirtingType?(none|lattice|matching-board); existingDeckWorkItems?(existing: ≥1 of stainOrSeal,inspection,replaceFlooring(+_area),replacePosts(+_count),addOrReplaceRailing(+_linearFeet),repairFraming(+_area)) windows: windows([{id,windowType(double-hung|single-hung|casement|slider|awning|picture|bay|bow or row id),width,height(12-120 in),quantity}]); qualityLevel(standard|premium|luxury → vinyl|fiberglass|wood-clad); includesTrimWork,includesRemoval,energyEfficient; trimMaterial?(mat) siding: wallArea(sqft); sidingMaterial(mat); homeHeight(single-story|two-story|three-story); includesInsulation,includesRemoval,soffit; insulationType?(mat); existingSidingType?; trimLinearFeet; soffitLinearFeet?(with soffit) fence: linearFeet; fenceMaterial(mat); height(3-8 ft); gateCount; gateWidth?(ft); style?; terrain(flat|sloped|mixed); includesRemoval,concreteFootings landscaping: yardArea(sqft); includesIrrigation,includesSod,includesMulch,includesSitePrep; irrigationType?; irrigationZones?(with irrigation); sodSquareFeet?(with sod); mulchSquareFeet?(default yardArea); plants?([{id,plantType,quantity,size(small|medium|large)}]); hardscapeFeatures?([{id,featureType,squareFeet,material}]) kitchen: kitchenSize(40-600 sqft); scope(cosmetic|standard|full-gut); cabinets(keep|reface|prefab|semi-custom|custom); countertop(keep|laminate|butcher-block|quartz|granite|marble); appliances(keep|budget|mid-range|premium); flooring(keep|lvp|tile|hardwood); backsplash?,plumbingRelocation?,electricalUpgrade?,island?,lighting? bathroom: bathroomType(half-bath|full-bath|primary-bath|accessible); bathroomSize(20-300 sqft); scope(cosmetic|standard|full-gut); showerTub(keep|tub-to-shower|walk-in-shower|tub-replacement|freestanding-tub); vanity(keep|budget|mid-range|premium); tileWork(none|floor-only|floor-and-shower|full-tile); heatedFloors?,newLighting?,ventilation?,plumbingRelocation? basement: basementSize(150-3000 sqft); scope(open-rec-room|standard-finish|full-suite); ceilingHeight(under-7ft|7-to-8ft|over-8ft); moistureCondition(dry|minor-dampness|active-water); egress(has-egress|needs-egress|not-required); bathroom(none|half-bath|full-bath); kitchenette(none|wet-bar|full-kitchenette); bedroomCount?; flooring(lvp|carpet|polished-concrete|tile); insulation(existing|walls-only|walls-and-ceiling); hvac(extend-existing|mini-split|none-needed); electricalSubpanel?,homeAgePre1978? adu: type(dadu|aadu|basement-conversion|garage-conversion); sizeSqft(200-1200, dadu ≤1000); finishTier(builder|standard|premium); dadu only: foundation?(slab|crawl|stem-wall),sitework?(minimal|standard|heavy),utilityRunFeet?,preApprovedPlan?; treeRemovalCount?; homeAgePre1978?(not dadu) ada: projectScope(single-room|whole-home|bathroom-specific); modifications({grabBars,walkInShower,widerDoorways,ramp,nonSlipFlooring,leverHandles,raisedToilet,rollUnderSink,accessibleCounters,stairLift}, ≥1 true); currentCondition(minor|moderate|major); homeStories?(1-3); doorwayCount?; rampLengthFeet?; flooringSquareFeet? electrical: items[{id,quantity}] (ids: get_material_options) plumbing: items[{id,quantity}] (ids: get_material_options) garage-doors: items[{id,quantity}] (ids: get_material_options) doors: items[{id,quantity}] (ids: get_material_options) concrete: items[{id,quantity}] (ids: get_material_options) insulation: items[{id,quantity}] (ids: get_material_options) gutters: items[{id,quantity}] (ids: get_material_options)…
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON