AstraNL

Evidence-checked context and NL coordination for AI agents. AstraNL never holds third-party funds.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
86%
Calidad de los nombres
94%
Riesgo de envenenamiento
100%
Coincidencia de permisos
90%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falseen fetch

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,365Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto moderado en la atención (1.07% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "mcp": {
      "url": "https://astranl.com/mcp/sse"
    }
  }
}

Puntos de conexión remotos

https://astranl.com/mcp/ssesse
https://astranl.com/mcp/streamablestreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢ground_astranl(query, source, max_items, budget_ms, max_age_seconds, ...)

Get compact, source-linked real-world context for an LLM in ONE read-only call. Searches AstraNL public materials or tender records, or its protocol identity. Use source=public_tenders for tenders, materials for products; auto keeps domains separate. Returns record update times, fresh/stale/unknown labels, record disagreements, coverage gaps and ready-to-use context_text. Never books, contacts or pays anyone. Not a general web search: no match is not proof of absence; a cached price is not a quote. Optional astranl.reality-link.v2 profile checks exact source-record claims. It does not promote registry records to independently verified real-world facts. official.deadline on tender:TED-* records is checked live at the EU publisher (TED), budgeted and cached; unavailable means UNKNOWN.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 1600,
      "description": "Short subject, product keywords or identifier; all product keyword groups must match."
    },
    "source": {
      "type": "string",
      "enum": [
        "auto",
        "materials",
        "public_tenders",
        "protocol_identity",
        "all"
      ],
      "default": "auto",
      "description": "v1: auto, materials, public_tenders, protocol_identity or all. v2 requires an explicit materials, public_tenders or protocol_identity."
    },
    "max_items": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "default": 6,
      "description": "v1 only; v2 looks up at most 12 records and refuses max_items."
    },
    "budget_ms": {
      "type": "integer",
      "minimum": 50,
      "maximum": 1500,
      "default": 750
    },
    "max_age_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 604800,
      "default": 86400
    },
    "protocol": {
      "type": "string",
      "enum": [
        "astranl.reality-link.v2"
      ],
      "description": "Omit for the v1 context call. Set to astranl.reality-link.v2 together with claims to check typed claims against source records."
    },
    "claims": {
      "type": "array",
      "minItems": 1,
      "maxItems": 16,
      "description": "v2 only. Each claim names a record id from a previous result, a predicate and the expected value.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "record_id",
          "predicate",
          "expected"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "record_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "predicate": {
            "type": "string",
            "enum": [
              "record.title",
              "record.brand",
              "record.listed_price",
              "record.stock_reported",
              "record.closing_date",
              "reality.stock_available",
              "reality.delivery_by",
              "reality.suitable_for",
              "official.deadline"
            ]
          },
          "expected": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 600
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "amount",
                  "currency"
                ],
                "properties": {
                  "amount": {
                    "type": "string",
                    "pattern": "^\\d{1,10}(\\.\\d{1,2})?$"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  }
                }
              }
            ]
          }
        }
      }
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢ask_astranl(question)

NO-COMMITMENT reality feasibility check. Describe a real-world task (what, where, by when, budget) and AstraNL answers whether it can execute it in the Netherlands through humans, companies, robots or machines: possible, execution_paths, estimated_range, missing information, coordination_fee (1 percent on the completed transaction, client pays the executor directly), next_action. Read-only: nothing is created, contacted or authorized. General questions about AstraNL capabilities are answered too.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "maxLength": 400
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false
}
🟡create_task(need, location, deadline, proof, budget_cents, ...)

Create and register a real-world execution task via agent-hands.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "need": {
      "type": "string",
      "maxLength": 800
    },
    "location": {
      "type": "string",
      "maxLength": 200
    },
    "deadline": {
      "type": "string",
      "maxLength": 100
    },
    "proof": {
      "type": "string",
      "maxLength": 400
    },
    "budget_cents": {
      "type": "integer",
      "minimum": 100
    },
    "reply_channel": {
      "type": "string",
      "maxLength": 300
    },
    "synthetic": {
      "type": "boolean"
    }
  },
  "required": [
    "need"
  ],
  "additionalProperties": false
}
🟡check_task(task_id, receipt_id)

Check the status of a registered task, or of a durable ingress receipt (receipt_id from create_task): returns what has actually happened after the receipt, nothing more.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "maxLength": 40
    },
    "receipt_id": {
      "type": "string",
      "maxLength": 40
    }
  },
  "additionalProperties": false
}
🟢get_evidence(task_id)

Retrieve cryptographic evidence chain for a task.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "maxLength": 40
    }
  },
  "required": [
    "task_id"
  ],
  "additionalProperties": false
}
🟢search(query)

Search AstraNL coordination data (robots registry, service categories, and merchant parts by keyword). Returns a list of results, each with an id and a short title/snippet, for use with the fetch tool. Read-only. This is the generic discovery entry point expected by agent frameworks.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 120,
      "description": "Free-text search query."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢fetch(id)

Fetch the full record for a single result id returned by search (robot passport, category detail, or merchant SKU). Read-only.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 120,
      "description": "Result id from search (e.g. robot:DJI-Matrice, sku:16759:Green-flor)."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas
verificadoversión no registrada7 herramientas
verificadoversión no registrada6 herramientas
verificadoversión no registrada6 herramientas