Skip to main content
Glama

Server Details

Unsigned Pump/Bags/Zora/Clanker launches. mintPubkey required. Fees lock at launch.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 26 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
fxams/crew
GitHub Stars
1
Server Listing
crewpay
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

Most tools have distinct roles (discovery, key claim, KOL selection, launch, submit, repair, remits, proof). However crew_launch vs crew_build_unsigned/crew_submit_signed and crew_list_kols vs crew_search_kols vs crew_autohire have some overlap. Descriptions explicitly clarify fallback/prefer and repair-only boundaries, reducing misselection.

Naming Consistency4/5

All names use a consistent crew_ snake_case prefix. Most follow a verb_noun pattern; a few (crew_proof, crew_status) are noun-only, which are minor deviations but still predictable. The convention is not chaotic.

Tool Count4/5

16 tools for a multi-platform launch/KOL fee-sharing server is reasonable; each tool covers a distinct lifecycle step. It is slightly above the ideal 15 but not heavy given the domain complexity.

Completeness4/5

The surface covers a discover-key-select-launch-submit-status-repair-notify-list-remit-proof lifecycle. Minor gaps exist: no explicit single-launch detail retrieval beyond crew_status, and buyback triggering is absent (noted as not live). Agents can work around these.

Available Tools

16 tools
crew_autohireNarrative Autohire KOLsA
Read-onlyIdempotent
Inspect

The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Preview convenience Autohire: match a token name/ticker/vibe to a candidate KOL pack. Prefer explicit crew selection via crew_list_kols; Autohire is a fallback. Works keyless for previews.

NameRequiredDescriptionDefault
nameNoToken name (2–32 on launch)
seatsNoCrew seats 1–8 (default 5)
tickerNoToken ticker (2–13 on launch)
descriptionNoNarrative / vibe (≤204 — leaves room for “Launched from CrewPay.dev platform”)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds real context beyond them — that this is a 'Preview convenience' operation and 'Works keyless for previews' — clarifying that no key/commitment is needed, though the fee sentences are promotional rather than behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two opening sentences about creator fees and the 15% cut do not describe how to invoke the tool and consume space before the actual purpose. The remaining sentences are tight and front-load the sibling routing, but roughly 40% of the text is promotional filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-optional-param, no-output-schema, read-only tool, the description covers purpose, the fallback relationship to crew_list_kols, and keyless operation. The only gap is a clearer statement of what a 'candidate KOL pack' returns, but annotations cover the safety/mutation profile so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, ticker, description, and seats, giving a baseline of 3. The description's 'name/ticker/vibe' phrasing loosely maps to those fields but adds no formats, defaults, or constraints beyond what the schema supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'match a token name/ticker/vibe to a candidate KOL pack,' which clearly distinguishes this from siblings like crew_list_kols and crew_search_kols. The opening sentences about creator fees and the 15% cut are tangential value-prop framing rather than tool purpose, which slightly dilutes an otherwise clear statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the preferred alternative ('Prefer explicit crew selection via crew_list_kols') and the condition that selects this tool instead ('Autohire is a fallback'). This is a direct when-to-use / when-not-to-use rule with the sibling named, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_build_unsignedBuild UNSIGNED launch transactionsA
Read-onlyIdempotent
Inspect

The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Create UNSIGNED launch transactions. For Pump.fun, mintPubkey is required: generate a mint keypair locally and pass its public key so you can sign the create tx. The API does not keep a server-side mint secret. Pump.fun fee-share is part of this launch (same v0 tx when it fits; otherwise an ordered pair). Sign every returned step together in one wallet signAllTransactions or one Jito bundle — do not skip the lock step. crew_wire_fees is repair-only. platform defaults to pumpfun (Solana v0 messages). bags = Bags.fm Solana fee-claimers (needs BAGS_API_KEY). zora = Zora content coins on Base (EIP-1559; needs ZORA_ENABLED). clanker = Clanker v4 on Base (EIP-1559; needs CLANKER_ENABLED). vibevibe = vibe/vibe on Robinhood Chain (EIP-1559; needs VIBEVIBE_ENABLED). sui = Memez.gg / Blast.fun on Sui testnet (sui-tx; needs SUI_ENABLED, two steps publish+pool, optional treasuryCapObjectId). Prefer explicit crew[] from crew_list_kols; Autohire is fallback. optInOnly default off. Fee map: 60% to the KOL crew, 15% to the launching agent, 25% to the treasury (5% referrer when bound). Optional treasuryBps 2000–3000.

NameRequiredDescriptionDefault
crewNo
modeNo
nameYes
seatsNo
tickerYes
twitterNo
websiteNo
imageUrlNo
platformNoLaunch venue. Default pumpfun. bags=Bags.fm (Solana). zora=Zora coins (Base).
optInOnlyNo
secretKeyNoFORBIDDEN — rejected if set.
mintPubkeyNoRequired for Pump.fun. Caller-generated mint public key. The API never invents or stores a mint secret.
privateKeyNoFORBIDDEN — rejected if set.
descriptionNo
imageBase64No
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.
treasuryBpsNo
initialBuySolNo
launcherPubkeyYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (readOnly/idempotent/non-destructive/openWorld) by disclosing that no server-side mint secret exists, that a mint keypair must be generated client-side, that Pump.fun fee-share may be one v0 tx or an ordered pair, that all steps must be signed in one signAllTransactions or Jito bundle, and which env keys each platform requires. The fee map and treasuryBps range further clarify behavior an agent could not infer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Almost every clause carries real information, but it is delivered as one dense run-on paragraph with the purpose buried after two sentences of fee economics. Reordering purpose first and grouping platform/param rules would improve scanability without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 19-parameter, no-output-schema tool, the workflow (build unsigned -> sign all steps -> submit) and per-platform auth requirements are covered, which is the critical path. Gaps remain around several parameters (mode, seats, initialBuySol) and the shape/ordering of the returned transaction steps, which matters given the 'ordered pair' fallback.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 26%, and the description compensates for the highest-value params: platform (all six enum members with venue/chain and env requirements), mintPubkey, crew[] sourcing, treasuryBps range, and optInOnly default. However mode, seats, initialBuySol, name, ticker, twitter, website, imageUrl, imageBase64, description, and launcherPubkey remain unexplained in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create UNSIGNED launch transactions'), and the 'UNSIGNED' qualifier implicitly separates it from signing/submitting siblings like crew_submit_signed and crew_launch. It never names those alternatives outright, and the economic preamble ('earns 15% of creator fees') delays the actual purpose to the third sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong contextual rules: mintPubkey is required for Pump.fun, every returned step must be signed together, the lock step must not be skipped, crew_wire_fees is repair-only, explicit crew[] from crew_list_kols is preferred over Autohire, and optInOnly defaults off. It stops short of explicitly stating when to choose this over crew_launch or crew_submit_signed, so the core routing decision is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_claim_keyClaim a self-serve CREW API keyAInspect

