# Tools reference

> The nine tools your MCP server exposes, with their parameters and what each returns.

These are the tools of [your MCP server](/docs/mcp/quickstart). Every one runs on your own AI, with your private context. Each one is marked with the behavior hints MCP clients use to decide when to ask before calling it.

The [uare.ai Experts MCP server](/docs/mcp/experts) has three tools of its own, for visitors: see [its tools](/docs/mcp/experts#tools).

| Tool | Does | Behavior |
| --- | --- | --- |
| [`generate_post`](#generate_post) | Drafts a social post in your voice | Drafts text |
| [`respond_as_me`](#respond_as_me) | Drafts a reply in your voice | Drafts text |
| [`decide`](#decide) | Applies your decision framework | Drafts text |
| [`refuse`](#refuse) | Checks whether your AI would decline a request | Read-only |
| [`act`](#act) | Works through your connected apps | Reads now, stages writes |
| [`confirm_action`](#confirm_action) | Carries out a staged write | Writes |
| [`learn`](#learn) | Queues a fact for your AI's knowledge | Queues for review |
| [`list_skills`](#list_skills) | Lists your skills and preferences | Read-only |
| [`get_skill`](#get_skill) | Reads one skill in full | Read-only |

## generate_post

Composes a social media post in your voice. Your AI draws on its knowledge and your voice profile and returns the finished post. It doesn't publish anything.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `topic` | string | Yes | What the post is about. |
| `platform` | string | No | Target platform, for example `linkedin`, `twitter` or `instagram`. Defaults to `linkedin`. |
| `length` | string | No | `short` (about 100 words), `medium` (about 200) or `long` (about 400). Defaults to `medium`. |
| `anchors` | string[] | No | Personal experiences or themes to weave in. |

Returns `post`, `platform` and `word_count`.

## respond_as_me

Drafts a reply to a message in your voice, using what your AI knows about you and the people you work with.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | Yes | The message to reply to. |
| `channel` | string | No | Where the reply goes, for example `email`, `slack` or `text`. Defaults to `email`. |
| `intent` | string | No | What the reply should achieve. |

Returns `response` and `channel`.

## decide

Weighs options against your values, goals and past decisions, and returns a decision with its reasoning.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `situation` | string | Yes | The decision to make. |
| `options` | string[] | Yes | The options to choose from. |

Returns `decision`.

## refuse

Checks, without doing anything, whether a request fits your values. Agents can call it before an action tool.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `request` | string | Yes | What's being asked. |

Returns `would_refuse` (a boolean) and `reason`.

## act

Asks your AI to do something through the apps you've connected in uare.ai, such as Gmail or Google Drive. Your AI picks the app and the action itself.

- **Reads** (search, fetch, list) run right away.
- **Writes** (send, create, delete) don't run here. Your AI returns a plan in `pending_actions`, with a `confirmation_token` you pass to [`confirm_action`](#confirm_action).

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `intent` | string | Yes | What you want done, for example "check my latest emails from my accountant". |

Returns `response`, plus `pending_actions` when a write is waiting for confirmation.

## confirm_action

Carries out a write that [`act`](#act) staged. A token works once and expires about 10 minutes after `act` returned it.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `confirmation_token` | string | Yes | The token from `act`'s `pending_actions`. |

Returns `executed`, `actions` and `result`.

> [!IMPORTANT]
> This is the only tool that changes anything outside uare.ai. MCP clients mark it as destructive, so most will ask you before calling it.

## learn

Queues a new fact about you for your AI's knowledge. The fact is reviewed before it becomes part of what your AI knows.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | Yes | The fact, in plain language. Up to 2,000 characters. |
| `dimension` | string | Yes | One of `identity`, `world`, `story`, `mindset`, `drive`, `pattern` or `growth`. |
| `confidence` | number | No | How sure you are, from `0` to `1`. Defaults to `0.7`. |

Returns `pending_fact_id` and `status`: `pending_approval` when the fact is waiting for review, or `queued_locally` when uare.ai couldn't queue it yet and retries in the background.

## list_skills

Lists your skills and preferences: the markdown files you write to guide your AI. No parameters.

Returns a list of entries with `name`, `type` (`skill` or `preference`), a short `preview` and `size` in bytes. An entry with `hidden: true` is a learned skill your AI doesn't use: its preview reads `[hidden]`, and `get_skill` won't return it.

## get_skill

Returns one skill or preference in full, including its YAML frontmatter.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | Yes | The name from `list_skills`. |

Returns `name`, `content` and `type` (`skill` or `preference`). Preferences are rules your AI always applies to itself; reading one tells an agent what your AI is working under.
