> Every UQL docs page, as Markdown: https://uql-orm.dev/llms.txt
> The same docs over MCP: https://uql-orm.dev/mcp
> Before writing UQL code, read the skill: https://uql-orm.dev/.well-known/agent-skills/uql-orm/SKILL.md

# AI Coding Agents

> Give your coding agent the UQL skill, the docs as Markdown, and a docs MCP server, so it writes UQL for the version you installed.

Source: https://uql-orm.dev/ai-agents

Two things: the skill, which teaches it how UQL code is well written, and the docs, which it looks up as it goes.

Paste this into any coding agent and it does both, then proves it worked:

```text title="Setup prompt"
Set this repository up for UQL (uql-orm):
1. Add https://uql-orm.dev/mcp as an MCP server for this agent: HTTP transport, no key.
2. Add this line to AGENTS.md: Before writing UQL code, read `node_modules/uql-orm/skills/uql-orm/SKILL.md`: it matches the installed uql-orm.
3. Call the server's read_skill tool and tell me the first heading it returns.
```

Or do each half yourself.

## 1. Point it at the skill

`uql-orm` ships an [agent skill](https://uql-orm.dev/.well-known/agent-skills/uql-orm/SKILL.md): how a query is shaped, how entities are declared, the mistakes agents make most, and where each detail lives in these docs. It lives inside the package, so point your agent at it once and every `uql-orm` upgrade brings the skill for that version with it. Add this line to your project’s `AGENTS.md`, which Claude Code, Codex, Cursor, GitHub Copilot and most other agents read on their own:

```md title="AGENTS.md"
Before writing UQL code, read `node_modules/uql-orm/skills/uql-orm/SKILL.md`: it matches the installed uql-orm.
```

## 2. Let it look up the docs

### Over MCP

The docs MCP server at `https://uql-orm.dev/mcp` adds search, so the agent finds the right page without knowing its URL. All three tools are read-only, and it needs no key:

| Tool | What it answers |
| - | - |
| `search_docs` | The pages for a topic, most relevant first, with the passage that matched |
| `get_doc` | One page as Markdown, by the path `search_docs` gives or by its URL |
| `read_skill` | The skill above, for a client that cannot install one |

One click installs it in Cursor or VS Code:

[Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=UQL%20docs\&config=eyJ1cmwiOiJodHRwczovL3VxbC1vcm0uZGV2L21jcCJ9) [VS Code](vscode:mcp/install?%7B%22name%22%3A%22UQL%20docs%22%2C%22url%22%3A%22https%3A%2F%2Fuql-orm.dev%2Fmcp%22%7D)

In a terminal agent, one command:

Claude Code:

```sh
claude mcp add --transport http uql https://uql-orm.dev/mcp
```

Codex:

```sh
codex mcp add uql --url https://uql-orm.dev/mcp
```

In Claude.ai or Claude Desktop, add it as a custom connector (**Customize**, then **Connectors**). Any other client takes the same URL in its MCP settings.

### Or simply by URL, with nothing to set up

Every page here answers with Markdown when an agent asks for it, as Claude Code and Cursor do on their own. It is also Markdown at its own URL plus `.md`, such as [`/querying/relations.md`](https://uql-orm.dev/querying/relations.md), and the index of them all is [`/llms.txt`](https://uql-orm.dev/llms.txt). An agent that can fetch URLs needs nothing more than that index:

```text
Before writing UQL code, read https://uql-orm.dev/llms.txt and fetch the pages for the task.
```

To load the whole site in one go instead, [`/llms-full.txt`](https://uql-orm.dev/llms-full.txt) is every page in one file.