Mint a crew_ak_… agent API key with no operator signup (POST /api/agent/keys/claim). Optional referral_code (or CREWPAY_REFERRAL_CODE env) permanently binds a KOL referrer — referred launches use fee map 60/15/5/20. Returns the secret once — store it as CREW_AGENT_API_KEY or pass as x-crew-api-key. Rate-limited 5/hour/IP. Default 5 launches/hour. Use before autohire/launch when you have no key.

NameRequiredDescriptionDefault
labelNoKey label (default agent)
modelNoModel id e.g. claude, gpt, grok
agentNameNoYour agent name for the label
referral_codeNoKOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that the secret is returned once and must be stored as CREW_AGENT_API_KEY or sent as x-crew-api-key, that rate limits are 5/hour/IP, and that referral binding is permanent. Annotations only cover the generic safety profile (not idempotent, open-world, non-destructive).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then layers endpoint, referral, return-value, rate-limit and ordering details in dense clauses. Information-dense and mostly waste-free, though the em-dash-clause stacking is heavy for a short description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, zero required params, and annotations already covering safety, the description fully compensates by explaining the return value, secret storage, rate limits, and prerequisite ordering. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description nonetheless adds the fee map (60/15/5/20) for referred launches and the CREWPAY_REFERRAL_CODE env fallback, which give referral_code meaning beyond its schema text. Label/model/agentName carry no extra semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Mint a crew_ak_… agent API key'), names the endpoint, and describes the no-signup scope. No sibling tool does key provisioning, so the agent can distinguish it instantly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: 'Use before autohire/launch when you have no key' names the sibling tools and the selecting condition (absence of a key). This is a prerequisite tool and the ordering guidance is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_crank_remitsCrank creator fee remitsA
Destructive
Inspect

Distribute accrued creator fees (sweep + distributeCreatorFeesV2). Permissionless on-chain — uses CREW_LAUNCHER_KEY if set, else server CREW_OPS_KEY. Prefers OnlinePumpSdk builder so unswept bonding-curve fees do not fail with CreatorFeesNotSwept.

NameRequiredDescriptionDefault
mintYesSolana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted.
secretKeyNoFORBIDDEN — rejected if set.
privateKeyNoFORBIDDEN — rejected if set.
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the destructive/non-idempotent/open-world profile, so the description is not carrying that burden alone. It adds real value beyond them: the CREW_LAUNCHER_KEY-then-CREW_OPS_KEY credential fallback and the OnlinePumpSdk builder preference that avoids the CreatorFeesNotSwept failure. What it omits is any statement about irreversibility of the fee transfer, which matters given destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action, then credentials, then the failure mode being avoided. Dense and free of filler, though parenthetical program names and SDK jargon slightly interrupt the flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent write with no output schema, the description covers mechanism, credential resolution and a known on-chain failure mode. Remaining gaps (return shape, retry/irreversibility semantics) are modest against annotations that already flag destructiveness and non-idempotency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the mint pattern/example and the FORBIDDEN markers on secretKey/privateKey/launcherKey, so the schema does the heavy lifting. The description only indirectly reinforces the key handling ("uses CREW_LAUNCHER_KEY if set") without adding format or syntax detail, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Distribute accrued creator fees") and names the underlying instructions (sweep + distributeCreatorFeesV2), so an agent knows exactly what on-chain action occurs. However, it never contrasts itself with the neighbouring crew_wire_fees tool, which is the closest potential alternative for fee movement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Permissionless on-chain" tells the agent anyone may call it, and the key-selection sentence gives invocation context. But there is no explicit when-to-use vs when-not guidance, and the sibling crew_wire_fees (also fee-related) is not mentioned as an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_discoverDiscover CREW Agent APIA
Read-onlyIdempotent
Inspect

Load CREW / CrewPay discovery for crypto agents: Autohire KOLs, launch Pump.fun / Bags / Zora / Clanker coins, fee-shares, OpenAPI links. Use this first when working on Solana meme coins, KOLs, or CrewPay.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds meaningful context beyond that: this is a discovery endpoint yielding OpenAPI/doc links rather than performing an action, which is a useful behavioral distinction from its siblings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Compact two-sentence form with the discovery purpose front-loaded and the usage cue trailing. The domain list is keyword-dense but each item maps to a real area of the API, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, no-output-schema discovery tool, the description conveys both what it does and when to call it, hinting at the return content via 'OpenAPI links.' It could state more explicitly that the response is a discovery/API-map payload, but it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 per the rubric; there is no parameter syntax or meaning for the description to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ('Load CREW / CrewPay discovery') and enumerates the API surface it exposes (Autohire KOLs, coin launches, fee-shares, OpenAPI links), which distinguishes it from the action-oriented siblings like crew_launch or crew_autohire. The framing as a discovery/index endpoint is understandable, though 'load discovery' is slightly meta and doesn't fully pin down the response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs 'Use this first when working on Solana meme coins, KOLs, or CrewPay,' which routes the agent ahead of the 15 sibling tools. It gives clear positive context but no exclusions or named alternatives for edge cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_launchLaunch Pump coin via CrewPay (MAINNET)A
Destructive
Inspect

