<!-- Generated by full-example docs mcp --save; do not edit. -->

# MCP server (full-example)

full-example exposes an MCP server with features similar to the CLI.

## Installation

### `.agents` auto-install

When `mcpServer.enabled` is set, `configure install` merges this server into `~/.agents/mcp.json` per the https://dotagentsprotocol.com.

Install the CLI first so `full-example` is on your PATH (e.g. `brew install full-example`).

```bash
full-example configure install
```

Writes or updates `~/.agents/mcp.json` with a `mcpServers` entry for this app.

### Manual client setup

Many clients do not read `~/.agents/mcp.json` yet. Copy the `mcpServers` entry from that file, or paste:

```json
{
  "mcpServers": {
    "full_example": {
      "command": "full-example",
      "args": [
        "mcp"
      ]
    }
  }
}
```

| Client | Config file |
| --- | --- |
| **Cursor** | `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project) |
| **Claude Code** | `~/.claude.json` under `mcpServers`, or project `.mcp.json` |
| **Claude Desktop** | See platform paths below |

Restart Cursor or reload MCP after editing. Restart Claude Desktop after config changes.

Claude Desktop config paths:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux:** `~/.config/Claude/claude_desktop_config.json`

On this machine (macOS/Linux): `/Users/briandombrowski/Library/Application Support/Claude/claude_desktop_config.json`

### Manual `mcpServers` entry

Same shape as in `~/.agents/mcp.json`:

```json
{
  "mcpServers": {
    "full_example": {
      "command": "full-example",
      "args": [
        "mcp"
      ]
    }
  }
}
```

## Running directly

Start the stdio MCP server without editing host config:

```bash
full-example mcp
```

## Environment

- **`shellEnv`** — on by default; captures login-shell environment at MCP startup (PATH, toolchain shims, exports). Opt out with `shellEnv: false`.

## What agents get

| Mechanism | Purpose |
|-----------|---------|
| `tools/list` | Callable tools for exposed leaf commands |
| `tools/call` | Runs handlers headlessly; JSON stdout becomes `structuredContent` when valid |
| Schema resource | `full_example://schema` — same JSON as `full-example docs cli-schema` |
| Docs topic `readme` | `full_example://docs/readme` — same markdown as `full-example docs readme` |

## Exposed tools

- `full-example echo` — echo — Echo a message (MCP-friendly leaf).
- `full-example status` — status — Show app version.

## Tool arguments

Arguments are a flat JSON object keyed by long option and positional names (hyphenated option names are valid keys).
See `full-example docs cli-schema` or the schema resource for per-tool shapes.

Varargs positionals accept a JSON array of strings (not a comma-separated string).
Options with `format: comma-list` accept a comma-separated string or JSON array.
Options with a schema `default` are applied when omitted.

## Protocol

Stdio NDJSON JSON-RPC. Help and `docs cli-schema` are not available through tool calls.
Run `full-example docs` for bundled user documentation.
