---
title: FAQ
description: Frequently asked questions. Feel free to ask more.
---

## What does an agent actually call?
An agent has seventeen tools over MCP: `list_entities` for the shortlist,
`get_entity` for one entity, `get_skill` for the team's skills,
`search_entities` for partial wording, `request_entity` to ask the admins for
context the workspace does not hold, and the write tools, one per type.
Every write targets an id from a prior read; names are never resolved and
ids are never guessed. The full table is on
[Connector](/concepts/connector).

## How are skills different from everything else?
Skills have their own tool, `get_skill`, apart from everything else. The
shortlist says what the team knows; the skill index says how they want things
done. On every response, the shortlist reports how many skills it left out,
so an agent never has to guess whether there are any.

## What does "current" mean here?
A read never says whether content is current or out of date. An entity can
declare how often the team expects new content (daily, weekly, monthly,
quarterly), and reads then show that beside the date of the latest content:

```
update expectation: expected daily; last observation 2026-09-03T08:20:00.000Z
```

The line states a fact and passes no verdict. It does not
track gaps, predict the next update or tell an agent to refuse. See [Data model](/concepts/data-model).

## What happens when two agents write the same text?
A text write carries the version the writer read. If someone wrote in
between, Foundation refuses the write and returns the real current version,
and the agent re-reads and re-applies its change. No write silently
overwrites another.

## What happens when a write is refused?
The refusal carries a code for the agent to branch on and a plain sentence
for the person. Three codes mean the caller's *standing* was refused, not the
call: not permitted, not an admin, not the owner. Those are marked
non-retryable; the agent stops and relays the sentence, which names who was
refused, who may write, and who can change that.

## Can an agent tell that something is hidden from it?
It cannot. A hidden entity, a nonexistent one and one in another workspace
answer the same way. A miss does not prove the workspace lacks the concept. The
agent passes the names it looked for in `seeking`, and Foundation records
every miss for the admins. See [Requests](/concepts/requests).

## Why does a request get a 406?
The request offered only `application/json`. Every request must send
`Accept: application/json, text/event-stream`. Foundation refuses the request
before any tool runs and records no audit row, so it is not an authorization
problem.

## What does a 401 mean for a headless writer?
A courier's connection key never expires, so a 401 means it was withdrawn:
the job stops and tells whoever issued it. Retrying cannot help.

## Where do the instructions an agent reads come from?
They come from two places that never mix. Foundation's own manual ships with
the product. It is identical in every workspace, and nobody in yours can edit
it. An agent fetches it with `get_manual`, and it is also public at
`/manual/<chapter>` on your workspace. Skills are written by your team, one entity each, versioned and
editable by whoever their rules allow.

## What does Foundation not do?
It does not run a model; nothing in it calls one. It does not search the
world; it answers from what the team put in it. It is not a wiki; the
shortlist plus the tag index is the whole navigation surface. It does not
check that anyone told the truth; it enforces who may write what and records
who did.

## Is there a Claude Code setup?
Install the connector in Claude.ai and it is available in Claude Code on the
same account. To pin a workspace to a repository for everyone who opens it,
commit a `.mcp.json` naming the connector URL; each person signs in once.

## Can I run it myself?
Yes, you can run it on your own infrastructure. [Self-hosting](/self-hosting) says what you bring.