The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. MAINNET custodial launch: Prefer explicit crew[] (from crew_list_kols). Autohire is a fallback convenience. Creates a Pump.fun coin and locks fee-shares at launch (60/15/25 default; 60/15/5/20 with referral) via Jito [create,lock] then v0+ALT. Prefer non-custodial crew_build_unsigned (mintPubkey required) + signAllTransactions + crew_submit_signed. Approval optional; requires CREW_AGENT_API_KEY + CREW_LAUNCHER_KEY. crew_wire_fees is repair-only.

NameRequiredDescriptionDefault
crewNoExplicit crew (shares must total 100%) overrides Autohire when provided
modeNo
nameYes
seatsNoAutohire seats when crew omitted
tickerYes
twitterNoX / Twitter handle or URL
websiteNo
dryRunIdNoOptional unless the API key has requireApproval=true
imageUrlNoPublic image URL (or use imageBase64)
agentNameNo
holderKolNoOpen Holder-KOL (fees unlocked until crew_lock_holder_kol)
secretKeyNoFORBIDDEN — rejected if set.
agentModelNoe.g. claude, gpt, gemini, grok
privateKeyNoFORBIDDEN — rejected if set.
descriptionNo≤204 chars; attribution appended to reach ≤240 final
imageBase64No
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.
initialBuySolNoDev buy 0–10 SOL (site+API aligned)
agentObjectiveNo
idempotencyKeyNoRetry-safe key; replays cached launch for 15m

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive/openWorld/non-idempotent, and the description adds real context on top: 15% agent fee, creator fees can be zero, default fee splits (60/15/25, or 60/15/5/20 with referral), Jito [create,lock] then v0+ALT construction, and required CREW_AGENT_API_KEY + CREW_LAUNCHER_KEY. The Jito/v0+ALT phrasing is terse jargon, keeping it just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and largely earns its place, but it reads as a stream of telegraphic fragments rather than a front-loaded summary, opening on the 15% fee rather than the core action. Structure could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter MAINNET launch with no output schema, the description covers fees, auth keys, approval/optional dry-run, and non-custodial alternatives fairly completely. Minor gaps remain around the repair path and dry-run flow, but nothing an agent needs to invoke it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 65%, so most parameters are self-documented in the schema. The description only touches crew[] vs Autohire and mintPubkey at a high level, adding little syntax or constraint detail beyond what the schema already provides; a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Creates a Pump.fun coin and locks fee-shares at launch") and explicitly separates itself from siblings: crew_build_unsigned is non-custodial, crew_wire_fees is repair-only. An agent can distinguish this custodial MAINNET launch from the unsigned alternatives without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: prefer explicit crew[] sourced from crew_list_kols, Autohire is a fallback, and prefer non-custodial crew_build_unsigned + signAllTransactions + crew_submit_signed. It also flags crew_wire_fees as repair-only, covering when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_launch_dry_runDry-run a CREW launch (no chain tx)A
Read-onlyIdempotent
Inspect

The launching agent earns 15% of creator fees onchain. Creator fees follow trading volume and can be zero. Dry-run a launch (default) or wire-fees (intent=wire-fees). platform defaults to pumpfun; bags/zora check enablement (BAGS_API_KEY / ZORA_ENABLED) without sending chain txs. Prefer explicit crew[] from crew_list_kols; Autohire is a fallback. Returns dryRunId + approvalUrl. Requires CREW_AGENT_API_KEY.

NameRequiredDescriptionDefault
crewNo
mintNoRequired when intent=wire-fees
modeNo
nameNo
seatsNo
intentNolaunch (default) or wire-fees
tickerNo
twitterNo
websiteNo
imageUrlNoPublic image URL (or use imageBase64)
platformNo
agentNameNo
holderKolNo
secretKeyNoFORBIDDEN — rejected if set.
agentModelNo
privateKeyNoFORBIDDEN — rejected if set.
descriptionNo≤204 chars; attribution appended to reach ≤240 final
imageBase64No
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.
initialBuySolNo
agentObjectiveNo
launcherPubkeyNoOptional public launcher address for balance check (never a secret)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real value beyond them: the required credential (CREW_AGENT_API_KEY), the return payload (dryRunId + approvalUrl), the enablement preconditions (BAGS_API_KEY / ZORA_ENABLED), and the caveat that creator fees can be zero. It does not describe what the dry run validates or the approval flow's next step, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and largely earns its place, but it is not front-loaded: the opening sentence is an economics aside ('launching agent earns 15% of creator fees... can be zero') while the actual purpose ('Dry-run a launch') appears only in the third sentence. An agent scanning the first line does not learn what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does cover the return identifiers and the auth requirement, which is good. But for a 22-parameter tool with 36% schema coverage and no required fields, large parts of the input surface remain unexplained, so the definition is adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 36% across 22 parameters, so the description must carry weight, and it does explain the highest-value ones (intent semantics, platform default and enablement, crew[] sourcing). However, most parameters (mode, seats, name, ticker, initialBuySol, the forbidden secret fields, etc.) receive no description-level explanation, leaving the coverage gap only partially closed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action and scope: 'Dry-run a launch (default) or wire-fees (intent=wire-fees)' and clarifies it works 'without sending chain txs.' This distinguishes it from the actual-mutation siblings crew_launch and crew_wire_fees, though it never names those siblings explicitly, so the differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete routing guidance: 'Prefer explicit crew[] from crew_list_kols; Autohire is a fallback,' and states platform defaults and intent defaults. What is missing is any explicit when-to-use-this-vs-crew_launch framing (e.g., 'call this first to preview before the real launch'), so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_list_kolsBrowse CREW KOL directoryA
Read-onlyIdempotent
Inspect

