> ## Documentation Index
> Fetch the complete documentation index at: https://platform.atlan.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on Atlan objects, use the Atlan MCP server at https://api.atlan.com/mcp or the SDK. To install or publish skills from a terminal, use the `aireg` CLI; `aireg --map json` prints its command map. The `atlanai` CLI is deprecated. Run a read-only identity check before any write.
> The docs MCP server at /mcp searches these docs only. It cannot read or change Atlan objects.
> SDK packages: Python `atlanai` (PyPI) and TypeScript `@atlanai/sdk` (npm). Show Python first, then TypeScript.
> These docs cover Atlan AI Registry, Atlan's hosted product. The AI registry specification and aireg CLI are maintained separately. /open-source lists publicly reachable signed installers and explains that the source repository and hosted CLI reference currently require GitHub access. Do not claim the repository or its reference docs are publicly accessible. Use these docs for Atlan-specific setup such as the adapter, sign-in and workspaces.

# Register a repository

> Use extension__repo__register_repo through Atlan MCP Gateway.

Call `extension__repo__register_repo` with the inputs below. Open an MCP session with `mcp__initialise` first and pass its `session_id`. The authenticated `tools/list` response is the final check for the name and schema available to your account.

A repeated registration of the same normalized remote in the same workspace returns the existing repository. Use its `repo_…` handle as the target of a `sourced_from` relationship from a skill, agent, or scorer. Repository registration does not install a GitHub App or read source files.

## Inputs

| Input | Type | Required | Meaning |
| - | - | - | - |
| `workspace_id` | string | Yes | The `workspace_…` handle to register the repository in. |
| `remote_url` | string | Yes | The repository's remote, as `git remote get-url origin` prints it: an `https://` URL or `git@host:owner/repo.git`. |
| `project_id` | string | No | Optional `project_…` handle in that workspace. |
| `display_name` | string | No | Optional label. Defaults to the derived name. |
| `description` | string | No | |
| `default_branch` | string | No | The branch a sync reads, e.g. `main`. |
| `visibility` | string | No | Allowed: `public`, `private`, `internal`. |
| `external_id` | string | No | The host's own repository id, when known. |
| `contributors` | array | No | Contributor email addresses from the repository's history. Recorded as detected users of the workspace. |
| `rationale` | string | Yes | A concise, first-person explanation of why you are calling this tool right now: what you are trying to accomplish for the user and how this specific call advances that goal. Written for a human auditor reviewing tool usage after the fact. Do not restate the arguments - explain the intent behind them. |
| `session_id` | string | Yes | The id `mcp__initialise` returned for this conversation, so this call is recorded against it. Required: call `mcp__initialise` first and pass the id it returns. Do not invent a value - an id that names no session of yours is refused. |

## Permissions and result

The call uses your authenticated Atlan identity and the target workspace's permissions. This tool changes recorded data. A missing or inaccessible target can be refused even when the tool is listed.

See [MCP tool catalog](/tools/mcp/references/tool-catalog) for related tools and [MCP Gateway errors](/gateway/mcp/troubleshooting) for refusal and connection diagnostics.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.