protogrid

Search / io.github.ArneFfm/shared-forest

Shared Forest

R0· no sign-in

Plant or sponsor trees in a shared forest that grows from its traffic. Sponsoring uses OAuth.

v1.5.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality95strong
Trust97of 100
Uptime, 30 days99%
Latency p50307 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "shared-forest": {
      "type": "http",
      "url": "https://sharedforest.com/mcp"
    }
  }
}
claude mcp add --transport http shared-forest https://sharedforest.com/mcp
[mcp_servers.shared-forest]
url = "https://sharedforest.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "shared-forest": {
      "type": "remote",
      "url": "https://sharedforest.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "shared-forest": {
      "type": "http",
      "url": "https://sharedforest.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=shared-forest&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2hhcmVkZm9yZXN0LmNvbS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "shared-forest": {
      "type": "http",
      "url": "https://sharedforest.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "shared-forest": {
      "httpUrl": "https://sharedforest.com/mcp"
    }
  }
}
extensions:
  "shared-forest":
    enabled: true
    name: "shared-forest"
    type: streamable_http
    uri: "https://sharedforest.com/mcp"
    timeout: 300

Quality 95 / 100strong

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 60000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations13 of 13 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,210 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes6 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

13 tools, about 2,210 tokens to load them all · tool set d2a3d6b19e57 · tools last changed 2026-10-11 · checked 2026-10-19 21:10 UTC

Tool changes

  • design_treechangeddescription
    before

    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 painting becomes the tree. Returns design_id and the tree genome. Max 3 designs per caller per day. Show the result to the user before you order.

    after · 86% of words in common

    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 painting becomes the tree. Returns design_id and the tree genome. Max 3 design attempts per caller per day (including rejected or interrupted generation). Show the result to the user before you order.

  • start_sponsorshipchangedinput schema
  • get_price_quotechangeddescription
    before

    Read-only. Price for sponsoring N trees for 12 months: unit price, total in euro cents (VAT included) and discount. Call it before you tell the user a price.

    after · 89% of words in common

    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.

  • design_treechangeddescription
    before

    Turns a short wish (for example 'a silver birch with lanterns') into a custom tree design. Returns design_id and the tree genome. Max 3 designs per caller per day. Show the result to the user before you order.

    after · 71% of words in common

    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 painting becomes the tree. Returns design_id and the tree genome. Max 3 designs per caller per day. Show the result to the user before you order.

  • my_treesadded

    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.

  • my_ordersadded

    Read-only. Needs OAuth scope account:read. The signed-in user's sponsorship orders, newest first, with status, total and tree ids.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-99% +updated-16d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://sharedforest.com/mcp streamable-httpnoneyes99%307 ms2026-07-28, 2025-06-18, 2025-03-26, 2024-11-052026-10-19

Tools (13)

design_treeTurns 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 painting becomes the tree. Returns design_id and the tree genome. Max 3 design attempts per caller per day (including rejected or interrupted generation). Show the result to the user before you order.
explain_shared_forestread-onlyRead-only. Returns the full agent guide as Markdown: growth rules, API, tools and limits.
find_spotsread-onlyRead-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 picks them.
get_designread-onlyRead-only. Returns one design by design_id: genome, genomeHash and expiresAt.
get_forestread-onlyRead-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).
get_forest_statsread-onlyRead-only. Counts of trees, groves, total and unique visitors, and traffic by class (humans, agents, bots, trees planted today).
get_orderread-onlyRead-only. Needs OAuth scope account:read or sponsor:write. Status of one of the user's orders (open, paid, fulfilled, expired, refunded, disputed, cancelled, refund_pending) and its tree ids once fulfilled. Poll every 10 seconds or more after the user pays.
get_price_quoteread-onlyRead-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.
list_treesread-onlyRead-only. One page of trees with cursor pagination, the same data as GET /api/forest?limit=. Pass nextCursor as cursor until it is null.
my_ordersread-onlyRead-only. Needs OAuth scope account:read. The signed-in user's sponsorship orders, newest first, with status, total and tree ids.
my_treesread-onlyRead-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.
plant_treePlant 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 user before you call it.
start_sponsorshipNeeds 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 must fit the spending limit the user set when connecting. The order expires after 30 minutes unless the user confirms. Returns confirm_url: give it to your user. The user logs in, accepts the terms and pays on that page. Ask the user before you call it and confirm name and total.

Schemas: list_tools.

Similar MCP servers

More from io.github.ArneFfm

Official server.json
{
  "name": "io.github.ArneFfm/shared-forest",
  "icons": [
    {
      "src": "https://sharedforest.com/icon-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Shared Forest",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://sharedforest.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.5.0",
  "repository": {
    "url": "https://github.com/ArneFfm/shared-forest-agents",
    "source": "github"
  },
  "websiteUrl": "https://sharedforest.com/developers",
  "description": "Plant or sponsor trees in a shared forest that grows from its traffic. Sponsoring uses OAuth."
}