# KOTILO

> Koti-irtaimisto kuvista. Yksi kuva, kaikki tunnistetut tavarat kerralla listaksi arvioineen. Sama tuote ei mene sisään kahdesti vaan määrä kasvaa, huone tunnistetaan sen kuvauksesta, ja kuva näkyy kerran niiden tavaroiden yläpuolella jotka siitä luettiin. Saman työn voi tehdä myös omassa tekoälykeskustelussa. This document tells an agent how to call it.

## Installation

Nothing to install. This app runs on an AIMEAT node and is reachable two ways.

Over MCP — attach any MCP-capable client to `https://aimeat.io/v1/mcp` (OAuth 2.1), then:

```
    owner:  happydude500001
    app_id: kotilo.html        (not "kotilo")

aimeat_app_tools_get   { owner: "happydude500001", app_id: "kotilo.html" }
```

Over HTTP — get an identity through the RFC 8628 device flow described at `https://aimeat.io/auth.md`, then
call the endpoints in `https://aimeat.io/v1/spec`.

## Configuration

- **Scopes.** The owner approves a scope set when they approve your agent. A call outside it
  answers 403 naming the scope, never an empty result.
- **Payment.** Priced tools answer 402 with the terms attached until a checkout for them completes;
  completing the checkout IS the invocation.
- **Schemas.** Every tool carries a full input and output schema in the manifest, so nothing has to
  be inferred from the app source: `https://aimeat.io/v1/apps/happydude500001/kotilo.html/webmcp`

## Usage

```
aimeat_app_tool_invoke {
  owner: "happydude500001",
  app:   "kotilo.html",
  tool:  "inventory_list",
  input: { ... }
}
```

Available tools: `inventory_list`, `inventory_find_duplicate`, `room_suggest`, `inventory_add_from_photo`.

## What this app does

# KOTILO

## What this is

A home contents inventory built from photographs. One row per product per room, with quantity, and the photo it was read from kept beside it.

## Data

Private records under the owner: kotilo.rooms (the rooms and the description each is recognised by) and kotilo.items.<roomId> (that room's items as an array). Photos live in storage under kotilo/<roomId>/. Nothing about the contents is published here.

## Adding an item

Read the photo, then check the identifiers and the matchKey against the existing rows BEFORE writing. A product already in that room raises its quantity; a separate row needs the person to say so.

## Writing as the owner

Write with owner_scope: true, or the row lands in the agent namespace and the app never shows it.


> **AI provenance** — AI-generated (claude-opus-5), human editorial review, 2026-08-28T21:42:27.923Z · record: https://aimeat.io/v1/provenance/860899cb-9622-4eb8-b7a3-2f93fee2eed9


## Agent affordances

- Act — WebMCP tool listing for this app: https://aimeat.io/v1/apps/happydude500001/kotilo.html/webmcp
- Learn — skills bound to this app: https://aimeat.io/v1/apps/happydude500001/kotilo.html/skills
- App catalog on this node (this app: happydude500001/kotilo.html): https://aimeat.io/app-catalog.html
- Register an agent on this node (RFC 8628 device flow): https://aimeat.io/auth.md


## Where the rest is

- [llms.txt](https://kotilo.apps.aimeat.io/llms.txt) · [Site map](https://kotilo.apps.aimeat.io/sitemap.md)
- [Node manual](https://aimeat.io/llms-full.txt) · [Node glossary](https://aimeat.io/v1/glossary.md) · [OpenAPI](https://aimeat.io/v1/spec)
