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

> Crea una nueva herramienta en el ambiente.

# Tools create

## Endpoint

`POST https://gateway.orkeia.ai/tools`

**Autenticación**\
Requiere el encabezado `authorization:  <tu_token>`.

## Cuerpo de la Solicitud (JSON)

> El servicio espera un **envoltorio** con la propiedad `tool`. (El `environment` se maneja en el servidor.)\
> **Atención:** el campo `type` **no** existe en esta interfaz. Utilice los campos definidos en `Tool` (abajo).

```json theme={null}
{
  "tool": {
    "name": "Mi Herramienta",
    "description": "Descripción de la herramienta",
    "code": "export async function run(input){ return { ok: true }; }",
    "entryFunctionName": "run",
    "sectors": ["engineering", "legal"],
    "publisher": "Orkeia",
    "enabled": true,
    "environments": ["prod"],
    "mcp": {
      "url": "https://tools.orkeia.ai/my-tool",
      "transport": "sse"
    }
  }
}
```

## Ejemplo (cURL)

```bash theme={null}
curl -X POST "https://gateway.orkeia.ai/tools"   -H "authorization:  <tu_token>"   -H "Content-Type: application/json"   -d '{
    "tool": {
      "name": "Mi Herramienta",
      "description": "Descripción de la herramienta",
      "code": "export async function run(input){ return { ok: true }; }",
      "entryFunctionName": "run",
      "sectors": ["engineering", "legal"],
      "publisher": "Orkeia",
      "enabled": true,
      "environments": ["prod"],
      "mcp": {
        "url": "https://tools.orkeia.ai/my-tool",
        "transport": "sse"
      }
    }
  }'
```

## Respuestas

### Response - Éxito

```json response theme={null}
{
  "status": "OK",
  "data": { "id": "TOOL_123456" }
}
```

### 500 — Error del Servidor

```json theme={null}
{
  "status": "ERROR",
  "code": "server/error",
  "data": null
}
```

### 400 — Error del Cliente

```json theme={null}
{
  "status": "ERROR",
  "code": "client/error",
  "data": null
}
```

## Interfaz de Referencia (`Tool`)

```ts theme={null}
export interface Tool {
  id?: string;
  name: string;
  description: string;
  code?: string;
  entryFunctionName?: string;
  sectors: string[];
  publisher: string;
  enabled: boolean;
  environments: string[];
  mcp?: {
    url: string;
    transport: 'sse' | 'streamable-http';
  };
}
```

## Campos

| Nombre            | Tipo                         | Obligatorio | Descripción                                                    | Ejemplo                                |
| ----------------- | ---------------------------- | ----------- | -------------------------------------------------------------- | -------------------------------------- |
| id                | string                       | No          | Identificador único (retornado por el backend).                | `TOOL_123456`                          |
| name              | string                       | Sí          | Nombre de la herramienta.                                      | `Mi Herramienta`                       |
| description       | string                       | Sí          | Descripción corta sobre la funcionalidad.                      | `Ejecuta operaciones de integración`   |
| code              | string                       | No          | Código fuente ejecutable de la herramienta (cuando aplicable). | `export async function run(){...}`     |
| entryFunctionName | string                       | No          | Nombre de la función exportada en `code` que será invocada.    | `run`                                  |
| sectors           | string\[]                    | Sí          | Sectores autorizados a utilizar la herramienta.                | `["engineering","legal"]`              |
| publisher         | string                       | Sí          | Publicador/organización responsable.                           | `Orkeia`                               |
| enabled           | boolean                      | Sí          | Indica si la herramienta está habilitada.                      | `true`                                 |
| environments      | string\[]                    | Sí          | Ambientes en los que la herramienta está disponible.           | `["prod","staging"]`                   |
| mcp               | objeto                       | No          | Configuración para uso via Model Context Protocol (MCP).       | `{ "url": "...", "transport": "sse" }` |
| mcp.url           | string                       | No          | URL del servidor MCP.                                          | `https://tools.orkeia.ai/my-tool`      |
| mcp.transport     | `'sse' \| 'streamable-http'` | No          | Tipo de transporte MCP soportado.                              | `sse`                                  |
