Crawler Summary

astranl-mcp answer-first brief

Physical world coordination API for AI agents — MCP server + REST + LangChain + CrewAI AstraNL — Physical World Coordination API for AI Agents Give your AI agent hands. AstraNL connects LLMs to real humans who do real work. $1 $1 $1 What is AstraNL? AstraNL is a **protocol-governed coordination infrastructure** that lets AI agents create, manage, and pay for real-world tasks — cleaning, painting, plumbing, delivery, and more across the Netherlands. Your agent sends an intent. AstraNL: 1. Parses and str Capability contract not published. No trust telemetry is available yet. Last updated 4/17/2026.

Freshness

Last checked 4/17/2026

Best For

astranl-mcp is best for crewai, multi-agent workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB REPOS, runtime-metrics, public facts pack

Agent DossierGITHUB REPOSSafety: 66/100

astranl-mcp

Physical world coordination API for AI agents — MCP server + REST + LangChain + CrewAI AstraNL — Physical World Coordination API for AI Agents Give your AI agent hands. AstraNL connects LLMs to real humans who do real work. $1 $1 $1 What is AstraNL? AstraNL is a **protocol-governed coordination infrastructure** that lets AI agents create, manage, and pay for real-world tasks — cleaning, painting, plumbing, delivery, and more across the Netherlands. Your agent sends an intent. AstraNL: 1. Parses and str

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Apr 17, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 4/17/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Apr 17, 2026

Vendor

Tolegm

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 4/17/2026.

Setup snapshot

  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Tolegm

profilemedium
Observed Apr 17, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 17, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB REPOS

Extracted files

0

Examples

6

Snippets

0

Languages

python

Executable Examples

bash

curl -X POST https://astranl.com/do \
  -H "Content-Type: application/json" \
  -d '{"intent": "paint my apartment in Amsterdam, 80m2, budget 500 euro"}'

bash

# Create a task with natural language
curl -X POST https://astranl.com/do \
  -H "Content-Type: application/json" \
  -d '{"intent": "paint my apartment in Amsterdam, 80m2, budget 500 euro"}'

# Response:
{
  "task_id": 42,
  "title": "Paint apartment Amsterdam 80m2",
  "category": "painting",
  "location": "Amsterdam",
  "budget_eur": 500,
  "status": "open",
  "offers_url": "https://astranl.com/do/42"
}

json

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

python

from langchain.tools import Tool
import requests

def create_astranl_task(intent: str) -> dict:
    """Create a real-world task via AstraNL coordination API."""
    resp = requests.post(
        "https://astranl.com/do",
        json={"intent": intent},
        headers={"X-Agent-Key": "YOUR_API_KEY"}
    )
    return resp.json()

def check_astranl_task(task_id: int) -> dict:
    """Check status of a coordination task."""
    resp = requests.get(f"https://astranl.com/do/{task_id}")
    return resp.json()

# LangChain Tools
astranl_create = Tool(
    name="create_physical_task",
    func=create_astranl_task,
    description=(
        "Create a real-world task for a human to execute. Use for: cleaning, "
        "painting, plumbing, carpentry, moving, delivery, gardening, repairs. "
        "Input: natural language description with location and budget in euros. "
        "Returns task_id and current status."
    )
)

astranl_check = Tool(
    name="check_task_status",
    func=lambda tid: check_astranl_task(int(tid)),
    description="Check the status of a coordination task by task_id. Returns offers, timeline, and next required action."
)

# Add to your LangChain agent
from langchain.agents import initialize_agent, AgentType
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")
agent = initialize_agent(
    tools=[astranl_create, astranl_check],
    llm=llm,
    agent=AgentType.OPENAI_FUNCTIONS,
    verbose=True
)

result = agent.run(
    "I need someone to clean my office in Rotterdam, about 100m2. "
    "Budget is 150 euros. Find available providers and create the task."
)

python

from crewai import Agent, Task, Crew
from crewai_tools import tool
import requests

@tool("Create Physical World Task")
def create_task(intent: str) -> str:
    """
    Create a real-world coordination task.
    Input: natural language task description with location and budget.
    Returns task ID and status.
    """
    resp = requests.post(
        "https://astranl.com/do",
        json={"intent": intent},
        headers={"X-Agent-Key": "YOUR_API_KEY"}
    )
    data = resp.json()
    return f"Task {data['task_id']} created: {data['title']} | Status: {data['status']} | Track: https://astranl.com/do/{data['task_id']}"

@tool("Check Task Progress")
def check_task(task_id: str) -> str:
    """Check the current status and offers for a task."""
    resp = requests.get(f"https://astranl.com/do/{task_id}")
    data = resp.json()
    offers = data.get("offers", [])
    return f"Task {task_id}: status={data['status']}, offers={len(offers)}, next_action={data.get('next_action', 'wait')}"

