Forest Factory
by filipbolcek-ctrl · remote · no sign-in to list tools · v1.0.1 · published by GitHub user filipbolcek-ctrl
Paid x402 agent: API discovery,commerce availability/buyable,domain/package preflight,release asset
10 tools: 10 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things10Claude Code: ask: see these tools
- Only reads0Claude Code: allow
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http forest-factory https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "commerce_availability" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "resolve": a word for reading.
- Warndomain_preflight
The server marks "domain_preflight" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "resolve": a word for reading.
The server marks "release_asset_resolve" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "release_asset_resolve" says "resolve": a word for reading.
The server marks "crypto_spot_price" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
- Warnperp_funding
The server marks "perp_funding" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Changes things 10Claude Code: ask
api_discoverDiscover the callable public API behind a developer or documentation page: identify candidate API base URLs, developer portals, machine-readable API docs and authentication documen…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Discover the callable public API behind a developer or documentation page: identify candidate API base URLs, developer portals, machine-readable API docs and authentication documentation for integration setup. Price: $0.004 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
commerce_availabilityResolve public product or listing availability with explicit normalized states.1 finding
Why it is in this group
- The description's first verb is "resolve": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "commerce_availability" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "resolve": a word for reading.
Description, as the server wrote it Resolve public product or listing availability with explicit normalized states. It reports only provider evidence and never infers inventory, reserves items or places an order. Price: $0.002 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
commerce_buyabilityReport whether a public item appears buyable with explicit blockers such as out-of-stock or unknown.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Report whether a public item appears buyable with explicit blockers such as out-of-stock or unknown. This is a preflight only: it never signs in, buys, creates an order or guarantees checkout. Price: $0.003 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
crypto_spot_priceReturn one current Coinbase spot-product snapshot for an exact BASE-QUOTE product id, including venue price, 24-hour price change and provider-reported 24-hour product volume.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "crypto_spot_price" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
Description, as the server wrote it Return one current Coinbase spot-product snapshot for an exact BASE-QUOTE product id, including venue price, 24-hour price change and provider-reported 24-hour product volume. Forest reads only Coinbase Advanced Trade public market data; it does not infer tickers, infer the provider volume denomination, aggregate venues, read an account or wallet, place orders, provide an executable quote, forecast returns or recommend a trade. Price: $0.001 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
domain_preflightResolve a bare public domain into operational registration, DNS, HTTPS/TLS and mail-policy state using IANA-routed RDAP, DNS, MX/TXT/SPF/DMARC and a bounded TLS probe.1 finding
Why it is in this group
- The description's first verb is "resolve": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "domain_preflight" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "resolve": a word for reading.
Description, as the server wrote it Resolve a bare public domain into operational registration, DNS, HTTPS/TLS and mail-policy state using IANA-routed RDAP, DNS, MX/TXT/SPF/DMARC and a bounded TLS probe. No registrant personal data, vulnerability scanning, mailbox existence or deliverability claim. Provider uncertainty is explicit. Price: $0.003 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
package_preflightVerify whether a specific npm or PyPI package version exists before installation, resolve the current/latest version, and report deprecation or yank state when available, plus lice…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Verify whether a specific npm or PyPI package version exists before installation, resolve the current/latest version, and report deprecation or yank state when available, plus license and runtime requirement. This is a public-registry package install preflight; it does not resolve dependency graphs or perform vulnerability analysis. Price: $0.002 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
perp_fundingReturn one current Hyperliquid native perpetual snapshot with hourly funding, 8-hour equivalent, simple nominal annualization of the current hourly rate, mark/oracle basis, Hyperli…1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "perp_funding" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "return": a word for reading.
Description, as the server wrote it Return one current Hyperliquid native perpetual snapshot with hourly funding, 8-hour equivalent, simple nominal annualization of the current hourly rate, mark/oracle basis, Hyperliquid funding premium index, open interest, daily notional volume and max leverage. Forest reads only the fixed public Hyperliquid info endpoint; the annualized field is not compounded, forecast or realized return, and Forest does not trade, sign, read a wallet or recommend a position. Price: $0.002 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
release_asset_resolveResolve a public GitHub release into the most plausible downloadable asset for a normalized OS/architecture target, excluding source/signature/checksum files and linking checksum c…1 finding
Why it is in this group
- The name "release_asset_resolve" says "resolve": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "release_asset_resolve" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "release_asset_resolve" says "resolve": a word for reading.
Description, as the server wrote it Resolve a public GitHub release into the most plausible downloadable asset for a normalized OS/architecture target, excluding source/signature/checksum files and linking checksum companions when present. Returns ambiguity instead of silently choosing tied candidates. No private repositories or customer authentication. Price: $0.003 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
text_base64Encode bounded caller-supplied UTF-8 text as standard or URL-safe Base64, or decode canonical Base64 back to valid UTF-8 text.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Encode bounded caller-supplied UTF-8 text as standard or URL-safe Base64, or decode canonical Base64 back to valid UTF-8 text. Forest performs the transform locally with no network request and rejects invalid encodings, non-UTF-8 decoded bytes, and outputs beyond the 100 KiB byte bound. Price: $0.001 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
text_hashHash caller-supplied UTF-8 text deterministically with SHA-256 or SHA-512 and return both hexadecimal and Base64 digests.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Hash caller-supplied UTF-8 text deterministically with SHA-256 or SHA-512 and return both hexadecimal and Base64 digests. Input is bounded to 100 KiB, no network request or external provider is used, and Forest never treats a digest as proof of authenticity or password security. Price: $0.001 USDC per successful call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http forest-factory https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__forest-factory__api_discover",
"mcp__forest-factory__commerce_buyability",
"mcp__forest-factory__commerce_availability",
"mcp__forest-factory__domain_preflight",
"mcp__forest-factory__release_asset_resolve",
"mcp__forest-factory__package_preflight",
"mcp__forest-factory__text_hash",
"mcp__forest-factory__text_base64",
"mcp__forest-factory__crypto_spot_price",
"mcp__forest-factory__perp_funding"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as forest-factory. Review it before you use it.
