Yolfi
OfficialThe Yolfi Agent Kit MCP server enables AI agents to integrate stablecoin crypto payments into applications through the Yolfi payment platform.
Authentication & Organization
Check API key validity and retrieve the current organization context (
yolfi_auth_status).Get and update organization settings including merchant name, support email, webhook URL, and webhook adapter format.
Settlement & Webhooks
Configure settlement wallets with user-provided addresses, networks, and enabled tokens (
yolfi_settlement_configure).Set up webhook delivery to a target endpoint with optional adapter formats (STRIPE, LEMON_SQUEEZY, PADDLE, POLAR, GUMROAD, DODO, or NONE).
Verify incoming
X-Yolfi-SignatureHMAC over raw webhook payloads to ensure authenticity of payment events.
Paylink Management
Create hosted checkout payment links for one-time or recurring payments (with user approval of name, price, currency, and type).
List existing paylinks (paginated) to avoid duplicates.
Retrieve details for a specific paylink by ID.
Disable a paylink permanently (destructive action; requires explicit user confirmation).
Payments
Create public payment invoices from existing paylinks, specifying blockchain network and token symbol.
Check payment status by ID (preferred over relying on frontend redirects).
Allows configuring webhook delivery with a Stripe-compatible adapter for payment event notifications and signature verification.