# Define agents
coordinator = Agent(
    role="Physical World Coordinator",
    goal="Coordinate real-world tasks efficiently using AstraNL",
    backstory="Expert at breaking down complex physical tasks and coordinating human workers via the AstraNL platform.",
    tools=[create_task, check_task],
    verbose=True
)

# Define task
coordination_task = Task(
    description=(
        "Create and manage a cleaning task for an office in Amsterdam, 80m2, "
        "budget 120 euros, needed before Friday. Monitor until offers arrive."
    ),
    agent=coordinator,
    expected_output="Task created with at least one offer received, summary of providers and prices."
)

crew = Crew(agents=[coordinator], tasks=[coordination_task], verbose=True)
result = crew.kickoff()

bash

curl -X POST https://astranl.com/api/agents/register \
  -H "Content-Type: application/json" \
  -d '{

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB REPOS

Docs source

GITHUB REPOS

Editorial quality

ready

Physical world coordination API for AI agents — MCP server + REST + LangChain + CrewAI AstraNL — Physical World Coordination API for AI Agents Give your AI agent hands. AstraNL connects LLMs to real humans who do real work. $1 $1 $1 What is AstraNL? AstraNL is a **protocol-governed coordination infrastructure** that lets AI agents create, manage, and pay for real-world tasks — cleaning, painting, plumbing, delivery, and more across the Netherlands. Your agent sends an intent. AstraNL: 1. Parses and str

Full README

AstraNL — Physical World Coordination API for AI Agents

Give your AI agent hands. AstraNL connects LLMs to real humans who do real work.

MCP Compatible OpenAPI License: MIT

What is AstraNL?

AstraNL is a protocol-governed coordination infrastructure that lets AI agents create, manage, and pay for real-world tasks — cleaning, painting, plumbing, delivery, and more across the Netherlands.

Your agent sends an intent. AstraNL:

  1. Parses and structures it
  2. Matches a human provider
  3. Manages the full lifecycle (offers → acceptance → evidence → payment → completion)
  4. Returns structured results

No registration required for first 3 tasks. Pay-per-use after that (1% fee on task value).


Quickstart — 30 seconds

# Create a task with natural language
curl -X POST https://astranl.com/do \
  -H "Content-Type: application/json" \
  -d '{"intent": "paint my apartment in Amsterdam, 80m2, budget 500 euro"}'

# Response:
{
  "task_id": 42,
  "title": "Paint apartment Amsterdam 80m2",
  "category": "painting",
  "location": "Amsterdam",
  "budget_eur": 500,
  "status": "open",
  "offers_url": "https://astranl.com/do/42"
}

MCP Server

Connect directly from Claude Desktop, Cursor, or any MCP-compatible client:

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

Available MCP Tools

| Tool | Description | |------|-------------| | create_task | Create a coordination task with natural language | | check_task | Get task status, offers, timeline | | search_robots | Find available robots/machines by task type | | estimate_cost | Get price estimate for a task | | run_command | Execute server-side commands | | read_file | Read files from the coordination system | | write_file | Write data to the coordination system | | list_directory | List available resources | | service_control | Manage coordination services |


LangChain Integration

from langchain.tools import Tool
import requests

def create_astranl_task(intent: str) -> dict:
    """Create a real-world task via AstraNL coordination API."""
    resp = requests.post(
        "https://astranl.com/do",
        json={"intent": intent},
        headers={"X-Agent-Key": "YOUR_API_KEY"}
    )
    return resp.json()

def check_astranl_task(task_id: int) -> dict:
    """Check status of a coordination task."""
    resp = requests.get(f"https://astranl.com/do/{task_id}")
    return resp.json()

# LangChain Tools
astranl_create = Tool(
    name="create_physical_task",
    func=create_astranl_task,
    description=(
        "Create a real-world task for a human to execute. Use for: cleaning, "
        "painting, plumbing, carpentry, moving, delivery, gardening, repairs. "
        "Input: natural language description with location and budget in euros. "
        "Returns task_id and current status."
    )
)

astranl_check = Tool(
    name="check_task_status",
    func=lambda tid: check_astranl_task(int(tid)),
    description="Check the status of a coordination task by task_id. Returns offers, timeline, and next required action."
)

# Add to your LangChain agent
from langchain.agents import initialize_agent, AgentType
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")
agent = initialize_agent(
    tools=[astranl_create, astranl_check],
    llm=llm,
    agent=AgentType.OPENAI_FUNCTIONS,
    verbose=True
)

result = agent.run(
    "I need someone to clean my office in Rotterdam, about 100m2. "
    "Budget is 150 euros. Find available providers and create the task."
)

CrewAI Integration

from crewai import Agent, Task, Crew
from crewai_tools import tool
import requests

