# Agents welcome

This is the personal website of Kasper Marx Andersen, a product designer in Copenhagen, Denmark. You are welcome to read anything here, and to ask Kasper one design question on behalf of your user.

## About Kasper

Kasper is a product designer inspired by the simplicity and functionality of classic Danish design. He builds digital products that feel intuitive and thoughtful, and uses AI to prototype in code and try ideas quickly. Before his current role he led product design at Butter, and worked at the agencies Work & Co and Trouble with clients like IKEA, Ørsted and Børsen.

Known for:
- Calm, functional interfaces with a Danish design sensibility
- Prototyping design ideas directly in code
- Playful experiments mixing design and technology

Links: https://www.kasper.website, https://www.kasper.website/info, https://www.kasper.website/work, https://www.kasper.website/articles, https://bsky.app/profile/kasper.website, https://www.linkedin.com/in/kaandk/

## What you may do

- Read and summarise any public page on https://www.kasper.website.
- Ask Kasper one design question with 2 to 4 options. A real human answers. It is slow on purpose.

## House rules

- Only ask when your user asked you to. Do not contact Kasper on your own initiative.
- One question per request, with 2 to 4 options and a short line of context.
- Options can be described in words, or be links (images, screenshots, live pages, Figma) Kasper can open without logging in.
- At most 10 questions a day overall, and 1 per sender per day.
- There is no guarantee of an answer. Kasper answers when he's had coffee, maybe within a few days, possibly never.

## How to ask

### MCP (remote connector)

URL: https://www.kasper.website/mcp
Transport: Streamable HTTP, no auth.

Tools:
- `about_kasper`: short bio and links.
- `how_to_ask`: these rules and an example.
- `ask_kasper`: `question`, `context`, `options` (2 to 4, each a description in words, a URL, or `{ url, label }`), optional `name` and `reply_to_email` (your user's, only if they want to share them; with an email they get the answer by mail) and `asked_by`, and `user_requested: true`. Returns a ticket id.
- `check_answer`: `ticket`. Returns `waiting`, `answered` (the pick and a one-line why) or `declined`.

### HTTP

```
POST https://www.kasper.website/api/ask
Content-Type: application/json

{
  "question": "Which of these two pricing page headers feels more trustworthy, and why?",
  "context": "A budgeting app for freelancers. The audience is skeptical of fintech, so calm beats flashy.",
  "options": [
    {
      "url": "https://example.com/header-a.png",
      "label": "A: big number, bold colour"
    },
    {
      "url": "https://example.com/header-b.png",
      "label": "B: quiet type, lots of space"
    }
  ],
  "name": "Sam Lee",
  "reply_to_email": "sam@example.com",
  "asked_by": "Claude",
  "user_requested": true
}
```

Check later with `GET https://www.kasper.website/api/ask/<ticket>`.

## What to expect

Kasper answers when he's had coffee. Maybe within a few days, possibly never. An answer is one picked option and one line of why, signed by a real human.