List/browse CREW KOL profiles (optionally filtered by q). Use this to select explicit crew wallets before launching on pumpfun, bags, or zora. Manual pick first; Autohire is a fallback. For Zora, prefer registered evm_wallet / pass Base addresses.

NameRequiredDescriptionDefault
qNoOptional: handle, pump username, or wallet substring
limitNoMax results (default 50)
offsetNoOffset for pagination (default 0)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely non-derivable behavioral context: manual selection is preferred over Autohire, and for Zora the agent should prefer registered evm_wallet / pass Base addresses. It omits return format and pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, then usage, then a domain-specific selection hint. Front-loaded and largely waste-free, though the Zora address hint could be more clearly separated from the launch-routing guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with full schema coverage and annotations carrying the safety profile, the description supplies sufficient selection and routing context. Since there is no output schema, it arguably should say more about what a profile record returns, which is the one remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so q, limit, and offset are already documented in the schema. The description only echoes that q is an optional filter and adds no format or syntax detail beyond what the schema provides, matching the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List/browse CREW KOL profiles') and adds scope ('optionally filtered by q'). An agent can distinguish it as the directory-browse tool, though it never explicitly names the closest sibling crew_search_kols, leaving a small ambiguity about list vs. search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context ('to select explicit crew wallets before launching on pumpfun, bags, or zora') and names an alternative with a condition ('Manual pick first; Autohire is a fallback'). It doesn't address when to prefer crew_search_kols over this list endpoint, so it stops one step short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_list_launchesList launches for this agent keyA
Read-onlyIdempotent
Inspect

Return launches attributed to your crew_ak_… key (mint, ticker, feeShareLocked, pumpUrl). Operator env keys see recent board launches. Use after crew_launch or to recover mint state across retries.

NameRequiredDescriptionDefault
limitNoOptional integer 1–100. Max launches to return. Example: 20. Default is the API default.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context about return fields and differing behavior for operator env keys, but no pagination or rate-limit detail. With annotations carrying the heavy burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler; the core return semantics are front-loaded ahead of the usage guidance. Slightly dense but every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by listing returned fields (mint, ticker, feeShareLocked, pumpUrl). For a simple one-param read tool whose safety profile is in annotations, this is largely complete, though it omits ordering/pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'limit' parameter (1–100, example 20, default noted) is fully documented in the schema. The description adds no parameter-level detail. Baseline 3 applies when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Return launches") and names the key type and returned fields (mint, ticker, feeShareLocked, pumpUrl). It also distinguishes operator env keys from crew_ak_ keys. Sibling differentiation is present via the reference to crew_launch but not exhaustively against all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use after crew_launch or to recover mint state across retries" gives clear context for when to invoke it. It does not state when-not to use it or name alternative listing tools, but the trigger conditions are explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_lock_holder_kolLock Holder-KOL fee-sharesA
Destructive
Inspect

Scan top holders ∩ CREW KOL directory and permanently lock fee-shares (one-shot). Use when launch used holderKol=true. Requires CREW_LAUNCHER_KEY in MCP env.

NameRequiredDescriptionDefault
mintYesSolana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted.
modeNo
nameNo
tickerNo
secretKeyNoFORBIDDEN — rejected if set.
privateKeyNoFORBIDDEN — rejected if set.
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so 'permanently lock' and 'one-shot' are consistent reinforcement rather than new information. The description does add meaningful context beyond the annotations, though: the CREW_LAUNCHER_KEY env-var prerequisite for auth. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then the trigger condition, then the prerequisite. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive one-shot mutation with no output schema, the description covers the trigger and the auth prerequisite, and annotations cover the safety profile. It could say more about what the scan selects or what happens on repeated invocation, but nothing essential to calling it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 57%, and the description explains none of the parameters (mint, mode, name, ticker). It does add one relevant fact by pointing at CREW_LAUNCHER_KEY in the env, which clarifies why the launcherKey/secretKey/privateKey fields are forbidden, but it does not compensate for the undocumented mode enum and name/ticker fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Scan top holders ∩ CREW KOL directory and permanently lock fee-shares'. Clear and concrete, and the '(one-shot)' qualifier further pins it down. It does not contrast itself against siblings like crew_launch or crew_wire_fees, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit triggering condition: 'Use when launch used holderKol=true.' That is real routing guidance, not implied usage. It stops at 4 because it names no alternatives or when-not-to-use condition (e.g., what to do if holderKol was false).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_notify_hired_crewNotify hired crew on TelegramAInspect

DM hired KOLs via @CrewPay_Bot. Opt-in only: they must have linked Telegram, sent /start, and enabled alerts. Never uses channel member counts.

NameRequiredDescriptionDefault
mintNoCoin mint — notifies that launch’s hired crew
handlesNoOptional hired handles if mint is omitted
messageNoOptional short note (≤500)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, so the safety profile is covered. The description adds real delivery semantics beyond that: opt-in gating, the @CrewPay_Bot channel, and the negative scoping note 'Never uses channel member counts.' It does not mention rate limits or delivery failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the action front-loaded and the constraints following immediately. Every clause earns its place, and the non-obvious negative constraint is included without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, all-optional notification tool with no output schema, the description covers what the agent must know: who gets messaged, through which bot, and the opt-in requirement. Only the success/failure semantics of a send remain unstated, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains mint, handles, and message, including the 'if mint is omitted' fallback. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'DM hired KOLs via @CrewPay_Bot.' An agent can tell this is an outbound notification to already-hired crew rather than a discovery or listing tool like crew_list_kols. It stops short of naming a sibling tool it should be preferred over, so it does not reach a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete precondition ('Opt-in only: they must have linked Telegram, sent /start, and enabled alerts'), which tells the agent when the call will actually deliver. It never contrasts this tool against alternatives such as crew_list_kols or crew_autohire, so the when-not guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_proofPublic CREW proof tapeA
Read-onlyIdempotent
Inspect

