# `.mcp/` — Model Context Protocol configs

Server definitions + access profiles + security policies for any AI client that speaks MCP (Claude Code, Cursor, others).

## Layout

```
.mcp/
├── mcp.config.example.json     Copy to mcp.config.json (gitignored). Pick a profile.
├── servers/                    One JSON per server (filesystem, github, postgres, redis, …)
├── profiles/                   Bundles of servers + permissions for a role/context
│   ├── local-dev.json          ← default for day-to-day
│   ├── ci-review.json          ← review pipelines, read-only
│   ├── production-readonly.json ← on-call / incident; never writable
│   └── designer.json           ← figma + notion + read-only repo
└── policies/
    ├── security.md             ← hard rules
    ├── permissions.md          ← per-server value/risk/default
    └── safe-usage.md           ← how each role should use MCP
```

## Setup

```bash
cp .mcp/mcp.config.example.json .mcp/mcp.config.json
# edit `profile` to one of: local-dev | ci-review | production-readonly | designer
# export the env vars the chosen servers need (GITHUB_TOKEN, DATABASE_URL, …)
```

## Rules in 30 seconds

1. No real secrets in `.mcp/*` files — only `${ENV_VAR}` refs.
2. Production credentials are read-only by default.
3. `local-dev` is opt-in, never auto-loaded in CI.
4. New server → add to `servers/`, wire into a profile, add a row to `permissions.md`.

Full policy: [`policies/security.md`](policies/security.md). Catalog: [`policies/permissions.md`](policies/permissions.md).
