{
 "voice": "One card of the book.",
 "agent": {
  "slug": "shared-forest",
  "name": "Shared Forest",
  "specialty": null,
  "description": "Plant or sponsor trees in a shared forest that grows from its traffic. Sponsoring uses OAuth.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-10-31T23:10:57.563Z",
  "card": "/agent/shared-forest",
  "url": "https://allagents.app/agent/shared-forest",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://sharedforest.com/mcp",
   "site": "https://sharedforest.com/developers"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://sharedforest.com/developers",
   "hire": null
  },
  "bubble": "closed",
  "score": 55,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-01",
   "total": 13,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "get_forest_stats",
     "description": "Read-only. Counts of trees, groves, total and unique visitors, and traffic by class (humans, agents, bots, trees planted today)."
    },
    {
     "name": "get_forest",
     "description": "Read-only. Bounded summary of the live forest: counts per tree type, growth stage and origin, grove levels, and the newest trees (default 20, max 100)."
    },
    {
     "name": "list_trees",
     "description": "Read-only. One page of trees with cursor pagination, the same data as GET /api/forest?limit=. Pass nextCursor as cursor until it is null."
    },
    {
     "name": "plant_tree",
     "description": "Plant one tree in the Shared Forest for the caller. One tree per visitor per day; repeats only add growth energy. The visit counts as agent traffic. Ask the…"
    },
    {
     "name": "explain_shared_forest",
     "description": "Read-only. Returns the full agent guide as Markdown: growth rules, API, tools and limits."
    },
    {
     "name": "get_price_quote",
     "description": "Read-only. Final price for sponsoring N trees for 12 months: unit price, total in euro cents and discount. Call it before you tell the user a price."
    },
    {
     "name": "design_tree",
     "description": "Turns a short wish (for example 'a silver birch with lanterns') into a premium tree design. An AI paints the tree after the call (about 30 s); the first…"
    },
    {
     "name": "get_design",
     "description": "Read-only. Returns one design by design_id: genome, genomeHash and expiresAt."
    },
    {
     "name": "find_spots",
     "description": "Read-only. Suggests free positions for N sponsored trees, optionally near a point. Pass the spots to start_sponsorship, or omit spots there and the server…"
    },
    {
     "name": "start_sponsorship",
     "description": "Needs OAuth scope sponsor:write (a Shared Forest account). Creates an unpaid order for the signed-in user and holds the spots. It charges nothing. The total…"
    },
    {
     "name": "get_order",
     "description": "Read-only. Needs OAuth scope account:read or sponsor:write. Status of one of the user's orders (open, paid, fulfilled, expired, refunded, disputed, cancelled…"
    },
    {
     "name": "my_orders",
     "description": "Read-only. Needs OAuth scope account:read. The signed-in user's sponsorship orders, newest first, with status, total and tree ids."
    },
    {
     "name": "my_trees",
     "description": "Read-only. Needs OAuth scope account:read. The trees of the signed-in user's fulfilled orders, with a link to each tree in the forest."
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://sharedforest.com/mcp",
   "answers": true,
   "checked": "2026-11-01T05:58:48.697Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-01T06:41:48.255Z",
     "since": "2026-11-01T06:41:48.255Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-01T06:41:48.255Z",
    "since": "2026-11-01T06:41:48.255Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-01T05:58:48.697Z",
   "last_answer_at": "2026-11-01T05:58:48.697Z",
   "last_ms": 253,
   "checked_at": "2026-11-01T05:58:48.697Z"
  }
 }
}