Read the public CrewPay proof tape (GET /api/proof): fee-share-locked launches, creator-fee remits, and buyback runs. When to use: after a launch or crew_crank_remits, to show public proof that remits posted, or to inspect tape totals. No API key. When not to use: do not use for one mint’s lock state (crew_status), to list your agent’s mints (crew_list_launches), or to trigger buybacks/remits (crew_crank_remits). Empty buyback rows are expected — market buyback cron is not live yet and do not mean fee-shares failed. Fee map is 60/15/25 (60/15/5/20 when the launching agent is referred); 25% (or 20%) is the treasury slice, not a guaranteed payout. Returns JSON { ok, generatedAt, platform, stats (coins, feeShareLocked, remitRows, remitSolTotal, buybackRuns, humansPaidSol, byRole), coins[], remits[], buybacks[] }. Empty arrays mean no locked launches yet — not an error. Side effects: none. Read-only public GET. Does not change chain, board, or keys.

NameRequiredDescriptionDefault
limitNoOptional integer 1–100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld/idempotent annotations it adds high-value context: no API key required, no side effects on chain/board/keys, and interpretive guidance that empty buyback rows and empty arrays are expected rather than failures. The fee-map breakdown (60/15/25, referred 60/15/5/20) further clarifies what the tape reports.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb+resource, then cleanly sectioned into when-to-use, when-not-to-use, expected anomalies, fee map, return shape, and side effects. Dense but every clause (empty-array semantics, fee split, no-API-key) earns its place; only slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully specifies the return object (ok, generatedAt, platform, stats, coins[], remits[], buybacks[]) and flags the non-error empty cases. Together with the usage and behavioral detail, nothing an agent needs to call and interpret this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single `limit` parameter is fully documented with bounds, default, and example. The description never mentions `limit`, but the schema carries that burden, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the public CrewPay proof tape (GET /api/proof)') and enumerates the data it covers (fee-share-locked launches, creator-fee remits, buyback runs). It explicitly names the siblings it is not (crew_status, crew_list_launches, crew_crank_remits), so an agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('after a launch or crew_crank_remits, to show public proof that remits posted, or to inspect tape totals') and when-not-to-use with reasons tied to specific sibling tools. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_search_kolsSearch CREW KOL directoryA
Read-onlyIdempotent
Inspect

Search the CREW KOL / Pump profile directory by handle or wallet. Prefer manual crew selection from this directory; Autohire is a fallback/convenience.

NameRequiredDescriptionDefault
qYesHandle, pump username, or wallet substring
limitNoMax results (default 20)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety and side-effect behavior need no restating. The description adds the useful note that results come from an external profile directory (open-world), but says nothing about result ordering, matching semantics (substring vs exact), or truncation beyond what the schema's limit field implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the what-it-searches clause comes first and the routing preference second. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only search with no output schema, the description plus annotations plus full schema coverage give an agent everything needed to invoke it correctly. It would be stronger if it hinted at the shape of returned profiles (since there is no output schema), but the gap is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – both q ("Handle, pump username, or wallet substring") and limit ("Max results (default 20)") are fully documented in the schema. The description only echoes "handle or wallet" and even omits the pump-username form of q, so it adds no meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Search") and resource ("CREW KOL / Pump profile directory") plus the lookup keys (handle or wallet), which separates it from the sibling crew_list_kols. It does not explicitly differentiate from crew_list_kols or crew_discover, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit preference: manual selection from this directory is preferred and Autohire is only a fallback/convenience. That is real routing guidance, but it never says when to prefer the sibling crew_list_kols or crew_discover over this search, so it falls short of naming all alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_statusMint / fee-share statusA
Read-onlyIdempotent
Inspect

Check whether a CREW mint has fee-shares locked, Holder KOL open, and board presence. New launches lock fees at launch. Use after submit, or before repair (crew_wire_fees) / lock / crank.

NameRequiredDescriptionDefault
mintYesRequired. Solana mint (base58, 32–64 chars). Example: from crew_list_launches or crew_launch.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, covering the safety profile fully. The description adds domain behavior ('New launches lock fees at launch') that helps interpret the result, but says nothing about return contents or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler; the checked conditions come first and the workflow guidance follows. Every clause carries information an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only, idempotent check with no output schema, the description gives the agent enough to call it correctly and interpret the purpose. Only the shape of the returned status is left unstated, which is a minor gap given the simple contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'mint' parameter is thoroughly documented in the schema, including format and where to obtain it. The description adds no parameter detail beyond the schema, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('check') and resource ('CREW mint') and enumerates exactly what is being checked: fee-shares locked, Holder KOL open, board presence. This is well beyond a restatement of the name, though it does not by itself differentiate from every sibling in a 16-tool set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly positions the tool in a workflow: 'Use after submit, or before repair (crew_wire_fees) / lock / crank.' It names the sibling tools that precede or follow it, giving the agent a clear sequencing signal. It stops short of stating exclusions or when this check is unnecessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_submit_signedSubmit signed CREW launch transactionsA
Destructive
Inspect

Submit signed transactions from crew_build_unsigned. Pump.fun: sign create + fee-share lock together (signAllTransactions / Jito bundle) — fees lock at launch; do not submit create alone. Bags: Solana base64 (fee-share then create). Zora: EIP-1559 hex (0xSplits then coin create). Pass platform to match the builder.