@tool("Create Physical World Task")
def create_task(intent: str) -> str:
    """
    Create a real-world coordination task.
    Input: natural language task description with location and budget.
    Returns task ID and status.
    """
    resp = requests.post(
        "https://astranl.com/do",
        json={"intent": intent},
        headers={"X-Agent-Key": "YOUR_API_KEY"}
    )
    data = resp.json()
    return f"Task {data['task_id']} created: {data['title']} | Status: {data['status']} | Track: https://astranl.com/do/{data['task_id']}"

@tool("Check Task Progress")
def check_task(task_id: str) -> str:
    """Check the current status and offers for a task."""
    resp = requests.get(f"https://astranl.com/do/{task_id}")
    data = resp.json()
    offers = data.get("offers", [])
    return f"Task {task_id}: status={data['status']}, offers={len(offers)}, next_action={data.get('next_action', 'wait')}"

# Define agents
coordinator = Agent(
    role="Physical World Coordinator",
    goal="Coordinate real-world tasks efficiently using AstraNL",
    backstory="Expert at breaking down complex physical tasks and coordinating human workers via the AstraNL platform.",
    tools=[create_task, check_task],
    verbose=True
)

# Define task
coordination_task = Task(
    description=(
        "Create and manage a cleaning task for an office in Amsterdam, 80m2, "
        "budget 120 euros, needed before Friday. Monitor until offers arrive."
    ),
    agent=coordinator,
    expected_output="Task created with at least one offer received, summary of providers and prices."
)

crew = Crew(agents=[coordinator], tasks=[coordination_task], verbose=True)
result = crew.kickoff()

REST API

Register as Agent (for unlimited access)

curl -X POST https://astranl.com/api/agents/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MyAgent",
    "email": "[email protected]",
    "platform": "langchain"
  }'

# Returns: { "api_key": "ask_...", "agent_id": "...", "budget_limit_eur": 1000 }

Core Endpoints

# Natural language intent → task
POST https://astranl.com/do
Body: {"intent": "...", "agent_key": "ask_..."}

# Check task status + offers
GET https://astranl.com/do/{task_id}

# Accept an offer (triggers escrow)
POST https://astranl.com/do/{task_id}/accept/{offer_id}

# Search robots/machines by task
GET https://astranl.com/api/agents/robots/search?task=painting

# Cost estimate
POST https://astranl.com/api/agents/estimate
Body: {"category": "painting", "location": "Amsterdam", "area_m2": 80}

Supported Categories

| Category | Examples | |----------|---------| | painting | Apartment, house, office painting | | cleaning | Home, office, post-construction cleaning | | plumbing | Repairs, installation, leaks | | carpentry | Furniture assembly, repairs, custom work | | moving | Home, office relocation | | gardening | Mowing, pruning, landscaping | | delivery | Local delivery, courier | | electrical | Wiring, fixtures, repairs | | handyman | General repairs, mounting, odd jobs |


Pricing

  • First 3 tasks: Free, no registration
  • Registered agents: 1% platform fee on task GMV
  • Payment: Stripe (card, iDEAL, SEPA) — escrow held until completion
  • Provider gets: 99% of task value

Discovery & Compatibility

| Protocol | URL | |----------|-----| | MCP SSE | https://astranl.com/mcp/sse | | OpenAPI | https://astranl.com/openapi.json | | ChatGPT Plugin | https://astranl.com/.well-known/ai-plugin.json | | LLM Discovery | https://astranl.com/llms.txt | | API Docs | https://astranl.com/api-docs |


Links

  • Website: https://astranl.com
  • API Docs: https://astranl.com/api-docs
  • MCP Server: https://astranl.com/mcp/sse
  • OpenAPI Spec: https://astranl.com/openapi.json

License

MIT — see LICENSE

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB REPOS

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Github ReposUpdated 2h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_REPOS",
      "generatedAt": "2026-10-09T21:24:49.647Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "crewai",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "multi-agent",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "label": "Vendor",
    "value": "Tolegm",
    "category": "vendor",
    "href": "https://github.com/tolegm/astranl-mcp",
    "sourceUrl": "https://github.com/tolegm/astranl-mcp",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-17T06:10:35.145Z",
    "isPublic": true,
    "metadata": {}
  },
  {
    "factKey": "protocols",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "category": "compatibility",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-17T06:10:35.145Z",
    "isPublic": true,
    "metadata": {}
  },
  {
    "factKey": "docs_crawl",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "category": "integration",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true,
    "metadata": {}
  },
  {
    "factKey": "handshake_status",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "category": "security",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-tolegm-astranl-mcp/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true,
    "metadata": {}
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true,
    "metadata": {}
  }
]

Sponsored

Ads related to astranl-mcp and adjacent AI workflows.