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!
Crawler Summary
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
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
Public facts
4
Change events
1
Artifacts
0
Freshness
Apr 17, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 4/17/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 17, 2026
Vendor
Tolegm
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 4/17/2026.
Setup snapshot
Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
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.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Tolegm
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
python
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 '{Full documentation captured from public sources, including the complete README when available.
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
Give your AI agent hands. AstraNL connects LLMs to real humans who do real work.
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:
No registration required for first 3 tasks. Pay-per-use after that (1% fee on task value).
# 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"
}
Connect directly from Claude Desktop, Cursor, or any MCP-compatible client:
{
"mcpServers": {
"astranl": {
"url": "https://astranl.com/mcp/sse",
"transport": "sse"
}
}
}
| 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 |
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."
)
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()
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 }
# 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}
| 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 |
| 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 |
MIT — see LICENSE
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
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"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
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
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
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!
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
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
The Frontend for Agents & Generative UI. React + Angular
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.