NameRequiredDescriptionDefault
signedYes
platformNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds genuinely new behavioral context: the atomicity requirement (sign create + fee-share lock together) and that fees lock at launch, which is exactly the irreversibility the destructiveHint implies. It stops short of describing failure/retry behavior or what a rejected submission returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then platform-specific clauses in parallel structure; nearly every clause carries operational weight. Density is high but the per-platform ordering details justify the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent submission tool with no output schema, the description covers the critical operational prerequisites and sequencing an agent needs to avoid a bad launch. It omits return/error semantics and retry guidance, which is the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden. It compensates well by explaining the per-platform encoding of the signed array (Solana base64 for Bags, EIP-1559 hex for Zora) and the meaning of platform ('match the builder'). It does not explain the batch constraint (minItems 1 / maxItems 8) or the minLength 64 string format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (submit) and resource (signed transactions) and explicitly names the sibling that produces its input, crew_build_unsigned. An agent can distinguish it from crew_build_unsigned and crew_launch without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: call after crew_build_unsigned, pass platform to match the builder, and the pump.fun case gives a clear prohibition ('do not submit create alone'). Per-platform ordering (fee-share then create) is spelled out, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crew_wire_feesWire / repair CREW fee-sharesA
Destructive
Inspect

Create and permanently lock Pump.fun fee-sharing shareholders on an existing mint (POST /api/agent/wire-fees). When to use: repair-only for older launches or crew_status showing no fee-sharing config / a failed lock (custodial HTTP 202 / feeShareLocked=false). Optional gated flow: crew_launch_dry_run({ intent: "wire-fees" }) → human opens approvalUrl → pass that dryRunId here. When not to use: new Pump launch (fees lock at launch via crew_build_unsigned / crew_launch). Do not call if feeShareLocked=true (already locked — not idempotent, API errors). Do not use for a new coin, Holder-KOL opens (crew_lock_holder_kol), or distributing accrued fees (crew_crank_remits). Hosted public MCP cannot complete this — it cannot hold a launcher secret. Side effects (on-chain, destructive, non-custodial): builds the fee-share create/update transaction and requires the launch wallet to sign. Signer is CREW_LAUNCHER_KEY in local MCP env only — never pass a secret as a tool argument. CrewPay does not custody keys or funds. Writes the Pump.fun fee-sharing config PDA (create if missing), sets shareholder addresses + bps (60% KOL crew / 15% launching agent / 25% treasury, or 60/15/5/20 with a bound referrer), and revokes admin so the map cannot be edited. Also persists feeShareLocked on the CrewPay board. Does not transfer SOL, move LP, or launch a mint. Returns JSON { ok, feeShareSignature, feeShareLocked: true, adminRevoked: true, mint, coin }. Errors if the config is already locked, crew is missing, or the launcher key does not match the board launcher. Auth: CREW_AGENT_API_KEY + CREW_LAUNCHER_KEY in local MCP env (x-crew-api-key / x-launcher-key on HTTP).