Yolfi Agent Kit
AI agent payment integration for crypto checkout. Yolfi Agent Kit is a JSON-first SDK, CLI, Agent Skill, and MCP server that lets AI coding agents add stablecoin checkout, payment links, payment status checks, webhook verification, and webhook-based access logic to applications through Yolfi.
Use @yolfi/agent when Codex, Claude Code, Cursor, OpenClaw, an MCP host, or a custom AI agent can build the product but still needs a reliable payment API to register a Yolfi workspace, create a paylink, configure webhooks, and verify crypto payment status without sending the user through manual dashboard setup.
Website | Agent Kit | Docs | npm | GitHub | Glama | Guide
Languages
Read this package guide in: English, Español, Deutsch, Français, 简体中文, Русский, हिन्दी, Türkçe, 한국어, 日本語.
Related MCP server: remit.md MCP Server
Why Developers Use It
Add AI agent payments to SaaS products, games, marketplaces, donation pages, digital downloads, internal tools, and agent-built apps.
Give coding agents a safe payment workflow: inspect the app, authorize or reuse a workspace, ask for wallet and price decisions, create paylinks, install checkout, verify webhooks, and check payment status.
Use one package for MCP crypto payments, JSON CLI automation, JavaScript SDK calls, webhook signature verification, and agent-readable instructions.
Build with the existing Yolfi API instead of maintaining a second agent-only payment API.
Help agents discover Yolfi through npm, GitHub, MCP directories,
llms.txt, docs, examples, and integration guides.
Yolfi handles crypto payment infrastructure, hosted checkout, paylinks, public payment invoices, organization settings, settlement wallet configuration, and webhook delivery. Your agent handles project inspection, code changes, user confirmation, and target-app integration.
What It Can Add To An App
Hosted crypto checkout through Yolfi paylinks.
One-time payment links for digital products, credits, files, tools, or game items.
Recurring or subscription-style payment link setup when the Yolfi account supports it.
Donation and creator-support payment pages.
Server routes that create public payment invoices from a paylink.
Payment status polling through Yolfi public payment endpoints.
Webhook handlers that verify
X-Yolfi-Signature.Webhook-based entitlement logic that unlocks access only after confirmed payment events.
Agent workflows for Codex, Claude Code, Cursor, OpenClaw, and custom automation.
Agent Skill
This package includes the Yolfi Payments Skill in SKILL.md. Use it with coding agents when the user asks to add crypto payments, payment links, checkout, subscriptions, donations, paid downloads, paid access, or webhook-based entitlements.
Recommended safe workflow:
inspect app -> setup agent -> browser authorization -> checkin -> auth status -> ask user for wallet and price -> configure organization -> create or reuse paylink -> add checkout -> add webhook verification -> verify statusThe skill tells agents what they may do automatically and what they must ask the user to decide. Agents must never invent wallet addresses, prices, plans, currencies, secret storage locations, or destructive paylink actions.
Install
Install in a project:
npm install @yolfi/agentOr run without installing:
npx -y @yolfi/agent helpStart the stdio MCP server:
npx -y @yolfi/agent mcpFor local development inside this repository:
node packages/yolfi-agent/src/cli.js helpAuthentication
The preferred local flow opens browser authorization and stores the resulting yolfi_agent_* credential in ~/.yolfi/config.json:
npx -y @yolfi/agent setup --agent codex
# Open the returned loginUrl and finish authentication.
npx -y @yolfi/agent checkin --agent codex
npx -y @yolfi/agent auth:statusThe config directory and file are created with 0700 and 0600 permissions where supported. Set YOLFI_CONFIG_HOME to override the config directory in isolated development or CI environments.
Explicit credentials still work and take precedence over stored credentials:
export YOLFI_API_KEY="yolfi_agent_..."The CLI and local MCP server also support email-confirmed signup for a new Yolfi user. The agent must ask the user to confirm the email and project name before registration:
export YOLFI_REGISTRATION_IDEMPOTENCY_KEY="76cd8dd3-b92a-42d6-ae2f-bc013752cf30"
yolfi auth:agent-register \
--email "owner@example.com" \
--project-name "Space Shop" \
--agent-name "Codex" \
--integration-intent accept_payments \
--ref npm \
--idempotency-key "$YOLFI_REGISTRATION_IDEMPOTENCY_KEY"The first call creates a pending signup, emails the owner a confirmation link, and stores a protected check-in token locally. After the owner opens that link, run the exact same command again. The second call checks the pending signup, stores the one-time yolfi_agent_* credential in the protected local config, and removes the full credential from CLI/MCP output.
This command is signup-only. If the email already has a Yolfi account, use OAuth or local browser setup instead. If the pending signup expires or fails, use yolfi setup followed by yolfi checkin for the provisioned account rather than trying to register the same email again.
The CLI generates and persists a UUID when --idempotency-key is omitted. It automatically reuses that key and the protected check-in token for the repeated command and after a lost response. A new registration intent may pass a different 16–200 character key. The MCP yolfi_agent_register tool follows the same behavior through its optional idempotencyKey argument: call it once to send the email and again after confirmation.
Never print a full API key in logs, commit it, or write it into target-project documentation. See Agent and MCP setup for host-specific instructions.
Quick Start
Check the workspace linked to the API key:
yolfi auth:statusConfigure settlement wallets after the user provides wallet addresses:
yolfi settlement:configure --json examples/organization.settlement.jsonConfigure one or more webhook endpoints. Deliveries, retries, and signing secrets are independent. The CLI stores each create/rotate secret in the protected local Yolfi config and prints only redacted metadata:
yolfi webhooks:add \
--name "Application" \
--url https://example.com/api/yolfi/webhook \
--adapter NONE
yolfi webhooks:add \
--name "Analytics endpoint" \
--url https://analytics.example/api/payments/yolfi/<websiteId>/webhook \
--adapter NONE \
--metadata-filters '{"website_id":"<websiteId>"}'
yolfi webhooks:listEndpoint create and update payloads accept optional flat metadataFilters string maps (at most 10 entries; keys at most 100 characters; values at most 255 characters); deliveries must match every configured key/value. Analytics routing uses the single key website_id; do not introduce alternative analytics keys. The CLI accepts filters as validated JSON through --metadata-filters. Use webhooks:update --id <endpointId> --json endpoint.json (optionally with --metadata-filters '{"website_id":"<websiteId>"}') to edit or enable/disable an analytics endpoint. webhooks:remove requires --confirm; endpoints with delivery history are disabled rather than deleting their audit relationship.
List existing paylinks before creating duplicates:
yolfi paylinks:list --page 1 --rows 10Create a one-time payment link:
yolfi paylinks:create --json examples/paylink.one-time.jsonCreate a public payment invoice from a paylink:
yolfi payments:create --json examples/payment.create.jsonThe invoice body requires paylinkId, network, symbol, and customerEmail. It also accepts optional
clientReferenceId (your internal customer/order reference, returned as
customer.clientReferenceId in webhooks), customerName, customerPhone, customerDateOfBirth,
customerAddress, subscriptionId, language, and metadata.
Hosted Paylink URLs accept the same payment-scoped metadata through explicitly namespaced query
parameters such as metadata[order_id]=order-123. Metadata keys must use letters, numbers,
underscores, or dashes; values passed through the hosted URL are strings. The payment API also
accepts finite numbers and booleans. Metadata is limited to 20 keys, 64 characters per key, and
500 characters per string value.
Use a stable customer or application-user id for clientReferenceId when webhook handlers must
resolve subscription ownership. Native (NONE) payloads expose it as
data.customer.clientReferenceId; Stripe-compatible Checkout Session payloads use
data.object.client_reference_id, Stripe-compatible Invoice and Subscription payloads use
data.object.metadata.client_reference_id, and Lemon Squeezy-compatible payloads use
meta.custom_data.client_reference_id.
Check payment status:
yolfi payments:status --id <paymentId>Every CLI command prints JSON so agents can parse results without scraping terminal text.
MCP Server For Crypto Payments
Yolfi provides both a production streamable HTTP endpoint and a local stdio server:
Remote: https://app.yolfi.com/mcp
Local: npx -y @yolfi/agent mcpThe packaged Codex and Claude plugins use the bundled local stdio server so agent setup, check-in, and new-user registration are available as MCP tools. A manually configured remote connection uses OAuth managed by the MCP host and does not expose those local credential tools.
Codex remote:
codex mcp add yolfi --url https://app.yolfi.com/mcp
codex mcp login yolfiCodex local:
codex mcp add yolfi -- npx -y @yolfi/agent mcpClaude Code remote:
claude mcp add --transport http yolfi https://app.yolfi.com/mcpThen open Claude Code, run /mcp, select Yolfi, and complete browser authorization.
Claude Code local:
claude mcp add yolfi -- npx -y @yolfi/agent mcpGeneric local MCP configuration:
{
"mcpServers": {
"yolfi": {
"command": "npx",
"args": ["-y", "@yolfi/agent", "mcp"]
}
}
}After connecting a local server, call yolfi_agent_setup_start with a stable agent slug, open the returned loginUrl, then call yolfi_agent_checkin with the same slug. The local server stores the connected credential securely. For CI and other non-interactive environments, provide a manually managed YOLFI_API_KEY instead.
For ChatGPT desktop, open Settings → MCP servers → Add server, choose Streamable HTTP, enter https://app.yolfi.com/mcp, save, and restart. ChatGPT web uses a remote MCP-backed plugin in Work mode; it cannot start the local stdio command or read local Codex configuration. Detailed ChatGPT developer-mode and plugin steps are in docs/agent-setup.md.
Available MCP tools:
yolfi_agent_setup_startyolfi_agent_checkinyolfi_agent_registeryolfi_auth_statusyolfi_organization_getyolfi_organization_updateyolfi_settlement_configureyolfi_webhooks_configureyolfi_webhooks_listyolfi_webhooks_updateyolfi_webhooks_rotate_secretyolfi_webhooks_deleteyolfi_paylinks_createyolfi_paylinks_listyolfi_paylinks_getyolfi_paylinks_disableyolfi_payments_createyolfi_payments_statusyolfi_webhooks_verify
Webhook create/rotate tools save the one-time signing secret in the protected local Yolfi config and never return its plaintext through CLI stdout or an MCP transcript. Pass endpointId to yolfi_webhooks_verify to use that stored secret. CI and deployed services can provide an explicitly managed YOLFI_WEBHOOK_SECRET instead.
Destructive tools such as yolfi_paylinks_disable must only run after explicit user confirmation.
JSON Workflow For Agents
Agents can write a payload file and pass it to the CLI:
{
"name": "Premium Download",
"description": "One-time access to a digital product.",
"type": "ONE_TIME",
"price": "19",
"currency": "USD",
"collectEmail": true,
"metadata": {
"source": "agent",
"productSlug": "premium-download"
}
}Then run:
yolfi paylinks:create --json ./paylink.jsonAgents should keep the returned paylink ID in env/config for the target app and use Yolfi public payment endpoints for customer-facing checkout and status polling.
Commands
yolfi setup --agent codex
yolfi checkin --agent codex
yolfi auth:agent-register --email "owner@example.com" --project-name "App" --agent-name "Codex" --integration-intent accept_payments --idempotency-key <same-key-on-retry>
yolfi auth:status
yolfi organization:update --json organization.json
yolfi settlement:configure --json settlement.json
yolfi webhooks:configure --url https://example.com/api/yolfi/webhook --adapter STRIPE
yolfi paylinks:create --json paylink.json
yolfi paylinks:list --page 1 --rows 10
yolfi paylinks:get --id <paylinkId>
yolfi paylinks:disable --id <paylinkId> --confirm
yolfi payments:create --json payment.json
yolfi payments:status --id <paymentId>
yolfi webhooks:verify --payload payload.json --signature <signature>
yolfi mcpEndpoint Adapter Matrix
Yolfi Agent Kit maps agent actions to the canonical Yolfi API:
Agent action | Backend endpoint | Auth |
Start browser agent setup |
| public; returns short-lived check-in state |
Check browser agent setup |
| public check-in token; returns credential once when connected |
Register a new Yolfi user and workspace |
| public signup-only flow; confirmed new email required |
Check account |
| bearer API key |
Configure organization and settlement wallets |
| bearer API key |
Create webhook endpoint |
| bearer API key |
Get API key status |
| bearer API key or cookie |
Create paylink |
| bearer API key |
List paylinks |
| bearer API key |
Get paylink |
| bearer API key |
Edit paylink |
| bearer API key |
Disable paylink |
| bearer API key plus confirmation |
Public paylink checkout info |
| public |
Create public payment invoice |
| public |
Payment status |
| public |
Merchant transactions |
| bearer API key |
SDK
import { YolfiClient } from "@yolfi/agent";
const yolfi = new YolfiClient({
apiKey: process.env.YOLFI_API_KEY,
});
const account = await yolfi.authStatus();
const paylink = await yolfi.createPaylink({
name: "Premium Download",
description: "One-time access to a digital product.",
type: "ONE_TIME",
price: "19",
currency: "USD",
collectEmail: true,
metadata: {
source: "agent",
productSlug: "premium-download",
},
});
console.log(account.success);
console.log(paylink.data?.id ?? paylink.id);Webhook Verification
Yolfi signs webhook payloads with X-Yolfi-Signature. Verify the raw request body before parsing and trusting the event:
import { verifyWebhookSignature } from "@yolfi/agent";
const valid = verifyWebhookSignature(
rawBody,
request.headers["x-yolfi-signature"],
process.env.YOLFI_WEBHOOK_SECRET,
);
if (!valid) {
throw new Error("Invalid Yolfi webhook signature");
}Do not treat a frontend redirect as proof of payment. Use verified webhooks and Yolfi payment status checks.
Use With AI Coding Agents
Yolfi Agent Kit is designed for agentic payment workflows where the user gives a high-level instruction like "add payments", "sell this digital product", "add a donation button", "charge for this game", or "gate this feature behind payment".
Codex: inspect the repo, add checkout routes/components, configure env vars, and wire verified webhooks into existing entitlement logic.
Claude Code: use the MCP server and Agent Skill to add payment links, server handlers, and status checks with user approval for wallet and price decisions.
Cursor: add payment UI and backend handlers while keeping Yolfi keys out of committed source.
OpenClaw and custom agents: connect product-building workflows to Yolfi through CLI, SDK, MCP tools, and JSON payloads.
Recommended agent path:
auth:status -> organization:get -> paylinks:list -> user approval -> settlement:configure -> webhooks:configure -> paylinks:create -> install checkout -> verify webhook -> payments:statusAgent Recipes
The examples/ folder includes copy-paste workflows and JSON payloads:
examples/codex/add-yolfi-payments.mdexamples/claude-code/add-yolfi-payments.mdexamples/cursor/add-yolfi-payments.mdexamples/paylink.one-time.jsonexamples/paylink.recurring.jsonexamples/organization.settlement.jsonexamples/payment.create.jsonexamples/webhook.stripe-adapter.json
What This Package Is Not
It is not a separate Yolfi dashboard.
It is not a wallet provider.
It is not a second payment API with duplicated business logic.
It does not invent settlement wallets, product names, prices, currencies, subscriptions, or donation amounts.
It does not bypass user confirmation for destructive actions.
It does not store secrets in source code.
It does not use redirects as payment confirmation.
Current Limits
ChatGPT web can use only the remote MCP endpoint through a plugin; it cannot start the local stdio package.
Each webhook endpoint has its own signing secret. The CLI/MCP create and rotate flows store it locally without printing it; verification uses
--endpoint-id, MCPendpointId, or the explicitly managedYOLFI_WEBHOOK_SECRET. The organization API key is never used as a signing secret.Browser setup returns the agent credential once at successful check-in. The local CLI stores it in the protected Yolfi config; remote hosts manage authentication separately.
Final payment confirmation should come from verified webhooks and payment status checks, not from UI redirects.
MCP directory approval is separate from this package. Do not claim official directory approval until a listing is accepted.
Search Phrases This Package Serves
Developers and agent builders often look for:
AI agent payment integration
AI coding agent payments
MCP payment server
MCP crypto payments
crypto checkout API for agents
payment links for AI agents
stablecoin checkout for apps
webhook payment verification
agentic payment workflow
add crypto payments with Codex, Claude Code, or Cursor
Yolfi Agent Kit is the package entry point for those workflows.
Links
Yolfi: https://yolfi.com
Agent Kit page: https://yolfi.com/ai-agent-kit
LLM index: https://docs.yolfi.com/llms.txt
Full LLM context: https://docs.yolfi.com/llms-full.txt
npm package: https://www.npmjs.com/package/@yolfi/agent
GitHub repo: https://github.com/yolfinance/yolfi-agent
Glama MCP listing: https://glama.ai/mcp/servers/yolfinance/yolfi-agent
Integration guide: https://yolfi.com/blog/ai-agent-payment-integration-api
Available Tools
13 toolsyolfi_agent_registerRegister Yolfi Workspace For AgentAInspect
Register a Yolfi workspace through the public agent registration endpoint when no YOLFI_API_KEY exists yet. This returns an API key once; store it in an ignored env file or secret manager before using private tools.
| Name | Required | Description | Default |
|---|---|---|---|
| agentName | Yes | Name of the coding agent or MCP host, for example Codex, Claude Code, Cursor, or OpenClaw. | |
| projectName | Yes | User-approved product or project name for the Yolfi workspace. | |
| projectUrl | No | Optional public or local URL of the target product, if known. | |
| integrationIntent | No | User-approved reason for the integration. Defaults to accept_payments when omitted. | accept_payments |
| language | No | Optional preferred language code for agent-facing responses. | |
| ref | No | Optional source tag such as mcp, glama, npm, docs, codex, claude-code, or cursor. | |
| metadata | No | Optional safe non-secret metadata. Do not include API keys, wallet private keys, tokens, or personal secrets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond annotations: it reveals the tool is one-time ('returns an API key once'), specifies it uses a public registration endpoint, and instructs on secure key storage. No contradiction with annotations (openWorldHint=true is consistent with registering a workspace).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core purpose and condition, then provide essential post-action guidance. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return value ('API key'), the condition for use, and a warning about secret storage. No output schema exists, so the description compensates well. Missing details like exact error handling or rate limits, but acceptable for a straightforward registration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning for individual parameters; it only provides context about the key and storage. No additional parameter semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Register') and resource ('Yolfi workspace') with a specific condition ('when no YOLFI_API_KEY exists yet'), distinguishing it from sibling tools that handle authentication status, organization management, or payment operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when no YOLFI_API_KEY exists yet') and provides post-usage guidance ('store it in an ignored env file or secret manager before using private tools'). It does not explicitly list alternatives but implies using other tools after registration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_auth_statusCheck Yolfi Auth StatusARead-onlyIdempotentInspect
Verify that YOLFI_API_KEY can authenticate and return the current Yolfi organization context before mutating payment settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, and idempotentHint=true, so the description adds value by specifying the return of 'current Yolfi organization context' and confirming the non-destructive, safe nature. However, the behavioral traits are largely covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core purpose and usage context, containing no redundant words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, comprehensive annotations, and no output schema, the description is fully adequate. It clearly explains what the tool does, what it returns, and when to use it, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description cannot add parameter semantics, but the baseline for no parameters is 4. The description appropriately highlights the auth-check purpose without needing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Verify' and resource 'YOLFI_API_KEY can authenticate and return the current Yolfi organization context' are specific and distinct from sibling tools like yolfi_organization_get, which retrieves organization details rather than checking auth status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'before mutating payment settings,' providing clear context for when to use the tool as a precondition check, which differentiates it from mutation tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_organization_getGet Yolfi OrganizationARead-onlyIdempotentInspect
Read the current Yolfi organization settings, including webhook and settlement configuration visible to this API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying the content returned (webhook and settlement configuration visible to the API key), which is not evident from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence (16 words) that front-loads the key action and content. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and rich annotations (readOnly, idempotent), the description covers the purpose and scope well. It lacks details about the return format, but for a simple read operation without output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description need not add parameter details. Schema coverage is 100% trivially. The description does not need to compensate, so a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads organization settings, specifying 'webhook and settlement configuration visible to this API key.' It uses a specific verb ('read') and resource ('organization settings'), and distinguishes itself from sibling tools like yolfi_organization_update by implying a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The context implies it is for inspecting current settings before making changes, but the description does not state when-not-to-use or mention sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_organization_updateUpdate Yolfi OrganizationBInspect
Update organization profile fields through the existing Yolfi organization endpoint. Do not invent merchant identity, support email, webhook URL, or settlement settings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Merchant or project display name approved by the user. | |
| No | Merchant support or account email approved by the user. | ||
| webhookUrl | No | HTTPS webhook endpoint in the target application. Ask the user if the backend URL is unknown. | |
| webhookAdapter | No | Webhook adapter output format. Use NONE unless the target app expects a compatible provider payload. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not disclose whether the update is partial or full, confirmation behavior, or consequences. The caution is a constraint, not a behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one clear purpose statement and one caution. Both are front-loaded and contain no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 optional parameters, no output schema, and annotations, the description provides basic purpose and a caution but lacks details on response, partial update behavior, or effect of omitted fields. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds no further meaning to the parameters beyond the schema, such as format or defaults. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state 'Update Yolfi Organization' and 'Update organization profile fields', with a specific verb and resource. The caution about not inventing fields adds clarity and distinguishes it from related tools like yolfi_organization_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives such as yolfi_organization_get or yolfi_settlement_configure. It only cautions against inventing fields, which is not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_paylinks_createCreate Yolfi PaylinkBInspect
Create a Yolfi payment link only after the user approves product name, amount, currency, and one-time or recurring payment type.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | User-approved product, plan, donation, or access name shown on checkout. | |
| description | No | Optional user-approved customer-facing description. | |
| price | Yes | User-approved decimal price, represented as a string to avoid numeric rounding. | |
| currency | Yes | Fiat or account currency code approved by the user, for example USD. | |
| type | Yes | Payment link type approved by the user, for example ONE_TIME or RECURRING. | |
| recurringInterval | No | Recurring interval when creating a recurring payment link. | |
| collectEmail | No | Whether checkout should collect customer email. | |
| metadata | No | Safe non-secret metadata such as source, productSlug, planId, or environment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse (readOnlyHint, destructiveHint, idempotentHint all false, openWorldHint true). The description only adds the approval requirement, but does not disclose other behavioral traits like idempotency, error behavior, or authority needs. For a creation tool, more context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that is front-loaded with the main action. It is concise and to the point, though slightly more structure could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters (including nested objects) and no output schema, the description is minimal. It does not explain return values, what happens if recurringInterval is provided for ONE_TIME, or other important context. Incomplete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters with descriptions). The description text adds 'user-approved' context but does not provide additional meaning beyond what the schema already says. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a Yolfi payment link, which is a specific verb+resource. The name already distinguishes it from siblings like 'yolfi_paylinks_disable'. However, it could be more explicit about what a paylink is, but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a precondition: 'only after the user approves...', which guides when to use the tool. It implies not to use it without prior approval, but does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_paylinks_disableDisable Yolfi PaylinkADestructiveInspect
Disable a paylink. This is destructive and must only run after explicit user confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Yolfi paylink ID to disable. | |
| confirm | Yes | Must be true only after explicit user confirmation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true and readOnlyHint=false. The description adds crucial context: 'This is destructive and must only run after explicit user confirmation,' emphasizing the need for user confirmation beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each earning its place. The first sentence states the action; the second adds critical safety instruction. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the action, destructive nature, and confirmation requirement. Could mention the outcome (e.g., the paylink becomes inactive) or return value, but overall sufficient for a disable operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description does not add extra meaning beyond the schema, but the schema is clear. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Disable Yolfi Paylink' and description 'Disable a paylink' clearly state the action and resource. The tool is distinct from sibling tools (no other disable tool).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it is destructive and requires explicit user confirmation. However, it does not mention when to use this tool vs. alternatives (e.g., yolfi_paylinks_list or yolfi_paylinks_get).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_paylinks_getGet Yolfi PaylinkARead-onlyIdempotentInspect
Get private paylink details by ID for verification, checkout wiring, or duplicate detection.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Yolfi paylink ID returned by yolfi_paylinks_create or yolfi_paylinks_list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which cover safety and idempotency. The description adds the context that details are 'private', implying access control considerations, but does not elaborate further on behavioral traits such as rate limits or required permissions. It adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words, front-loading the action and identifier, and then listing three use cases. Every word serves a purpose; there is no fluff. It is maximally concise while still providing essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one well-described parameter and safety annotations, the description covers the key aspects: what it does, what input to provide, and when to use it. There is no output schema, so the agent might need to infer the return format, but the use cases given help set expectations. It is largely complete for its complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'id' with 100% description coverage, stating it is a Yolfi paylink ID from other tools. The tool description does not add extra semantic information about the parameter beyond what the schema provides. Given the full schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the resource ('private paylink details'), and specifies the identifier ('by ID'). It also lists three distinct use cases (verification, checkout wiring, duplicate detection), which clearly differentiates it from sibling tools like yolfi_paylinks_list (list all) and yolfi_paylinks_create (create new).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: for verification, checkout wiring, or duplicate detection. This provides clear context. However, it does not explicitly state when not to use it or mention alternatives, though the sibling tools are listed separately. The guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_paylinks_listList Yolfi PaylinksARead-onlyIdempotentInspect
List existing Yolfi paylinks before creating new ones so agents can avoid duplicates after retries or timeouts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Defaults to 1. | |
| rows | No | Rows per page. Defaults to 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context about retries and timeouts, which is valuable beyond the annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and use case, with no redundant words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good purpose clarity and usage guidance, the description does not explain the output format or what the response contains. Since there is no output schema, this is a notable gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described (page, rows with defaults). The description does not add any parameter-specific information, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list existing Yolfi paylinks) and the resource, with a specific use case (before creating new ones to avoid duplicates after retries or timeouts). This distinguishes it from siblings like yolfi_paylinks_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (before creating new paylinks), providing good context. However, it does not mention when not to use it or suggest alternatives, though the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_payments_createCreate Yolfi Public PaymentAInspect
Create a public payment invoice from an existing paylink for checkout integration, testing, or customer flow setup.
| Name | Required | Description | Default |
|---|---|---|---|
| paylinkId | Yes | Yolfi paylink ID used to create the customer payment. | |
| network | Yes | Blockchain network identifier supported by the Yolfi organization, for example ARB. | |
| symbol | Yes | Payment token symbol supported on the selected network, for example USDC. | |
| customerEmail | No | Optional customer email for checkout or receipts. | |
| metadata | No | Safe non-secret metadata for the target app payment flow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutability (readOnlyHint=false), non-destructiveness (destructiveHint=false), and side effects (openWorldHint=true). The description adds minimal behavioral context beyond 'create', which is consistent. It does not elaborate on side effects, reversibility, or required permissions, so it adds little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence (14 words) that is front-loaded with the action. Every word adds value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters (including nested metadata with no allowed structure explained), no output schema, and openWorldHint, the description is minimal. It informs the basic purpose and use cases but omits details about return values, metadata constraints, or the meaning of 'public payment invoice'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not provide additional meaning for parameters beyond what the schema already includes (e.g., 'paylinkId' is described as existing, but details like format are in schema). No extra param-specific guidance is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a public payment invoice from an existing paylink, with explicit use cases (checkout, testing, customer flow). The verb 'Create' and resource 'payment invoice' are specific, and the description distinguishes it from siblings like yolfi_payments_status (status check) and yolfi_paylinks_create (creates paylinks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for when to use (from an existing paylink for checkout/testing/customer flow) but lacks explicit guidance on when not to use or alternatives. No comparison to sibling tools is given, so the agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_payments_statusGet Yolfi Payment StatusARead-onlyIdempotentInspect
Get public payment status by ID. Do not treat a frontend redirect as proof of payment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Yolfi payment ID returned by yolfi_payments_create. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations (readOnlyHint, etc.) by warning against relying on frontend redirects, clarifying the need for server-side verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, directly state purpose and key warning, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and a critical usage caveat; lacks details about the response format (status values), but acceptable for a simple read tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds minimal value beyond the schema's parameter documentation; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves public payment status by ID (specific verb+resource) and is distinct from sibling tools like yolfi_payments_create or yolfi_auth_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The warning 'Do not treat a frontend redirect as proof of payment' provides critical usage guidance, but does not explicitly mention when to use this over alternatives or specify prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_settlement_configureConfigure Yolfi Settlement WalletsAInspect
Configure settlement wallets after the user provides wallet addresses, networks, and enabled tokens. Never invent wallet addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| settlementAccounts | Yes | Settlement account objects accepted by the Yolfi organization endpoint. Example fields: id, address, tokens. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readOnly, non-destructive, non-idempotent, and open-world. The description adds that it configures wallets and forbids inventing addresses. It does not elaborate on side effects, reversibility, or return behavior, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences front-loaded with purpose. It includes a crucial constraint without unnecessary detail. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description covers the main purpose and a key rule. However, it does not mention what happens on success or failure, or if there are prerequisites beyond user input (e.g., authentication via yolfi_auth_status).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the parameter 'settlementAccounts' with example fields. The description's mention of wallet addresses, networks, and enabled tokens echoes this but does not add significant new meaning beyond the schema. With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Configure' and the resource 'settlement wallets', and specifies that it should be used after the user provides wallet addresses, networks, and enabled tokens. This distinguishes it from sibling tools like yolfi_organization_update which is more general.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance by stating 'after the user provides wallet addresses, networks, and enabled tokens' and the rule 'Never invent wallet addresses.' However, it does not explicitly mention when not to use this tool or compare it to alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_webhooks_configureConfigure Yolfi WebhooksAInspect
Configure webhook delivery for the target app. The host must not invent backend URLs and must ensure the app verifies X-Yolfi-Signature.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS webhook URL in the target app, for example https://example.com/api/yolfi/webhook. | |
| adapter | No | Webhook adapter output format. Defaults to NONE if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-idempotent behavior. The description adds context: it configures webhook delivery and emphasizes that the URL must be real and the app must verify signatures, which is beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, no fluff, front-loaded with the purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, no output schema, good annotations), the description sufficiently covers what the tool does and critical constraints. It is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameters are well-described in the schema. The description adds some meaning for the 'url' parameter by stating 'must not invent backend URLs', but says nothing about 'adapter.' Baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Configure' and the resource 'webhook delivery for the target app.' It distinguishes from sibling tools such as 'yolfi_webhooks_verify' by specifying configuration rather than verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides important usage guidance: 'The host must not invent backend URLs' and 'must ensure the app verifies X-Yolfi-Signature.' While it does not explicitly compare to siblings, it gives clear constraints for correct use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yolfi_webhooks_verifyVerify Yolfi Webhook SignatureARead-onlyIdempotentInspect
Verify an X-Yolfi-Signature HMAC over the raw JSON webhook payload before trusting payment events.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Raw webhook request body string, before JSON parsing. | |
| signature | Yes | X-Yolfi-Signature header value. | |
| secret | No | Optional explicit webhook secret. Defaults to YOLFI_WEBHOOK_SECRET or YOLFI_API_KEY. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it performs HMAC verification, which is a specific behavioral trait. It does not detail failure modes but is consistent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the action and purpose. No extraneous words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains the tool's role for a verification operation with complete parameter documentation and clear annotations. Missing output schema is acceptable for a simple verification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters. The tool description adds no additional parameter information, so it meets the baseline without further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and title clearly indicate verification of webhook signatures. The description specifies the exact action (verify HMAC over raw JSON payload) and the context (payment events), distinguishing it from sibling tools like yolfi_webhooks_configure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (before trusting payment events), providing clear context. It does not explicitly exclude scenarios or mention alternatives, but the sibling list makes differentiation straightforward.
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. Dates show when Glama detected each change.
1 tool update
v0.1.4- Changed
yolfi_agent_register2 fields changed- added
Input schema / properties / integrationIntent / defaultAdded value: +"accept_payments" - changed
Input schema / properties / integrationIntent / descriptionPrevious value: -"User-approved reason for the integration, for example accept_payments, subscription, donation, or sell_digital_product."New value: +"User-approved reason for the integration. Defaults to accept_payments when omitted."
1 tool update
v0.1.1- Added
yolfi_agent_register
12 tool updates
v0.1.0- First observed
yolfi_auth_status - First observed
yolfi_organization_get - First observed
yolfi_organization_update - First observed
yolfi_paylinks_create - First observed
yolfi_paylinks_disable - First observed
yolfi_paylinks_get - First observed
yolfi_paylinks_list - First observed
yolfi_payments_create - First observed
yolfi_payments_status - First observed
yolfi_settlement_configure - First observed
yolfi_webhooks_configure - First observed
yolfi_webhooks_verify
TDQS
Each tool targets a distinct domain action—auth, organization, paylinks, payments, settlement, and webhooks—with no functional overlap. The descriptions clearly differentiate purposes.
All tools follow a consistent 'yolfi_<domain>_<verb>' pattern (e.g., yolfi_paylinks_create, yolfi_webhooks_verify), making the naming predictable and scannable.
12 tools cover essential operations for a payment platform—auth, org management, paylinks CRUD with safety guards, payment actions, settlement, and webhooks—without bloat or deficiency.
Core workflows are covered, but minor gaps exist: no paylink update (only create/disable), no payment refund or listing, and no webhook listing. These are non-blocking for typical use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Keyless non-custodial crypto payments for AI agents: payment links and tip jars, no API key.
Stripe payments for AI agents. Create links, verify, manage customers.
Complete financial infrastructure for AI agents — payments, lending, escrow & more.
United States payments for AI agents — Stripe checkout via Stripe. Never holds funds.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to interact with multiple payment providers (Stripe, Paystack) through a unified API. Supports payment initialization, verification, refunds, customer management, and invoicing without requiring knowledge of specific provider implementations.2-
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.22MIT

PayRam MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI agents to deploy and operate a self-hosted, no-signup crypto payment gateway with multi-chain support, card-to-crypto checkout, and MCP tools for payment links and integration snippets.155-- AlicenseNot gradedqualityBmaintenanceAccept crypto payments from AI agents: create an invoice in one call and get a hosted checkout link (USDC/USDT on Celo, Base, Arbitrum, Polygon, BSC). No API key, instant self-custody settlement.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yolfinance/yolfi-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server