NameRequiredDescriptionDefault
crewNoOptional array of 1–8 crew members {handle, wallet, share, hireRole?}. Shares must total 100. Omit to reuse the crew stored on the board from launch.
mintYesRequired. Solana Pump.fun mint (base58, 32–64 chars, no 0/O/I/l). Example: a mint from crew_list_launches or the crew_launch response.
modeNoOptional desk mode. One of agent | split | buyback | raid. Default agent.
nameNoOptional coin name (≤32 chars) if the mint is not already on the board. Example: "Desk Cat".
tickerNoOptional ticker (≤13 chars). Example: "DESK". Omit to reuse the board ticker.
dryRunIdNoOptional string (16–64 chars) unless the API key has requireApproval=true. From crew_launch_dry_run with intent=wire-fees after the human opens approvalUrl. Example: a 32-char opaque id.
secretKeyNoFORBIDDEN — rejected if set.
privateKeyNoFORBIDDEN — rejected if set.
launcherKeyNoFORBIDDEN — rejected if set. Use CREW_LAUNCHER_KEY in MCP env only.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/non-idempotent/open-world, and the description adds substantial context beyond them: what on-chain state is written (fee-sharing PDA, shareholder addresses + bps split, admin revocation), that it is non-custodial, that the signer must be CREW_LAUNCHER_KEY locally, that secrets must never be passed as arguments, and that it errors if already locked or the key mismatches. This aligns with, rather than contradicts, idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long, but front-loaded with the verb+scope then organized into When-to-use / When-not-to-use / side-effects / returns / auth blocks so an agent can scan it. Dense yet largely every sentence carries a distinct constraint, with only minor redundancy in the secret-handling warnings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, multi-parameter, non-custodial transaction builder with no output schema, the description covers prerequisites, gating flow, side effects, return shape, and error conditions. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real value: it explains that the crew array may be omitted to reuse the board crew, that shares follow fixed splits (60/15/25 or 60/15/5/20), and that dryRunId comes from crew_launch_dry_run after the human opens approvalUrl. It does not restate mint/ticker/name semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create and permanently lock Pump.fun fee-sharing shareholders on an existing mint') and immediately delimits scope ('on an existing mint'), which separates it from crew_launch/crew_build_unsigned that create new launches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' (repair-only for older launches or crew_status showing no fee-sharing config), explicit 'When not to use' (new launch, Holder-KOL opens, fee distribution), and names the alternatives (crew_lock_holder_kol, crew_crank_remits, crew_launch_dry_run). It even flags the hosted-MCP limitation that makes the tool unusable there.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedcrew_build_unsigned1 field changed
      • addedInput schema / properties / mintPubkey / description
        Added value: +"Required for Pump.fun. Caller-generated mint public key. The API never invents or stores a mint secret."
  2. 9 tool updates
    • Changedcrew_build_unsigned5 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet / description
        Added value: +"Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
      • addedInput schema / properties / crew / items / properties / handle / description
        Added value: +"X / Pump handle without @. Example: \"crewpayhq\". Required."
      • addedInput schema / properties / crew / items / properties / hireRole / description
        Added value: +"Optional hire role label. One of caller | chart | raid | kol | dev."
      • addedInput schema / properties / crew / items / properties / share / description
        Added value: +"Integer percent of the crew slice (1–100). Crew shares must total 100."
      • addedInput schema / properties / crew / items / properties / wallet / description
        Added value: +"Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
    • Changedcrew_crank_remits1 field changed
      • addedInput schema / properties / mint / description
        Added value: +"Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted."
    • Changedcrew_launch5 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet / description
        Added value: +"Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
      • addedInput schema / properties / crew / items / properties / handle / description
        Added value: +"X / Pump handle without @. Example: \"crewpayhq\". Required."
      • addedInput schema / properties / crew / items / properties / hireRole / description
        Added value: +"Optional hire role label. One of caller | chart | raid | kol | dev."
      • addedInput schema / properties / crew / items / properties / share / description
        Added value: +"Integer percent of the crew slice (1–100). Crew shares must total 100."
      • addedInput schema / properties / crew / items / properties / wallet / description
        Added value: +"Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
    • Changedcrew_launch_dry_run5 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet / description
        Added value: +"Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
      • addedInput schema / properties / crew / items / properties / handle / description
        Added value: +"X / Pump handle without @. Example: \"crewpayhq\". Required."
      • addedInput schema / properties / crew / items / properties / hireRole / description
        Added value: +"Optional hire role label. One of caller | chart | raid | kol | dev."
      • addedInput schema / properties / crew / items / properties / share / description
        Added value: +"Integer percent of the crew slice (1–100). Crew shares must total 100."
      • addedInput schema / properties / crew / items / properties / wallet / description
        Added value: +"Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
    • Changedcrew_list_launches1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Optional integer 1–100. Max launches to return. Example: 20. Default is the API default."
    • Changedcrew_lock_holder_kol1 field changed
      • addedInput schema / properties / mint / description
        Added value: +"Solana mint address (base58, 32–64 chars, alphabet without 0/O/I/l). Example: a Pump.fun mint from crew_list_launches or crew_status. Required unless noted."
    • Changedcrew_proof1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Optional integer 1–100 (default 40). Max tape rows for coins/remits/buybacks. Example: 20."
    • Changedcrew_status1 field changed
      • changedInput schema / properties / mint / description
        Previous value: -"Pump mint address"New value: +"Required. Solana mint (base58, 32–64 chars). Example: from crew_list_launches or crew_launch."
    • Changedcrew_wire_fees11 fields changed
      • changedInput schema / properties / crew / description
        Previous value: -"Optional — omit to reuse board crew from launch"New value: +"Optional array of 1–8 crew members {handle, wallet, share, hireRole?}. Shares must total 100. Omit to reuse the crew stored on the board from launch."
      • addedInput schema / properties / crew / items / properties / evmWallet / description
        Added value: +"Optional 0x… Base address (42 chars) for Zora/Clanker payouts."
      • addedInput schema / properties / crew / items / properties / handle / description
        Added value: +"X / Pump handle without @. Example: \"crewpayhq\". Required."
      • addedInput schema / properties / crew / items / properties / hireRole / description
        Added value: +"Optional hire role label. One of caller | chart | raid | kol | dev."
      • addedInput schema / properties / crew / items / properties / share / description
        Added value: +"Integer percent of the crew slice (1–100). Crew shares must total 100."
      • addedInput schema / properties / crew / items / properties / wallet / description
        Added value: +"Solana payout wallet (base58). Required. Example: a KOL wallet from crew_list_kols."
      • changedInput schema / properties / dryRunId / description
        Previous value: -"Optional unless the API key has requireApproval=true"New value: +"Optional string (16–64 chars) unless the API key has requireApproval=true. From crew_launch_dry_run with intent=wire-fees after the human opens approvalUrl. Example: a 32-char opaque id."
      • addedInput schema / properties / mint / description
        Added value: +"Required. Solana Pump.fun mint (base58, 32–64 chars, no 0/O/I/l). Example: a mint from crew_list_launches or the crew_launch response."
      • addedInput schema / properties / mode / description
        Added value: +"Optional desk mode. One of agent | split | buyback | raid. Default agent."
      • addedInput schema / properties / name / description
        Added value: +"Optional coin name (≤32 chars) if the mint is not already on the board. Example: \"Desk Cat\"."
      • addedInput schema / properties / ticker / description
        Added value: +"Optional ticker (≤13 chars). Example: \"DESK\". Omit to reuse the board ticker."
  3. 3 tool updates
    • Changedcrew_build_unsigned1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker",
        -  "vibevibe"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe",
        +  "sui"
        +]
    • Changedcrew_launch_dry_run1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker",
        -  "vibevibe"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe",
        +  "sui"
        +]
    • Changedcrew_submit_signed1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker",
        -  "vibevibe"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe",
        +  "sui"
        +]
  4. 3 tool updates
    • Changedcrew_build_unsigned1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe"
        +]
    • Changedcrew_launch_dry_run1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe"
        +]
    • Changedcrew_submit_signed1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora",
        -  "clanker"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker",
        +  "vibevibe"
        +]
  5. 3 tool updates
    • Changedcrew_build_unsigned1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker"
        +]
    • Changedcrew_launch_dry_run1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker"
        +]
    • Changedcrew_submit_signed1 field changed
      • changedInput schema / properties / platform / enum
        Previous value: -[
        -  "pumpfun",
        -  "bags",
        -  "zora"
        -]New value: +[
        +  "pumpfun",
        +  "bags",
        +  "zora",
        +  "clanker"
        +]
  6. 1 tool update
    • Addedcrew_notify_hired_crew
  7. 6 tool updates
    • Addedcrew_build_unsigned
    • Changedcrew_launch2 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet
        Added value: +{
        +  "maxLength": 42,
        +  "minLength": 42,
        +  "type": "string"
        +}
      • changedInput schema / properties / crew / items / properties / wallet / minLength
        Previous value: -32New value: +20
    • Changedcrew_launch_dry_run5 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet
        Added value: +{
        +  "maxLength": 42,
        +  "minLength": 42,
        +  "type": "string"
        +}
      • changedInput schema / properties / crew / items / properties / wallet / minLength
        Previous value: -32New value: +20
      • changedInput schema / properties / crew / maxItems
        Previous value: -8New value: +100
      • changedInput schema / properties / launcherPubkey / minLength
        Previous value: -32New value: +20
      • addedInput schema / properties / platform
        Added value: +{
        +  "enum": [
        +    "pumpfun",
        +    "bags",
        +    "zora"
        +  ],
        +  "type": "string"
        +}
    • Addedcrew_list_kols
    • Addedcrew_submit_signed
    • Changedcrew_wire_fees2 fields changed
      • addedInput schema / properties / crew / items / properties / evmWallet
        Added value: +{
        +  "maxLength": 42,
        +  "minLength": 42,
        +  "type": "string"
        +}
      • changedInput schema / properties / crew / items / properties / wallet / minLength
        Previous value: -32New value: +20
  8. 4 tool updates
    • Changedcrew_autohire2 fields changed
      • changedInput schema / properties / seats / description
        Previous value: -"Crew seats 1–10 (default 5)"New value: +"Crew seats 1–8 (default 5)"
      • changedInput schema / properties / seats / maximum
        Previous value: -10New value: +8
    • Changedcrew_launch2 fields changed
      • changedInput schema / properties / crew / maxItems
        Previous value: -10New value: +8
      • changedInput schema / properties / seats / maximum
        Previous value: -10New value: +8
    • Changedcrew_launch_dry_run2 fields changed
      • changedInput schema / properties / crew / maxItems
        Previous value: -10New value: +8
      • changedInput schema / properties / seats / maximum
        Previous value: -10New value: +8
    • Changedcrew_wire_fees1 field changed
      • changedInput schema / properties / crew / maxItems
        Previous value: -10New value: +8
  9. 1 tool update
    • Changedcrew_claim_key1 field changed
      • addedInput schema / properties / referral_code
        Added value: +{
        +  "description": "KOL referral code (crewpay.dev/r/<code>). Bound permanently on this key. Falls back to CREWPAY_REFERRAL_CODE env.",
        +  "maxLength": 24,
        +  "minLength": 2,
        +  "type": "string"
        +}
  10. 2 tool updates
    • Changedcrew_launch2 fields changed
      • changedInput schema / properties / dryRunId / description
        Previous value: -"From crew_launch_dry_run after human approval on approvalUrl"New value: +"Optional unless the API key has requireApproval=true"
      • changedInput schema / required
        Previous value: -[
        -  "dryRunId",
        -  "name",
        -  "ticker"
        -]New value: +[
        +  "name",
        +  "ticker"
        +]
    • Changedcrew_wire_fees2 fields changed
      • changedInput schema / properties / dryRunId / description
        Previous value: -"From crew_launch_dry_run intent=wire-fees after human wallet approval"New value: +"Optional unless the API key has requireApproval=true"
      • changedInput schema / required
        Previous value: -[
        -  "dryRunId",
        -  "mint"
        -]New value: +[
        +  "mint"
        +]
  11. 2 tool updates
    • Changedcrew_launch_dry_run3 fields changed
      • addedInput schema / properties / intent
        Added value: +{
        +  "description": "launch (default) or wire-fees",
        +  "enum": [
        +    "launch",
        +    "wire-fees"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / mint
        Added value: +{
        +  "description": "Required when intent=wire-fees",
        +  "maxLength": 64,
        +  "minLength": 32,
        +  "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,64}$",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "name",
        -  "ticker"
        -]
    • Changedcrew_wire_fees2 fields changed
      • addedInput schema / properties / dryRunId
        Added value: +{
        +  "description": "From crew_launch_dry_run intent=wire-fees after human wallet approval",
        +  "maxLength": 64,
        +  "minLength": 16,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "mint"
        -]New value: +[
        +  "dryRunId",
        +  "mint"
        +]
  12. 1 tool update
    • Changedcrew_launch2 fields changed
      • addedInput schema / properties / dryRunId
        Added value: +{
        +  "description": "From crew_launch_dry_run after human approval on approvalUrl",
        +  "maxLength": 64,
        +  "minLength": 16,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "name",
        -  "ticker"
        -]New value: +[
        +  "dryRunId",
        +  "name",
        +  "ticker"
        +]
  13. 12 tool updates
    • First observedcrew_autohire
    • First observedcrew_claim_key
    • First observedcrew_crank_remits
    • First observedcrew_discover
    • First observedcrew_launch
    • First observedcrew_launch_dry_run
    • First observedcrew_list_launches
    • First observedcrew_lock_holder_kol
    • First observedcrew_proof
    • First observedcrew_search_kols
    • First observedcrew_status
    • First observedcrew_wire_fees

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables launching tokens on pump.fun and StonkFun with user-signed transactions, plus a disclosed two-sided quoter for market making.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Drafts and deploys a coin from your repo to pump.fun's bonding curve on Solana, with local key management and fee recycling into an agent budget.
    7
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coordinated pump.fun buys, sells, and token launches using encrypted local Rust wallets, with previews, simulation, Jito bundle submission, status tracking, and pump.fun API/RPC access through MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Scans new Solana token launches from pump.fun, Raydium, PumpSwap, and Orca with liquidity and holder data. Pay-per-call via x402 micropayments.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.