Skip to main content
Glama

Server Details

The cross-LLM AI agent marketplace

Ownership verified
Status
Healthy
Uptime
89.7% over 61 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 44 tools

Disambiguation3/5

The surface distinguishes most resources clearly, but several clusters overlap: multiple create_* listing paths and a versioning cluster where findagent_new_version explicitly supersedes findagent_bump_version, findagent_repull, and findagent_reintrospect_mcp while all remain callable. Rich descriptions and routing notes reduce confusion, but the agent still has to choose among near-parallel lifecycle mechanisms.

Naming Consistency4/5

Every tool uses the findagent_ prefix and snake_case, and most follow a verb_noun pattern such as browse_agents, create_draft, and submit_for_review. A few names break that pattern (new_version, preflight, earnings, whoami, submission_status), but the convention remains largely predictable.

Tool Count2/5

44 tools is far above a well-scoped set; the marketplace domain is broad, but the count is inflated by parallel create and version mechanisms plus narrow helper tools. Many tools earn their place individually, yet the set as a whole is heavy and could be consolidated.

Completeness4/5

Coverage is broad across buyer, creator, submission, versioning, requests, GitHub, claims, and earnings workflows. Minor gaps remain around directly editing a pre-submit draft instead of delete/recreate, and richer review/interaction operations, but core lifecycles are covered.

Available Tools

44 tools
findagent_add_connectorA
Read-only
Inspect

Add a published FindAgent agent you're ENTITLED to (free, or paid + purchased) as a hosted MCP connector. Returns the per-client connector config — the hosted server URL (mcp.findagent.cloud/agents/), a drop-in mcp.json block, a Claude Code command, and the one-time FindAgent sign-in steps. Free agents are always available; a paid agent you don't own returns purchase_required pointing at findagent_buy_agent. An unknown or unpublished slug returns a needs_input result pointing back to findagent_browse_agents. This returns config only — the actual install happens when you complete the sign-in in your client. If the slug is an MCP SERVER LISTING rather than an agent FindAgent runs, it returns status external_mcp_server with the PROVIDER's own connect details (their URL, or the command that starts the server on the user's machine) and no FindAgent sign-in — FindAgent is not in that connection.

NameRequiredDescriptionDefault
slugYesThe published agent slug (from findagent_browse_agents).

Output Schema

NameRequiredDescription
slugNo
titleNo
statusNo
currencyNo
connectorNo
next_toolNo
connectionNo
price_typeNo
listing_urlNo
price_centsNo
price_labelNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, and the description explains why that is truthful: it 'returns config only — the actual install happens when you complete the sign-in in your client.' It goes well beyond the annotations by enumerating the three distinct result statuses (purchase_required, needs_input, external_mcp_server), the hosted URL format, and the fact that FindAgent is not in the loop for external listings.

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?

Dense but front-loaded: capability first, then return payload, then failure modes, then the external-server caveat. Every sentence carries information, though the four-sentence run-on covering entitlement and error states could be tightened slightly for scanning.

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?

Despite an output schema existing, the description still characterizes the returned config (hosted URL, mcp.json block, Claude Code command, sign-in steps) and all non-success statuses. Combined with readOnlyHint and openWorldHint annotations, an agent has everything needed to call this and interpret the result.

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% for the single slug parameter, so the baseline is 3, but the description adds real meaning: the slug must be a *published* agent slug, where to obtain it (findagent_browse_agents), and what each class of invalid slug produces. It stops short of any format/syntax guidance beyond that.

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 ('Add a published FindAgent agent ... as a hosted MCP connector') and immediately scopes it by entitlement. It also names the sibling tools it is not (findagent_browse_agents for discovery, findagent_buy_agent for purchase), so an agent can route correctly without opening another 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?

Explicit when-to-use and when-not-to-use: free agents always work, unowned paid agents return purchase_required pointing at findagent_buy_agent, unknown/unpublished slugs return needs_input pointing at findagent_browse_agents, and MCP server listings take a different path entirely. The alternative tool for each blocked case is named.

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

findagent_browse_agentsA
Read-only
Inspect

Browse the PUBLISHED FindAgent marketplace catalogue WITH pricing — the same store listing the website shows. Returns each agent's slug, title, tagline, price_type (free|paid), price_cents (USD cents), category, rating, install count, and kind. Optional filters: query (text search), category_slug (from findagent_list_categories), price (free|paid). PAGINATED: pass offset (use the returned next_offset) to page through the FULL catalogue until has_more is false. Use findagent_get_agent for the full store view of one slug.

NameRequiredDescriptionDefault
limitNoOptional page size (default 20, max 100).
priceNoOptional price filter: only free, or only paid agents.
queryNoOptional free-text search over title/tagline/description.
offsetNoOptional pagination offset (default 0). Pass the response next_offset to fetch the next page; repeat until has_more is false to enumerate the whole catalogue.
category_slugNoOptional category slug from findagent_list_categories to filter by.

Output Schema

NameRequiredDescription
countNo
limitNo
usageNo
agentsNo
offsetNo
has_moreNo
next_offsetNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds behavioral context: it is paginated, explains the offset/next_offset mechanism and has_more flag, and lists the exact return fields. It does not contradict annotations and discloses all relevant operational behavior without being redundant.

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?

The description is compact but information-dense, leading with the core purpose and then layering details. It is structured logically (scope, returns, filters, pagination, alternative) and avoids fluff, though it is slightly longer than the minimum needed.

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?

An output schema exists, so return values are already defined. The description covers pagination, filters, and the relationship to sibling tools, leaving no missing operational guidance for a read-only listing tool. It is complete for an agent to call it correctly.

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 100% and each parameter already has a detailed description (e.g., offset explains pagination, category_slug references findagent_list_categories). The description repeats these details without adding new meaning, so it provides marginal value beyond the schema. 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?

The description states a specific action: browse the PUBLISHED catalogue with pricing, and clearly enumerates the returned fields and filters. It also distinguishes itself from sibling tools by referencing the website listing and explicitly naming findagent_get_agent for single-agent detail, making its scope unambiguous.

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 a clear alternative: 'Use findagent_get_agent for the full store view of one slug,' which tells the agent when to prefer another tool. It also references findagent_list_categories for category slugs, but does not enumerate other exclusions (e.g., when to use findagent_list_my_agents). This is clear context with a single explicit alternative, but not exhaustive guidance.

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

findagent_bump_versionAInspect

Publish a NEW version of YOUR OWN published agent built here (instructions, skills and actions) for review. Pass the agent slug + a semver bump (patch|minor|major). You can fully EDIT the new version: system_prompt + example_prompts, AND (for an agent built here) the whole capability surface — pass tools (and optional credential_slots / guardrails) to add/remove/edit tools + action bindings + credential slots, and optional price_type/price_cents to change the price. Any capability change re-runs the same security scan + author-time auth_ref↔host check. changelog is optional when you edit tools (auto-drafted from the diff); otherwise pass 10–500 chars. The new version goes to admin review; your LIVE version keeps serving until it is approved (never auto-unpublished). A price change applies immediately (not retroactive). Owner-only. (Code-bundle agents re-version through the code wizard, not here.) An ACTION agent whose findagent.json lives in a GitHub repo you can write to should NOT take its tool array through this field path: call findagent_new_version (or findagent_repull) with repo instead, so the tools are read server side and never re-typed by a model. This field path stays for edits with no repo.

NameRequiredDescriptionDefault
bumpYes
llmsNoTarget clients ⊂ {claude,chatgpt,gemini,cursor,vscode,custom}.
slugYesYour published agent slug (you must own it).
toolsNoOptional FULL action and skill tool set for the new version (web-builder parity). Presence REPLACES the agent's whole tool surface — pass the complete intended list (add/remove/edit); item shape is in `items`. auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced). Omit to keep the stored tools (prompt-only edit).
changelogNoWhat changed (10–500 chars). Optional when you pass `tools` — then it is auto-drafted from the tool diff; supply your own to override.
guardrailsNoOptional declared guardrails for the new version (you can only TIGHTEN; the platform always applies its mandatory rails). An invalid block fails the bump.
price_typeNoOptional. Change the price alongside the bump. Applies immediately (audited, not retroactive — existing buyers keep access).
price_centsNoRequired when price_type=paid: positive integer of US cents, max 50000 ($500).
system_promptNoThe updated agent instructions. For an agent whose prompt isn't the authoring surface (kind 'mcp-tool' / 'skills-bundle') you may omit it to keep the stored one; otherwise min 50 chars.
example_promptsNoUp to 5 concrete things a user can ask it to do.
credential_slotsNoOptional. The new version’s full credential-slot set when you pass `tools` — item shape is in `items`. DEFINITIONS ONLY — never send secret VALUES.

Output Schema

NameRequiredDescription
slugNo
statusNo
versionNo
changelogNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the full behavioral workflow: the new version goes to admin review, the live version keeps serving until approved and is never auto-unpublished, a price change applies immediately but not retroactively, capability changes re-run the security scan and author-time auth_ref↔host check, and guardrails can only be tightened.

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?

The description is long and dense, but it is front-loaded with purpose and required parameters, then moves through edit capabilities, review behavior, and routing exclusions. Almost every sentence adds operational value, though some parenthetical detail could be tightened.

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?

Given the tool's complexity, 11 parameters, nested objects, and the existence of an output schema, the description is complete enough for correct invocation. It covers purpose, usage boundaries, mutation behavior, review flow, and security implications without needing to explain return values.

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?

With 91% schema description coverage, the schema already documents most parameters, but the description adds real meaning: `tools` presence replaces the entire tool surface, `changelog` is optional when editing tools and otherwise must be 10–500 chars, `price_cents` requires `price_type=paid`, and `credential_slots` are definitions only. It does not mention the `llms` parameter, but the schema covers it.

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?

The description uses a specific verb and resource: 'Publish a NEW version of YOUR OWN published agent built here (instructions, skills and actions) for review.' It distinguishes this tool from siblings by explicitly naming findagent_new_version and findagent_repull for repo-backed ACTION agents, and the code wizard for code-bundle agents.

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 gives explicit when-to-use and when-not-to-use guidance: use this for an agent built here, but for a code-bundle agent use the code wizard, and for an ACTION agent whose findagent.json is in a writable GitHub repo call findagent_new_version or findagent_repull with `repo` instead. Owner-only is also stated.

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

findagent_buy_agentAInspect

Get a browser checkout link to PURCHASE a paid FindAgent agent. Returns checkout_url — open it in a browser (signed in to FindAgent) and complete the purchase with the Buy button; payment is handled securely by Paddle in the browser. NEVER share card details here. A free agent returns already_free (just use findagent_add_connector); an agent you already own returns already_owned; if paid checkout is not live yet it returns checkout_not_live. After purchase settles, retry findagent_add_connector. An unknown or unpublished slug returns a needs_input result pointing back to findagent_browse_agents.

NameRequiredDescriptionDefault
slugYesThe published agent slug (from findagent_browse_agents).

Output Schema

NameRequiredDescription
slugNo
titleNo
statusNo
currencyNo
next_toolNo
price_typeNo
price_centsNo
price_labelNo
checkout_urlNo
instructionsNo

TDQS

A4.9/5.0
Behavior5/5

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

The description goes well beyond the annotations, disclosing that payment is handled by Paddle in the browser, warning never to share card details, and enumerating possible return states such as already_free, already_owned, checkout_not_live, and needs_input. It also notes the authentication requirement (signed in to FindAgent), which is useful behavior context.

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?

Although the description is a single dense paragraph, every sentence contributes distinct information: the main purpose, return statuses, browser/payment behavior, security warning, follow-up action, and error case. The first sentence is front-loaded with the core action, and nothing is redundant or filler.

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?

Given the tool's complexity, one required parameter, an output schema, and a large sibling set, the description is complete. It covers when to use it, what it returns, how payment works, security constraints, next steps after purchase, and fallback behavior for invalid slugs, so an agent has everything needed to invoke it correctly.

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 input schema already fully documents the slug parameter with 100% coverage, so the baseline is 3. The description adds extra meaning by specifying that an unknown or unpublished slug yields a needs_input result, and clarifies the slug should come from findagent_browse_agents, which enriches the schema's plain type description.

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?

The description states a specific verb and resource: it gets a browser checkout link to purchase a paid FindAgent agent. It clearly distinguishes itself from related tools like findagent_add_connector and findagent_browse_agents by naming exactly what it returns and when it applies.

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?

Usage is explicitly conditional: free agents route to findagent_add_connector, already-owned agents return already_owned, and unknown slugs point back to findagent_browse_agents. It also states what to do after purchase settles, leaving no ambiguity about when this tool should be invoked.

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

findagent_check_slugA
Read-only
Inspect

Check whether an agent slug is well-formed AND available before findagent_create_draft. Returns { valid, available }. valid=false means the slug is malformed (must be kebab-case, 3–60 chars, no leading/trailing hyphen); available=false means it is already taken; available=null means the check was inconclusive (create_draft still enforces uniqueness). Prefer findagent_submission_wizard, which walks the user through this (it validates the slug for you at the basics step).

NameRequiredDescriptionDefault
slugYesThe candidate agent slug (kebab-case, 3–60).

Output Schema

NameRequiredDescription
slugNo
usageNo
validNo
availableNo

TDQS

A5/5.0
Behavior5/5

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

Annotations already state readOnlyHint=true, but the description goes far beyond that by specifying the exact return shape ({ valid, available }), the meanings of each value (valid=false for malformed, available=false for taken, available=null for inconclusive), and the note that create_draft still enforces uniqueness even when inconclusive. This discloses edge-case behavior that annotations cannot convey. There is 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?

The description is information-dense but well-structured: it leads with the core action and purpose, then explains the return contract, then the validation rules, then the preferred alternative. Every sentence earns its place; there is zero filler or repetition. The critical guidance is front-loaded, and the alternative is stated at the end without weakening the primary message.

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 single-parameter, read-only validation tool with a fully documented schema and an output schema, the description is complete. It covers the tool's purpose, the expected return values and their edge cases, and explicitly routes the user to the preferred alternative. There is nothing an agent needs to know to call this correctly that is missing.

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

Parameters5/5

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

The schema describes slug as a string with format 'kebab-case, 3–60', but the description expands on this with concrete validation rules: 'no leading/trailing hyphen' and explains how the slug's validity maps to the return values. This adds practical meaning beyond the schema's type constraints, showing the agent exactly what constitutes a valid input.

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?

The description uses a specific verb ('Check'), a clear resource ('agent slug'), and the exact criteria ('well-formed AND available'). It explicitly distinguishes itself from siblings by stating it runs 'before findagent_create_draft' and naming the recommended alternative findagent_submission_wizard. An agent can immediately understand the tool's function without any ambiguity.

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?

The description provides explicit usage context: 'before findagent_create_draft' sets the timing, and 'Prefer findagent_submission_wizard' directly names the alternative and indicates it should be chosen over this tool in normal flows. This is a clear when-to-use and when-not-to-use directive, with a specific alternative named.

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

findagent_claim_listingA
Idempotent
Inspect

Start (or re-read) a claim on an MCP server LISTING that you run, so it becomes yours on FindAgent. The listing decides the proof, not you: a listing for a server people run locally is proven by an admin GitHub account on its declared repository; a hosted listing is proven by a DNS TXT record on its declared endpoint host. This returns which proof applies and, for DNS, the exact record name and value to create. Opening a claim grants nothing; call findagent_verify_listing_claim once the proof is in place. Calling again returns the same open claim and the same record, so a record you already created stays valid. Only published MCP server listings can be claimed, never an agent.

NameRequiredDescriptionDefault
slugNoThe MCP server listing slug (the last part of its /mcp/<slug> page URL). Give this OR agent_id.
agent_idNoThe listing id (a UUID). Give this OR slug; if you give both, they must name the same listing.

Output Schema

NameRequiredDescription
methodNo
statusNo
subjectNo
agent_idNo
challengeNo
next_toolNo
fail_reasonNo
instructionsNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by explaining the two proof mechanisms (admin GitHub account on a declared repo vs DNS TXT record on the endpoint host), that the listing chooses the proof, and that re-calling is idempotent so an existing record stays valid. This is exactly the side-effect and auth context an agent needs for a non-readOnly operation, matching idempotentHint=true and destructiveHint=false.

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?

Front-loads the action and its scope, then layers proof mechanics, the routing to verify_listing_claim, idempotency, and exclusions. Every sentence carries distinct information with no restatement of the name or annotations.

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 an output schema present, the description needn't enumerate return fields, yet it still previews them ('returns which proof applies and, for DNS, the exact record name and value'). Combined with the idempotency and eligibility notes, an agent has everything needed to call it correctly.

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 both parameters are documented there, including the 'give this OR agent_id' rule. The description adds the constraint that the target must be a published listing rather than an agent, but contributes no format or syntax detail beyond the schema, so the baseline 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 ('start/re-read a claim') on a specific resource ('an MCP server LISTING that you run'), and explicitly scopes it to LISTINGS rather than agents or other resources. An agent can distinguish it from findagent_verify_listing_claim, which is named as the follow-up step, 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?

Gives explicit when-to-use ('once the proof is in place, call findagent_verify_listing_claim'), what it does not do ('opening a claim grants nothing'), and an exclusion ('only published MCP server listings can be claimed, never an agent'). The alternative tool and the condition that selects it are both spelled out.

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

findagent_connect_githubA
Read-only
Inspect

Start connecting GitHub for the CALLER'S OWN FindAgent account so findagent_import_repo / findagent_list_repos can pull their repos. Returns whether GitHub is already connected plus a browser connect URL — the caller opens it, authorizes GitHub, and the token is stored server-side (this tool grants nothing itself; the actual connect happens in the browser). Call this first if import_repo or list_repos reports github not connected. The connection is scoped to THIS FindAgent account, so authorize on the same browser account. To switch GitHub accounts, use findagent_disconnect_github first.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
modeNo
accountNo
connectedNo
connect_urlNo
install_urlNo
instructionsNo

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint annotation by explaining that the tool itself grants nothing, the actual connect happens in the browser, and the token is stored server-side. It also discloses account scoping, which is non-obvious behavioral context not visible in the schema or 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?

Every sentence earns its place: purpose, expected return, browser-based authorization flow, when to call, account scoping, and the disconnect alternative. Information is front-loaded and each clause adds distinct value.

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 zero-parameter tool with an output schema, the description fully covers the calling context, the browser flow, server-side token storage, account scoping, and prerequisite ordering. Nothing an agent needs to invoke this 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?

The tool has zero parameters, so there is no parameter semantics to explain. The baseline for a zero-parameter tool is 4, and the description correctly focuses on behavior and usage rather than inventing parameter detail.

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 ('Start connecting GitHub') and explicitly frames it as a prerequisite for findagent_import_repo / findagent_list_repos, which distinguishes it from those sibling tools. The mention of disconnecting also separates it from findagent_disconnect_github.

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 guidance: 'Call this first if import_repo or list_repos reports github not connected.' It also addresses a common alternative need by directing users to findagent_disconnect_github first when switching GitHub accounts.

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

findagent_create_code_draftAInspect

Persist a CODE-BUNDLE draft from YOUR OWN GitHub repo — for an agent that ships RUNNABLE code (use this when findagent_import_repo returned grounding.code_bundle). Pass the basics (title/slug/tagline/description/category_slug + example_prompts: 1-5 required) + the detected contract from import_repo's grounding.code_bundle (runtime, entrypoint {path,export}, mcp {mode,command,args}, ui {path}, allowed_hosts, credential_slots, skills), overriding any you want to correct. The server RE-PULLS the repo (your stored GitHub token — private repos work, server-side), snapshots + scans the code, validates the manifest, and creates a status=draft agent you own; then call findagent_submit_for_review IN THIS MCP CLIENT to set price + confirm originality/prohibited + submit it (the web is only an optional preview). IDEMPOTENT BY REPO: if you already have a draft for this repo, calling this again OVERWRITES that same draft (basics + manifest + a fresh re-pull/re-scan) instead of creating a duplicate — so iterate freely (the response updated flag is true on overwrite). NEVER send secret credential VALUES — credential_slots declare shape (ref/env/label/allowed_hosts/type) only. Building/running the code stays gated until an admin approves it. Which tool for which part: Instructions, Skills and Actions are authored as an Agent Plugins package and sent as files with findagent_create_package_draft; Code (a Node or Python program) uses findagent_create_code_draft from your own GitHub repo; an MCP server you already run uses findagent_create_remote_mcp (hosted over https) or findagent_create_local_mcp (started on the buyer machine by a command); an OpenAPI spec becomes tools through findagent_import_openapi before findagent_create_draft; findagent_create_draft saves a declarative listing from findagent_import_repo grounding. Code part: start from https://github.com/FindAgent/agent-template (Node and Python variants). Building any part with an assistant: provider-neutral playbooks at https://github.com/FindAgent/agent-creators (start with AGENTS.md).

NameRequiredDescriptionDefault
uiNoOptional static UI: { path: bundle-relative index.html }.
mcpNoMCP exposure: { mode: 'wrap'|'native', command?, args? }. 'native' requires the command that starts the bundle's own MCP server. Defaults to wrap.
refNoOptional branch/tag/SHA. Defaults to the default branch HEAD.
llmsNoOptional target clients. Defaults to ['claude','chatgpt','gemini'] when omitted.
repoNoowner/repo or a github.com URL — YOUR repo (readable by your connected GitHub token). Re-pulled server-side, so private repos you own work.
slugNoPermanent URL slug, kebab-case (3–60, no leading/trailing hyphen). Verify with findagent_check_slug first.
tagsNoOptional (≤10). Free-form lowercase tags ([a-z0-9- ]).
titleNoAgent name (3–80 chars).
skillsNoOptional discovery metadata (the tools the agent exposes). Each: { id?, name, description?, input_schema? }. `input_schema` is the tool's JSON-Schema argument shape (type: object; bounded, no remote $ref) so a client can render real fields. A repo's own findagent.json `skills[]` fills any you omit. Never executed.
runtimeNoFrom grounding.code_bundle.runtime: { kind, version? } where kind is node or python (versions node22, node24, python3.13). Defaults to node.
taglineNoOne-line value prop (10–140).
languagesNoOptional (≤20). Language/Framework slugs from findagent_list_tech_facets (software-development discipline only).
entrypointNoFrom grounding.code_bundle.entrypoint: { path: bundle-relative module, export: handler name }.
descriptionNoWhat it does / who it is for (50–4000).
serve_modesNoHow the code runs when a buyer connects it. 'hosted' = FindAgent runs it in an isolated sandbox over the gateway (the DEFAULT — omit for this). 'local' = the buyer downloads and runs it on their OWN machine via @findagent/mcp so it can reach their localhost/local tools; FindAgent never runs it (the buyer trusts you, like a local MCP server). Pass ['hosted','local'] to offer BOTH. Only set this for an agent that must reach the buyer's own machine — an agent whose credential targets a localhost host CANNOT be served hosted. NOTE: this call OVERWRITES the draft's serve modes — when re-calling for an existing draft, re-send serve_modes to keep a prior 'local'/'both' choice (omitting it resets to hosted-only).
tech_domainsNoOptional (≤20). Tech Domain slugs from findagent_list_tech_facets (software-development discipline only).
allowed_hostsNoDefault-deny egress allowlist — the ONLY hosts the sandbox may reach. From grounding.code_bundle.allowed_hosts.
category_slugNoThe PRIMARY category: a TOP-LEVEL slug from findagent_list_categories (a discipline is required — usually 'software-development'). Put the required subdiscipline (and any industry + subindustry) in additional_category_slugs.
example_promptsNoREQUIRED — 1 to 5 concrete things a user can ask this agent to do (what a real user would type).
credential_slotsNoOptional. Each item declares the SHAPE of a secret (ref/env/label/allowed_hosts…) — see `items`. DEFINITIONS ONLY — no values.
additional_category_slugsNoOptional (≤12). Extra slugs from findagent_list_categories. For EVERY top-level you select you MUST include one of its OWN subcategories here: a subdiscipline under your discipline, and (optionally) an industry top-level plus one of its subindustries. This is also where a discipline goes if your primary is an industry.

Output Schema

NameRequiredDescription
kindNo
slugNo
bundleNo
statusNo
accountNo
createdNo
updatedNo
next_toolNo
preview_urlNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this as non-read-only, open-world, and non-destructive. The description adds substantial behavioral context beyond that: server-side repo re-pull using a stored GitHub token, private repo support, snapshot/scan/manifest validation, draft creation, idempotent overwrite-by-repo semantics with updated flag, prohibition on sending secret values, and gated build/run until admin approval. This is exactly the kind of operational detail an agent needs before invoking a write tool.

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?

The description is long, but the tool is complex: 21 parameters, nested objects, idempotency rules, and multiple sibling alternatives. It is front-loaded with purpose and usage, then proceeds through behavior and sibling routing. Some repetition and the external playbook links could be tightened, but nearly every sentence contributes to correct invocation or routing.

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?

Given the complexity, rich schema, annotations, and an output schema, the description is complete enough to call the tool correctly. It covers prerequisites, required vs optional inputs, idempotency/overwrite behavior, secret-handling rules, approval gating, and the next tool in the workflow. Return values need not be explained because an output schema exists.

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 description coverage is already 100%, so the baseline is 3. The description still adds useful parameter grouping and workflow semantics: it distinguishes the 'basics' from the detected contract fields taken from grounding.code_bundle, notes which values can be overridden, and reinforces that example_prompts is required and credential_slots are shape-only. It does repeat some schema-level detail, but the grouping and override guidance are meaningfully additive.

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?

The description opens with a specific verb and resource: persist a CODE-BUNDLE draft from the user's own GitHub repo. It distinguishes this from sibling tools by explicitly naming findagent_create_package_draft, findagent_create_remote_mcp, findagent_create_local_mcp, findagent_import_openapi, and findagent_create_draft, with a clear rule for when each applies. An agent can identify this tool's scope 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?

It states the exact trigger condition: use this when findagent_import_repo returned grounding.code_bundle. It also provides a complete sibling-routing paragraph covering Code vs Packages vs MCP vs OpenAPI vs declarative listings, and tells the caller to follow up with findagent_submit_for_review. Alternatives and exclusions are made explicit.

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

findagent_create_draftAInspect

Persist a DRAFT marketplace listing you wrote (from import_repo grounding). Creates a status=draft agent owned by you; then call findagent_submit_for_review IN THIS MCP CLIENT to set price + confirm originality/prohibited + submit it — the web is only an optional preview, not where you finish. Prefer findagent_submission_wizard to collect all of these fields step-by-step (one selectable question at a time) before calling this. Before calling: use findagent_check_slug to confirm the slug is free, and findagent_list_categories to pick the primary (top-level) category + a discipline. NEVER send secret credential VALUES — credential_slots declare the shape (ref/label/allowed_hosts/type) only. Which tool for which part: Instructions, Skills and Actions are authored as an Agent Plugins package and sent as files with findagent_create_package_draft; Code (a Node or Python program) uses findagent_create_code_draft from your own GitHub repo; an MCP server you already run uses findagent_create_remote_mcp (hosted over https) or findagent_create_local_mcp (started on the buyer machine by a command); an OpenAPI spec becomes tools through findagent_import_openapi before findagent_create_draft; findagent_create_draft saves a declarative listing from findagent_import_repo grounding. Code part: start from https://github.com/FindAgent/agent-template (Node and Python variants). Building any part with an assistant: provider-neutral playbooks at https://github.com/FindAgent/agent-creators (start with AGENTS.md).

NameRequiredDescriptionDefault
kindNoOptional — usually INFERRED from whether you pass `tools` (tools present → 'mcp-tool', an agent with actions or skills; else 'static-recipe', instructions only). Declared so a manifest-shaped payload is accepted, not rejected.
llmsNoOptional target clients. Defaults to ['claude','chatgpt','gemini'] when omitted.
slugNoPermanent URL slug, kebab-case (3–60, no leading/trailing hyphen). Verify with findagent_check_slug first.
tagsNoOptional (≤10). Free-form lowercase tags ([a-z0-9- ]).
titleNoAgent name (3–80 chars). Alias accepted: `name`.
toolsNoOptional actions and skills (full web-builder parity). Omit for an instructions-only agent. Each item's shape is defined in `items` — name/description/tool_type/action are the load-bearing fields; auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced).
taglineNoOne-line value prop (10–140).
versionNoOptional semver release version for this listing (e.g. "1.0.0"). Self-described metadata only — the platform tracks the authoritative version separately.
metadataNoOptional professional listing metadata. { license?, homepage?, docs_url?, support_url?, support_email?, icon?, author?:{ name, url? }, maintainer?:{ name, url? } }. Every URL/icon must be https. An invalid block is dropped (not persisted).
changelogNoOptional human release notes for `version` (max 10000 chars).
languagesNoOptional (≤20). Language/Framework slugs from findagent_list_tech_facets (software-development discipline only).
guardrailsNoOptional declared guardrails (agents with actions). { input?: { max_length?, deny_patterns?:string[], pii_redaction?:string[] }, output?: { schema? }, actions?: { [toolName]: { approval?:"none"|"human"|"human_strict", max_amount?, rate_limit?:"10/hour", idempotent?, requires?:string[] } } }. `human` confirms where the client can prompt and proceeds where it cannot; `human_strict` BLOCKS where it cannot — use it for anything irreversible. You can only TIGHTEN — the platform always applies its mandatory rails. An invalid block fails the draft.
price_typeNoOptional, default free. "paid" requires price_cents (charged only once Paddle is live).
descriptionNoWhat it does / who it is for (50–4000).
price_centsNoRequired when price_type=paid: a positive integer of US cents, max 50000 ($500).
tech_domainsNoOptional (≤20). Tech Domain slugs from findagent_list_tech_facets (software-development discipline only).
category_slugNoThe PRIMARY category: a TOP-LEVEL slug from findagent_list_categories. Alias accepted: `category`. At least one of {category_slug, additional_category_slugs} MUST be a discipline (category_type='discipline'), AND for EVERY top-level you select you MUST also include one of its OWN subcategories in additional_category_slugs.
system_promptNoThe agent instructions (50–20000 chars).
example_promptsNo2–5 concrete asks (required).
credential_slotsNoOptional. Each item declares the SHAPE of a secret (ref/label/allowed_hosts/auth_scheme…) — see `items`. DEFINITIONS ONLY — never send secret VALUES.
additional_category_slugsNoOptional (≤12). Extra slugs from findagent_list_categories. Include one subcategory under EVERY top-level you select (a subdiscipline under your discipline; a subindustry under any industry). Also where a discipline goes when the primary is an industry.

Output Schema

NameRequiredDescription
slugNo
statusNo
accountNo
createdNo
next_toolNo
preview_urlNo
instructionsNo
slug_is_permanent_after_publishNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false and destructiveHint=false; the description adds real behavioral context — the result is a non-destructive 'status=draft' record owned by the caller, the web UI is only a preview and not where submission completes, and credential VALUES must never be sent (only slot shapes). It stops short of stating whether drafts can be re-persisted idempotently or what happens to a partially invalid payload.

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 core purpose is front-loaded in sentence one, but the remaining text is a dense run-on that bundles prerequisites, a five-way sibling routing matrix, external GitHub URLs, and a security warning into one paragraph. Much of it is genuinely useful, but the wall-of-text form makes it hard to scan and it is longer than this description needs to be.

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 21-parameter, nested-object creation tool with an output schema present, the description covers the full workflow: grounding source, prerequisites, alternative draft tools, and the submit-for-review handoff. Return values correctly are not re-explained. It omits only edge-case behavior at failure time, which is minor given the schema and annotations.

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% with 21 parameters, so the schema already documents every field, including the top-level-category/discipline rule and the credential_slots 'definitions only' constraint. The description reinforces the slug-free and category-discipline requirements and the secrets rule, but adds little syntax or semantics the schema does not already carry.

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?

The opening sentence names a specific verb+resource ('Persist a DRAFT marketplace listing you wrote') and states the resulting state ('Creates a status=draft agent owned by you'). It then explicitly separates this tool from every adjacent draft-creation sibling (package, code, remote/local MCP, OpenAPI import), so an agent can route 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 an explicit tool-selection matrix: package files → findagent_create_package_draft, code → findagent_create_code_draft, MCP server → create_remote_mcp/create_local_mcp, OpenAPI → import_openapi first. It also names prerequisites (check_slug, list_categories, import_repo grounding) and the preferred step-by-step front-end (submission_wizard), plus the mandatory follow-up (submit_for_review).

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

findagent_create_local_mcpAInspect

List an MCP server that buyers run ON THEIR OWN MACHINE over stdio (an npx, uvx or binary command) as a marketplace LISTING. FindAgent never runs it: the command is stored and displayed, and the buyer's client starts it. Pass the listing basics (title/slug/tagline/description + example_prompts: 1-5 required; a listing is not categorised or priced) and command (for example "npx") with args (for example ["-y", "@scope/server"]). Optional: repo (https URL of the source) with repo_path (the folder of a monorepo that holds this server), tools (name+description), auth_note (what credential it needs, NEVER a secret value). Creates a status=draft agent you own; then call findagent_submit_for_review IN THIS MCP CLIENT. For a server you host over https use findagent_create_remote_mcp. Before calling: findagent_check_slug.

NameRequiredDescriptionDefault
argsNoThe command arguments, one per item.
llmsNo
repoNoOptional https URL of the source repository.
slugNoPermanent kebab-case slug (3-60 chars). Check it with findagent_check_slug first.
tagsNo
titleNoListing title (3-80 chars).
toolsNoOptional: the tools the server offers.
commandNoThe command that starts the server, for example "npx" or "uvx".
taglineNoOne-line value proposition (10-140 chars).
auth_noteNoOptional: what credential the server needs. Never a secret value.
repo_pathNoOptional folder of `repo` that holds this server (a monorepo), for example "src/filesystem".
descriptionNoListing description (50-4000 chars).
example_promptsNo1-5 example prompts.

Output Schema

NameRequiredDescription
kindNo
slugNo
statusNo
accountNo
createdNo
next_toolNo
preview_urlNo
instructionsNo
connection_typeNo
slug_is_permanent_after_publishNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), it discloses the resulting state (a status=draft agent you own), that the command is stored/displayed but never run by FindAgent, and a security constraint (auth_note must NEVER carry a secret value). This is meaningful behavioral context an agent needs before invoking.

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 dense and front-loaded: purpose first, then required basics, then optional fields, then next-step routing. A couple of clauses restate the same idea (FindAgent never runs it vs. the command is stored and displayed), so it is not maximally tight, but every sentence carries actionable content.

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 13-param creation tool, the description covers prerequisites, required vs optional fields, security constraints, resulting state, and cross-tool routing. An output schema exists, so return-value details are rightly omitted; 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 already high (85%), so the 3 baseline holds, but the description adds real semantics beyond the schema: example_prompts is 1-5 and required, `command` pairs with `args` (e.g. npx + ["-y","@scope/server"]), repo pairs with repo_path for monorepos, and tools is name+description. It also clarifies what a listing is NOT (not categorised or priced).

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 a marketplace LISTING for a local stdio MCP server) with precise scope: the server runs on the buyer's machine via npx/uvx/binary, and FindAgent never executes it. It explicitly distinguishes itself from the sibling findagent_create_remote_mcp, so an agent can route 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?

Gives explicit when (local stdio server over a command) and when-not (hosted over https → use findagent_create_remote_mcp), plus a prerequisite (findagent_check_slug) and a required follow-up (findagent_submit_for_review in this client). Nothing about selection 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.

findagent_create_package_draftAInspect

Create a DRAFT agent from an Agent Plugins package you wrote in this conversation: pass files as an object mapping each path to its TEXT (for example "skills/my-skill/SKILL.md", "skills/my-skill/references/guide.md", ".claude-plugin/plugin.json", "commands/review.md", "agents/reviewer.md"). FindAgent imports it exactly like an uploaded package — the same skill rules (at most 40 skills, valid Agent Skills names; too many is refused, never cut), the same caps (4 MB of text in total, 2 MB per file, 4000 files; the whole request, JSON escaping included, must also stay under the hosting platform's ~4.5 MB request limit), actions only where plugin.json declares them — stores it in your own namespace and saves a status=draft skills agent you own. Binary files cannot be sent. You must pass attestation: "own-work", confirming these are your own files. Then Submit it with findagent_submit_for_review: agent (the draft slug), confirm_original: true, confirm_not_prohibited: true, llms (at least one) and price_type/price_cents. The first call without confirm_slug returns the permanent slug; call again with confirm_slug set to that exact slug to submit. The package is scanned and a person reviews it before anything is published. Instead of files you may pass repo (owner/repo or a github.com URL) and optionally ref and path (the folder of a repository that holds several packages): FindAgent then reads the package from a GitHub repository YOU OWN (it proves you have push access first; connect GitHub with findagent_connect_github if needed), and no attestation is needed because the ownership is proven. Pass exactly one of files or repo. An agent made from a repository is updated by re-pulling it (findagent_repull). Listing fields are the same as findagent_create_draft (title, slug, tagline, description, category); the instructions, prompts and actions come from the files. NEVER put secret values in any file: an action's credentials are declared by name only. Which tool for which part: Instructions, Skills and Actions are authored as an Agent Plugins package and sent as files with findagent_create_package_draft; Code (a Node or Python program) uses findagent_create_code_draft from your own GitHub repo; an MCP server you already run uses findagent_create_remote_mcp (hosted over https) or findagent_create_local_mcp (started on the buyer machine by a command); an OpenAPI spec becomes tools through findagent_import_openapi before findagent_create_draft; findagent_create_draft saves a declarative listing from findagent_import_repo grounding. Code part: start from https://github.com/FindAgent/agent-template (Node and Python variants). Building any part with an assistant: provider-neutral playbooks at https://github.com/FindAgent/agent-creators (start with AGENTS.md).

NameRequiredDescriptionDefault
refNoWith `repo`: a branch, tag or commit SHA. Defaults to the default branch.
llmsNo
pathNoWith `repo`: the folder of the repository that IS the package, for a repository that holds several (for example "plugins/pdf"). Only that folder is read. Defaults to the repository root.
repoNoInstead of `files`: a GitHub repository you own (owner/repo or a github.com URL) that holds the package. Its push access is verified before anything is read.
slugYesPermanent kebab-case slug (3-60 chars). Check it with findagent_check_slug first.
tagsNo
filesNoThe package: each key is a relative file path, each value the full text of that file. At least one SKILL.md (for example "skills/<name>/SKILL.md" with name + description frontmatter).
titleYesListing title (3-80 chars).
taglineYesOne-line value proposition (10-140 chars).
languagesNo
attestationNoRequired with `files`: "own-work" — you confirm these files are your own work (or yours to publish). Not needed with `repo`.
descriptionYesListing description (50-4000 chars).
tech_domainsNo
category_slugNoPrimary category slug (see findagent_list_categories).
example_promptsNoOptional: up to 5 example prompts (more is refused, not cut). Omitted = the ones the package produced.
additional_category_slugsNo

Output Schema

NameRequiredDescription
kindNo
slugNo
titleNo
statusNo
accountNo
createdNo
left_outNo
next_toolNo
price_typeNo
preview_urlNo
skill_countNo
skill_notesNo
action_countNo
instructionsNo
category_slugNo
left_out_totalNo
left_out_detailNoThe summary this field held before left_out became an array: binary file names and their total, the entries the reader set aside and their total.
slug_is_permanent_after_publishNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: the result is a private, status=draft agent in your namespace, it is scanned and human-reviewed before publication, output caps are enumerated (40 skills, 4 MB text total, 2 MB/file, 4000 files, ~4.5 MB request limit), over-limit inputs are refused rather than truncated, binaries are rejected, and repo mode requires proven push access. The warning never to put secrets in files is real safety context the annotations do not carry.

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 core is front-loaded and dense with decision-relevant constraints, but the description runs long and the closing block (agent-template repo links, agent-creators playbooks, 'Code part: start from...') belongs to sibling tools rather than this one. A meaningful fraction of the text does not earn its place here.

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 16-parameter mutation with an output schema and safety annotations, this covers nearly everything an agent needs. It is slightly muddied by blending the submit flow's fields (confirm_slug, price_type/price_cents) and `llms` into this tool's narrative, which can blur which parameters belong to this call versus the follow-up call.

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?

At 69% schema coverage the description meaningfully extends the schema: it explains `files` as a path→text map with example paths, that attestation='own-work' is required only for files mode, that `repo`/`ref`/`path` are read-only-from-GitHub alternatives, and that the first submit call yields the permanent slug. Minor gap: listing-side params (tags, languages, tech_domains, llms, category_slug) are only partially or ambiguously explained.

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?

Opens with a specific verb+resource+scope: 'Create a DRAFT agent from an Agent Plugins package you wrote in this conversation.' It also explicitly distinguishes itself from the sibling draft-creation tools (create_code_draft, create_remote_mcp, create_local_mcp, create_draft), so an agent can pick it without opening schemas.

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 routing: packages of instructions/skills/actions go here, code goes to create_code_draft, hosted MCP to create_remote_mcp, local MCP to create_local_mcp, OpenAPI to import_openapi. It also names the mandatory next step (findagent_submit_for_review) with the exact fields, and the mutual exclusion of `files` vs `repo`.

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

findagent_create_remote_mcpAInspect

List an EXTERNAL remote MCP server you run as a marketplace LISTING — for an MCP server hosted on YOUR OWN infrastructure that buyers connect their client straight to (FindAgent never proxies or runs it). Pass the listing basics (title/slug/tagline/description + example_prompts: 1–5 required; a listing is not categorised, so any category you send is ignored) and the remote endpoint as server_url (https) OR a parsed server.json object in server_json. The server's tools are auto-detected (a sandbox-gated live scan when available) — you can override with tools (name+description), transport (streamable-http|sse), and auth_note (what credential the server needs — NEVER a secret value). Creates a status=draft agent you own; then call findagent_submit_for_review IN THIS MCP CLIENT to submit it. The server URL is stored + displayed only; nothing executes on FindAgent. Before calling: findagent_check_slug + findagent_list_categories.

NameRequiredDescriptionDefault
llmsNoOptional target clients. Defaults to ['claude','chatgpt','gemini'].
slugNoPermanent URL slug, kebab-case (3–60, no leading/trailing hyphen). Verify with findagent_check_slug.
tagsNoOptional (≤10). Free-form lowercase tags.
titleNoListing name (3–80 chars).
toolsNoOptional descriptive tools the server exposes ({ name, description }) — SEO/discovery only, no action. Auto-detected when omitted.
taglineNoOne-line value prop (10–140).
auth_noteNoOptional. What credential the server requires (e.g. "Requires a Bearer API key"). DEFINITION only — NEVER a secret value.
transportNoOptional MCP transport. Defaults to streamable-http (auto-detected from server.json).
server_urlNoThe remote MCP endpoint (https). Required unless server_json carries it.
descriptionNoWhat the server does / who it is for (50–4000).
server_jsonNoOptional parsed server.json (registry shape) — used INSTEAD of server_url.
category_slugNoIgnored. A listing is not categorised; the platform files its own placeholder.
example_promptsNoREQUIRED — 1 to 5 concrete things a user can ask this server to do.
additional_category_slugsNoIgnored (a listing is not categorised).

Output Schema

NameRequiredDescription
kindNo
slugNo
statusNo
accountNo
createdNo
next_toolNo
preview_urlNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, but the description adds substantial context beyond them: the object is created as a status=draft, the server URL is 'stored + displayed only; nothing executes on FindAgent', tools are auto-detected via a sandbox-gated live scan with override capability, and auth_note must never carry a secret. This is rich, non-redundant 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.

Conciseness4/5

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

The scoping statement and the create-vs-submit flow are front-loaded, and almost every clause carries information. It is dense and slightly run-on in the middle (the detection/override sentence), but nothing is filler.

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 14-parameter tool with nested objects, enums, and an output schema, the description covers what the agent must know: draft state, non-execution guarantee, auto-detection vs override, secret-handling rule, and the mandatory next call. Return values are delegated to the output schema, which is correct.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning: it clarifies that server_url and server_json are alternatives, that example_prompts are 1-5 and required, that tools/transport/auth_note are overrides of auto-detection, and explains WHY category fields are ignored ('a listing is not categorised'). That reasoning goes beyond the schema's bare 'Ignored'.

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 ('List an EXTERNAL remote MCP server ... as a marketplace LISTING') and crisply scopes it to MCP servers hosted on your own infrastructure that buyers connect to directly. It explicitly distinguishes itself from the draft/package/code-draft siblings by being the remote-MCP listing path, so an agent can pick it without opening schemas.

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 says when to use it (external remote MCP server you host, never proxied by FindAgent), what it produces (status=draft agent you own), and the follow-up step ('call findagent_submit_for_review in this MCP client'). It also names prerequisites to run first (findagent_check_slug + findagent_list_categories).

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

findagent_create_requestAInspect

Post an agent request onto the PUBLIC FindAgent demand board AS the connected account — "I want an agent that does X". Others can upvote it and creators can build an agent that fulfils it. Provide a clear title (5–120 chars) + optional detail body (≤2000 chars). The text is moderated; a request always starts OPEN. Returns the new request id. Free — no payment. A search that found nothing (findagent_browse_agents or findagent_skill_search with no match) is a good moment to offer this.

NameRequiredDescriptionDefault
bodyNoOptional detail: tools to connect, what a good result looks like (≤2000).
titleYesWhat the agent should do (5–120 characters).

Output Schema

NameRequiredDescription
idNo
statusNo
next_toolNo
instructionsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations give readOnlyHint=false and openWorldHint=false; the description adds real behavioral context beyond them — the request is public, moderated, always starts OPEN, free with no payment, and returns a new request id. It stops short of describing what moderation failure looks like or reversibility, so not a full 5.

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 and scope, then constraints, then return/usage. Every sentence carries information, though it runs several sentences and could tighten slightly.

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 an output schema present, return values need not be detailed; the description still notes the returned request id. Public visibility, moderation, initial state, cost, and the routing trigger are all covered — 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.

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented in the schema. The description restates the same constraints (title 5–120 chars, body ≤2000) with only a minor added nuance ('tools to connect, what a good result looks like' mirrors the schema), so baseline 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+resource (post/create an agent request on the PUBLIC FindAgent demand board) and clearly frames it as 'I want an agent that does X', distinguishing it from browse/search and other create_* siblings.

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 names the alternative moments to use it: 'A search that found nothing (findagent_browse_agents or findagent_skill_search with no match) is a good moment to offer this.' This ties the tool to a concrete trigger condition relative to named siblings.

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

findagent_delete_draftA
Destructive
Inspect

Discard YOUR OWN draft listing — a draft you never submitted, or one that was sent back for changes (needs-changes). This soft-deletes the whole listing: the row is kept but renamed to a discarded tombstone, so the original slug can be used again straight away. A PUBLISHED or in-review agent is NOT deletable here (a live agent is managed through its version lifecycle — findagent_rollback_version / findagent_bump_version). Owner-only.

NameRequiredDescriptionDefault
agentYesThe slug or id of YOUR draft (from findagent_list_my_agents). Must be a draft or a sent-back (needs-changes) agent.

Output Schema

NameRequiredDescription
slugNo
deletedNo
instructionsNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare destructive=true and readOnly=false, and the description goes well beyond them: it explains this is a soft-delete that renames the row to a discarded tombstone, that the original slug is freed immediately, and that it is owner-only. This is exactly the behavior an agent must know before invoking a destructive tool.

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 tight sentences, front-loaded with the action and constraint, then the mechanism, then the exclusion. Zero filler; every sentence carries decision-relevant information.

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 single-parameter destructive tool with an output schema and full annotation coverage, the description supplies the slug-reuse behavior, eligibility boundaries, and ownership requirement. Nothing needed to invoke 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% and the parameter description already covers the slug/id format and the draft/needs-changes constraint, so the baseline is 3. The description adds a bit of value by reinforcing the slug-reuse consequence and eligibility constraint, though it does not introduce new syntax 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 (Discard/soft-delete) and resource (your own draft listing), and explicitly distinguishes the scope from published/in-review agents. Names sibling tools (findagent_rollback_version / findagent_bump_version) as the alternatives for live agents, making it unambiguous relative to the crowded sibling list.

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 (a draft you never submitted, or one sent back for changes) and when-not-to-use (published or in-review agents are NOT deletable here), with the correct alternative named. Eligibility is fully 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.

findagent_disconnect_githubA
Idempotent
Inspect

Disconnect / switch GitHub account: drops the caller's stored GitHub connection (best-effort revoking the GitHub-side grant first) so a reconnect can authorize a DIFFERENT GitHub account. Idempotent — returns disconnected:true even if nothing was connected. After this, call findagent_connect_github to connect the new account.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
disconnectedNo
instructionsNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already provide idempotentHint and readOnlyHint, and the description adds meaningful behavioral context: it drops the stored connection, best-effort revokes the GitHub-side grant, and returns disconnected:true even when nothing was connected. This fully explains the operation's side effects and edge case 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?

Three tightly written sentences: the core action, the behavioral notes, and the follow-up step. No filler or redundant restatement of the title.

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 zero-parameter action with an output schema, the description covers the operation's effect, idempotency, return behavior, and next step. Nothing an agent needs to invoke 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?

The tool takes zero parameters, so the schema has nothing to document. The description correctly requires no parameter explanation, and the baseline of 4 applies because there is no parameter burden to compensate for.

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?

The description states a specific action ('Disconnect / switch GitHub account') and resource ('stored GitHub connection'), clearly distinguishing it from findagent_connect_github. It also explains the purpose of disconnecting so a different GitHub account can be authorized.

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?

The description gives explicit sequencing: after disconnecting, call findagent_connect_github to connect the new account. It also clarifies the idempotent nature, so the agent knows it is safe to call even when nothing is connected.

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

findagent_earningsA
Read-only
Inspect

Read YOUR OWN creator earnings — your withdrawable balance, in-flight (pending) and settled (paid) totals, lifetime earnings, and your most recent earning transactions. READ-ONLY: this never moves money. Withdrawals/payouts are set up in your FindAgent dashboard (KYC/owner-gated) and are not available as a tool. Amounts are in the currency's minor units (US cents for USD).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
currencyNo
paid_centsNo
instructionsNo
pending_centsNo
lifetime_centsNo
available_centsNo
recent_transactionsNo

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description explicitly states 'READ-ONLY: this never moves money' and adds meaningful context: payouts are KYC/owner-gated and handled outside the tool. It also clarifies currency units are minor units, which is valuable behavioral/output context.

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?

The description is concise: three sentences with no wasted words. It front-loads the core purpose, states the read-only nature, explains the payout exclusion, and provides the currency-unit detail. Every sentence earns its place.

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 zero-parameter tool with an output schema, the description is complete: it identifies exactly what data the agent will receive, the read-only safety profile, the payout exclusion, and the unit convention. There are no missing behavioral or usage details needed to call this tool correctly.

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 has zero parameters, so there are no parameter semantics to document. The baseline of 4 applies because the description correctly avoids inventing parameters and instead clarifies the meaning of the returned amounts (minor units), which is useful given the empty input 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?

The description uses a specific verb ('Read') with a clear resource ('YOUR OWN creator earnings') and enumerates the exact data returned. It further distinguishes itself from any potential payout/withdrawal tools by explicitly stating those are not available as a tool.

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?

The description clearly states when to use it: to read the caller's own earnings, balances, and recent transactions. It also gives an explicit when-not and alternative path: withdrawals/payouts are handled through the FindAgent dashboard, not through this tool.

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

findagent_edit_metadataA
Idempotent
Inspect

Edit the DISPLAY metadata of YOUR OWN PUBLISHED agent — title, tagline, description, example output, category (+ subcategories), tags, and the Tech Domain / Language facets (software agents). Pass the agent slug + only the fields you want to change. This does NOT change what the agent can DO: its tools/actions/credentials/prompts are unchanged (those re-version through your agent's own flow + admin review — findagent_bump_version for an agent built here, findagent_repull for an agent built from a code or skills repo, findagent_reintrospect_mcp for an external MCP listing), so a metadata edit goes live immediately without re-review. Owner-only. Existing buyers are unaffected. Use findagent_list_categories for valid category slugs.

NameRequiredDescriptionDefault
slugYesYour published agent slug (you must own it).
tagsNoReplace the free-form lowercase tags (≤10).
titleNoNew agent name (3–80 chars). Alias accepted: `name`.
taglineNoNew one-line value prop (10–140 chars).
languagesNoReplace the Language/Framework facets (slugs from findagent_list_tech_facets). Software-development agents only.
descriptionNoNew description (50–4000 chars).
tech_domainsNoReplace the Tech Domain facets (slugs from findagent_list_tech_facets). Software-development agents only; ignored for any other discipline.
category_slugNoNew PRIMARY category: a TOP-LEVEL slug from findagent_list_categories. Alias accepted: `category`. When changing categories you must keep ≥1 discipline and a subcategory under every selected top-level (put the rest in additional_category_slugs).
thumbnail_urlNoThe listing logo: a URL of an image already uploaded to this platform (anything else is refused). Pass an empty string to remove it, so the card draws a generated mark.
example_outputNoA real example of what this agent produces, shown on the listing labeled as creator-provided (markdown supported, ≤4000 chars). Optional; pass an empty string to remove it. This is a display example, not a live run.
additional_category_slugsNoReplace the non-primary category memberships (≤12 slugs).

Output Schema

NameRequiredDescription
slugNo
updatedNo
next_toolNo
ignored_noteNo
instructionsNo

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 edits publish immediately without admin review, that the caller must own the agent, that existing buyers are unaffected, and that thumbnail/example_output are display-only artifacts (not a live run). This is rich behavioral context an agent cannot infer from readOnlyHint/idempotentHint alone.

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?

Dense but front-loaded: the core purpose leads, followed by the scoping disclaimer and sibling routing. The long parenthetical enumerating re-versioning paths is justified because it prevents misrouting, though it is the one place the prose could be tightened.

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 an 11-parameter mutation tool with full schema coverage and an output schema, the description supplies everything an agent needs: editable fields, ownership requirement, immediate-publish behavior, sibling routing for non-display changes, and slug lookup pointers. No material gaps.

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 schema carries most parameter detail. The description still adds partial-update semantics ('pass only the fields you want to change') and cross-references the lookup tools for valid category/facet slugs, which the schema itself does not.

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 (Edit) and resource (DISPLAY metadata of YOUR OWN PUBLISHED agent), then enumerates exactly which fields are editable. It also names what the tool does NOT touch (tools/actions/credentials/prompts), which sharply distinguishes it from siblings like findagent_bump_version and findagent_repull.

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 states when to use it (display-only edits, go live immediately without re-review) and when not to (behavioral changes must route through bump_version, repull, or reintrospect_mcp). Adds the owner-only constraint and routes the agent to findagent_list_categories for valid slugs.

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

findagent_edit_priceA
Idempotent
Inspect

Change the price of YOUR OWN agent (the audited price-edit). Pass the agent slug + price_type ('free' or 'paid') and, when paid, price_cents (US cents, max 50000 / $500). The change is owner-gated and recorded to an audit log. NOT retroactive: existing buyers keep their access. Only the agent's owner can call this; the change goes through the same validated path as the web price editor.

NameRequiredDescriptionDefault
slugYesYour agent slug (you must own it).
price_typeYes'free' or 'paid'.
price_centsNoRequired when paid — integer US cents (1–50000). Ignored for free.

Output Schema

NameRequiredDescription
slugNo
changedNo
price_typeNo
price_centsNo
price_labelNo
instructionsNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark this as non-read-only and non-destructive, and the description adds materially: owner-gating, audit-log recording, non-retroactivity, and that existing buyers keep access. This goes beyond the structured fields and tells the agent exactly what side effects to expect.

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?

Four sentences, each carrying a distinct constraint (ownership, price rules, non-retroactivity, validation path), with the main action front-loaded. No filler or repetition.

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 mutation tool with an output schema and full parameter coverage, the description provides all needed context: owner prerequisite, price bounds, enum semantics, and downstream impact on existing buyers. An agent can invoke it correctly without additional assumptions.

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?

Input schema covers all three parameters with descriptions and enums, so the baseline is 3. The description reinforces the 50000-cent cap and 'ignored for free' behavior, but does not add meaning beyond what the schema already states.

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?

The opening sentence names a specific verb ('Change') and resource ('price of YOUR OWN agent'), and adds the qualifier 'audited price-edit', making the operation unmistakable. This naturally separates it from nearby tools like findagent_edit_metadata and findagent_buy_agent.

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 clearly scopes when the tool applies: only the agent's owner may use it, and it is the validated equivalent of the web price editor. It does not explicitly name alternative tools or say when not to use this one, so it misses the top bar but is well above vague.

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

findagent_export_project_recipeAInspect

Turn one of YOUR OWN projects into a private recipe DRAFT: only decisions you stated or approved (never assumptions or defaults) are used, with names, links, hosts, repository paths, credentials and the project's own name removed. Pass project_id (from the project card), attestation: "own-work" (you confirm the recipe is yours to publish) and the listing fields (title, slug, tagline, description, category_slug). The listing text must not name anything the anonymiser would remove (refused listing_identifies). Nothing is published: the draft still needs findagent_submit_for_review, the automated scan and a person. Refused not_settled when nothing in the project is settled yet.

NameRequiredDescriptionDefault
slugYesPermanent kebab-case slug (3-60 chars).
titleYesListing title (3-80 chars).
taglineYesOne-line value proposition (10-140 chars).
project_idYesThe id of one of your own projects.
attestationYesRequired: "own-work" — the recipe is your own work, or yours to publish.
descriptionYesListing description (50-4000 chars).
category_slugNoPrimary category slug (see findagent_list_categories).

Output Schema

NameRequiredDescription
kindNo
slugNo
titleNo
statusNo
accountNo
createdNo
next_toolNo
price_typeNo
preview_urlNo
instructionsNo
decision_countNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the anonymisation policy (names, links, hosts, repo paths, credentials, project name stripped), the 'stated/approved decisions only' rule, and named refusal codes (`not_settled`, `listing_identifies`). It also makes explicit that nothing is published, so the agent understands the state transition.

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 purpose and the anonymisation guarantee, then describes inputs and refusals. It is dense and every clause carries information, though the single packed paragraph is heavier than necessary and could be split for easier scanning.

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 mutation-style tool with an output schema already defined, it covers everything an agent needs: prerequisites (own project, settled decisions, attestation), side effects (draft only, no publication), follow-on steps, and refusal conditions.

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 meaning: it ties `attestation: "own-work"` to a confirmation of publish rights, locates `project_id` on the project card, and imposes an extra constraint on the listing fields (they must not name anything the anonymiser would remove), which the schema does not state.

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+scope: turning one of the caller's OWN projects into a private recipe DRAFT. It also distinguishes itself from the publication tools by clarifying this only produces a draft, not a published listing.

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 strong context: it requires your own project, it only uses stated/approved decisions, and it names the follow-on tool (findagent_submit_for_review) plus the scan/human review that consume the draft. It does not, however, distinguish itself from sibling draft creators like findagent_create_draft or findagent_create_code_draft, so the agent must infer when to prefer this over them.

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

findagent_get_agentA
Read-only
Inspect

Get the full store view of ONE published FindAgent marketplace agent by slug — mirrors the website's agent detail page. Returns title, tagline, description, price_type/price_cents/currency, category list (omitted for an MCP server listing, which is not categorised), rating, install count, kind, a summary of its tools/skills, example prompts, and a connect hint. is_mcp_server_listing says whether this row is an MCP server FindAgent merely LISTS (connect your client straight to the provider — see connection, hosted or local) rather than an agent FindAgent runs; kind is mcp-tool for both, so it cannot tell them apart. That field is OMITTED when it could not be determined — read its absence as unknown, never as false. A paid agent's tools/skills stay hidden until purchase. For YOUR OWN agent, each tool also carries its action (the prompt template, or an http action's method + url + body template), so a publish can be verified by read-back — a template-only republish is otherwise invisible here. A caller who does not own the agent never sees action, and an http action's headers and auth_ref are withheld from everyone. An unknown or unpublished slug returns a needs_input result pointing back to findagent_browse_agents.

NameRequiredDescriptionDefault
slugYesThe published agent slug (from findagent_browse_agents).

Output Schema

NameRequiredDescription
kindNo
slugNo
titleNo
toolsNo
ratingNo
skillsNo
taglineNo
categoryNo
currencyNo
categoriesNo
connectionNo
price_typeNo
descriptionNo
price_centsNo
price_labelNo
connect_hintNo
review_countNo
install_countNo
example_promptsNo
is_mcp_server_listingNo
paid_capabilities_gatedNo

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the is_mcp_server_listing omission semantics ('read absence as unknown, never false'), that paid agents hide tools/skills until purchase, that action is visible only to owners, and that http headers/auth_ref are withheld. These are exactly the gotchas an agent needs.

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?

Purpose and return shape are front-loaded, then caveats follow in dense but information-bearing sentences. It is long, but nearly every clause carries a distinct behavioral fact rather than padding.

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 read tool with an output schema present, the description need not explain return values yet still enumerates them and covers the ownership/auth/omission edge cases that the schema and annotations cannot express. 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.

Parameters3/5

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

Schema coverage is 100% and the single slug parameter is fully documented in the schema, so the description adds no syntax or format detail. It only reiterates the source ('by slug'), matching the baseline for a schema-complete parameter.

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 ('Get the full store view of ONE published FindAgent marketplace agent by slug') and grounds it with an analogy to the website's agent detail page, cleanly separating it from the list-oriented sibling findagent_browse_agents.

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 handles the failure path (unknown/unpublished slug returns a needs_input result pointing back to findagent_browse_agents), which routes the agent correctly. It does not compare itself against siblings like list_my_agents or load_listing_tools, so it stops short of full when/not guidance.

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

findagent_import_openapiA
Read-only
Inspect

Turn an OpenAPI 3.x spec (JSON or YAML text you pass as spec) into the tools and credential slots of an action agent, without saving anything. Each operation becomes one http tool bound to the spec’s https server host; the spec’s security schemes become credential slots (definitions only, the buyer enters the secret at connect time). Review the result with the user, then pass tools, credential_slots and guardrails to findagent_create_draft. Paste-only: no URL is fetched. At most 40 operations become tools; the rest are listed in warnings. The web twin is the Submit page’s OpenAPI door.

NameRequiredDescriptionDefault
nameNoOptional short label used as a name fallback.
specYesThe OpenAPI 3.x spec text, JSON or YAML (up to 256 KB).

Output Schema

NameRequiredDescription
titleNo
toolsNo
usageNo
taglineNo
warningsNo
guardrailsNo
descriptionNo
category_slugNo
system_promptNo
example_promptsNo
credential_slotsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly and openWorld=false, and the description reinforces and explains that (paste-only, nothing saved, no URL fetched). It adds non-schema behavior the agent could not otherwise know: spec security schemes become credential definitions only, overflow operations land in warnings, and each operation binds to the spec's https host.

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?

Dense, front-loaded, and mostly earning its place—limits, credential behavior, and next step all come early. The closing 'web twin is the Submit page's OpenAPI door' is orienting but borderline expendable.

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 two-parameter, read-only import tool with an output schema and strong annotations, nothing material is missing: limits, safety profile, credential handling, and the hand-off path are all covered.

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 100% and both parameters carry descriptions, so the schema does the heavy lifting. The description reinforces that spec is JSON or YAML text pasted in and mentions the 40-op truncation, but adds no format or size detail beyond what the schema already states (256 KB).

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: turns an OpenAPI 3.x spec into tools and credential slots of an action agent, explicitly without saving. It also names the downstream sibling (findagent_create_draft), so the agent can place it in the workflow without opening the 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 sequencing: review the result with the user, then pass tools, credential_slots and guardrails to findagent_create_draft. It also states the paste-only constraint (no URL fetched) and the 40-operation cap, which preempts the main misuse.

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

findagent_import_repoA
Read-only
Inspect

Pull the CALLER'S OWN GitHub repo (via their connected token) and return deterministic grounding (basics, languages, tech domains, detected tools + the hosts they reach, and what the repo IS — skills, actions, runnable code or instructions only — with the parts found) plus a field contract. Use the grounding as the basis, then run findagent_submission_wizard to walk the user through the listing step-by-step and finalize with findagent_create_draft — your own model does the synthesis (no FindAgent LLM cost). Pass path for a repository that holds several packages (only that folder is read). Files the reader had to leave out are listed in left_out. Read-only: nothing is persisted or executed. Works for PRIVATE repos: the pull runs server-side with your stored GitHub token, so your AI client never needs repo access.

NameRequiredDescriptionDefault
refNoOptional branch/tag/SHA. Defaults to the default branch HEAD.
pathNoOptional folder of the repository that IS the package, for a repository that holds several (for example "plugins/pdf"). Only that folder is read. Defaults to the repository root.
repoYesowner/repo or a github.com URL (must be readable by your connected GitHub token). Private repos you own work — the pull is server-side.

Output Schema

NameRequiredDescription
pathNo
repoNo
commitNo
left_outNo
groundingNo
instructionsNo
field_contractNo
already_importedNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say readOnlyHint/openWorldHint; the description adds substantive context beyond that: nothing is persisted or executed, private repos work because the pull runs server-side with the stored GitHub token, the client never needs repo access, excluded files surface in `left_out`, and synthesis happens in the caller's model with no FindAgent LLM cost. These are behavioral traits an agent could not infer from annotations or schema.

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: the action and the returned grounding come first, followed by workflow routing, then caveats. It is dense to the point of being a single sprawling sentence with nested parentheticals, which costs a little readability, but essentially every clause carries useful information.

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?

An output schema exists, so return values need only be gestured at, yet the description characterizes the grounding and the field contract, covers the private-repo auth story, the monorepo case, and the truncation signal (`left_out`). 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.

Parameters3/5

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

Schema coverage is 100%, so all three parameters including `ref` and `repo` are already documented in the schema. The description's note about `path` (only that folder is read) largely restates the schema's own wording, and it never mentions `ref`. Baseline 3 is appropriate when the schema carries the parameter burden.

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 ('Pull the CALLER'S OWN GitHub repo ... and return deterministic grounding') and enumerates exactly what the grounding contains (basics, languages, tech domains, detected tools + hosts, what the repo IS). This is distinguishable from siblings like findagent_repull or findagent_list_repos because it names the token-backed pull and the grounding payload.

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 sequences the workflow: use the grounding as the basis, then run findagent_submission_wizard, then finalize with findagent_create_draft. It also names the condition for `path` (repo holding several packages) and states the pull is read-only, so an agent knows when this is and is not the right entry point.

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

findagent_list_categoriesA
Read-only
Inspect

List the active FindAgent marketplace categories as a TREE: each top-level category with its category_type ('industry'|'discipline') and subcategories. Call this before drafting a listing. The create_draft primary category_slug must be a TOP-LEVEL slug, the selected set MUST include at least one discipline, AND for EVERY top-level you select you MUST also include one of its OWN subcategories (a subdiscipline under the discipline; a subindustry under any industry) — put the extra slugs in additional_category_slugs[]. Prefer findagent_submission_wizard to walk the user through category selection step-by-step.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
usageNo
categoriesNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses the tree-shaped output, the category_type facet, and critical validation rules about top-level slugs, discipline requirements, and mandatory subcategory inclusion. These constraints materially affect how the agent should use the returned data and are not inferable 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.

Conciseness4/5

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

The description is dense but not bloated; every clause contributes necessary information. It front-loads the core purpose before diving into constraints, though the long run-on sentence with uppercase emphasis could be structured more cleanly. Still, efficiency is good for the complexity it conveys.

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 zero-parameter read-only list tool with an output schema, the description is complete: it explains what will be returned, when to call it, and how to interpret the result for the downstream create_draft flow. There are no apparent missing details an agent would need to invoke this tool correctly.

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?

This tool has zero parameters and the schema coverage is 100%, so there is no parameter gap to fill. The description adds value by referencing downstream parameters (category_slug and additional_category_slugs) that the caller will need when drafting a listing, which is useful semantic context even though those parameters belong to another tool.

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?

The description clearly states a specific action ('List the active FindAgent marketplace categories as a TREE') and specifies what the output includes: top-level categories, category_type values, and subcategories. It also distinguishes its role in the workflow by saying 'Call this before drafting a listing,' which separates it from listing-related siblings and drafting tools.

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 states when to use the tool ('Call this before drafting a listing') and names a preferred alternative for a different flow ('Prefer findagent_submission_wizard to walk the user through category selection step-by-step'). This gives the agent clear context for choosing between this tool and a sibling.

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

findagent_list_my_agentsA
Read-only
Inspect

List the agents that are YOURS, in either sense. scope:"created" (the default) returns agents you CREATED — id + slug + name + kind + status + any in-flight re-version status — plus your personal departments; call it FIRST when you need a slug for a lifecycle tool (findagent_edit_price / findagent_bump_version / findagent_withdraw_version / findagent_edit_metadata / findagent_rollback_version), to submit a draft (findagent_submit_for_review — a draft/needs_changes agent is submittable), or to attach a knowledge base (findagent_attach_kb). scope:"acquired" returns agents you BOUGHT or INSTALLED — your library — which is what to call when a buyer asks what they have access to; those are not yours to edit. An acquired row carries update_awaiting_your_approval:true when a newer version asks for more permissions than were accepted and the buyer has not approved it yet, so they are still being served the earlier version (approval is given on the agent page). scope:"all" returns both. Essential after reconnecting in a new session, when you no longer have the slug of something you created or acquired earlier. READ-ONLY.

NameRequiredDescriptionDefault
scopeNoWhich sense of "mine": created (default — agents you authored, editable via the lifecycle tools), acquired (agents you bought or installed, read-only to you), or all.

Output Schema

NameRequiredDescription
agentsNo
acquiredNo
truncatedNo
departmentsNo
instructionsNo
total_agentsNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so 'READ-ONLY' is somewhat redundant, but the description adds real behavioral context: acquired agents are not editable, and the update_awaiting_your_approval:true flag means the buyer is still served the earlier version until approval on the agent page. That flag semantics is genuinely non-obvious and not derivable from annotations or schema.

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 statement and the scope options, and structured around them. It is dense and the parenthetical lists of lifecycle tool names run long, but nearly every clause carries routing or field-semantics information; minor trimming of the tool-name enumerations would improve it.

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?

An output schema exists so return values needn't be explained, yet the description still flags the salient row fields and the one non-obvious flag. For a single-optional-enum read tool, an agent has everything needed to select and invoke it correctly.

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% and the enum is fully documented in-schema, so the baseline is 3. The description goes beyond that by attaching an action consequence to each scope value (created → editable via lifecycle tools; acquired → read-only library), making the choice of scope operationally meaningful rather than just definitional.

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 (list agents) and immediately disambiguates the ambiguous 'mine' into three scopes, with the per-scope payload spelled out (id + slug + name + kind + status). It clearly distinguishes itself from the many lifecycle siblings by positioning itself as the slug-resolution entry point.

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 for each scope: 'call it FIRST when you need a slug for a lifecycle tool' with the sibling tools named, 'to submit a draft', 'to attach a knowledge base', and 'call when a buyer asks what they have access to'. It also states a when-not implicitly via 'those are not yours to edit' and names the reconnect-in-a-new-session case.

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

findagent_list_reposA
Read-only
Inspect

List the CALLER'S OWN GitHub repos so you can pick one to import. Returns each repo's full_name (owner/repo), default_branch, and private flag. Pass a chosen full_name to findagent_import_repo. If GitHub is not connected it returns connected:false pointing at findagent_connect_github; in GitHub-App mode with no repos granted it returns needs_install with an install URL. Never returns your GitHub token.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
reposNo
connectedNo
next_toolNo
install_urlNo
instructionsNo
needs_installNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, but the description adds substantial context: it guarantees the tool never returns the GitHub token, and it discloses the two failure/edge-case responses (connected:false and needs_install). This provides valuable behavioral transparency 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.

Conciseness5/5

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

The description is compact yet information-dense: purpose is front-loaded, followed by return fields, the next step, edge cases, and a security note. Every sentence adds value with no redundancy.

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 zero-parameter, read-only tool, the description covers all necessary aspects: what it returns, how to proceed, error cases, and a security guarantee. It is complete enough for an agent to call it correctly and interpret the response.

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 input schema has zero parameters, so there is nothing to document. The description does not repeat schema info but instead focuses on output fields (full_name, default_branch, private flag) and behaviors. Given the baseline for zero parameters is 4, this 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?

The description clearly states the verb (list), resource (the caller's own GitHub repos), and the intended purpose (to pick one to import). It also differentiates from siblings like findagent_connect_github and findagent_import_repo by explicitly mentioning the import flow.

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 says to pass the chosen full_name to findagent_import_repo, establishing the workflow. It also provides guidance for edge cases: if GitHub is not connected, it points to findagent_connect_github; if no repos are granted, it mentions needs_install with an install URL. This helps the agent decide when to use this tool and what to do next.

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

findagent_list_requestsA
Read-only
Inspect

Read the PUBLIC FindAgent Agent Request Board — the community demand board of "I want an agent that does X" requests buyers have posted (the same board the website /requests page shows). Returns each request's title, body, status (open|planned|fulfilled|declined|duplicate), upvote count, requester handle, and the slug of a fulfilling agent when one is linked. A creator can build an agent that fulfils an OPEN request. Pass mine:true to list ONLY YOUR OWN requests instead (includes ones you withdrew / an admin removed, each flagged — edit a still-live one with findagent_update_request or withdraw it with findagent_withdraw_request). Filters: status, q (text search over title and details), sort (top by upvotes | new). PAGINATED via offset. READ-ONLY.

NameRequiredDescriptionDefault
qNoOptional text search over request titles and details (case-insensitive, up to 80 characters). Applies to the public board; ignored when mine:true.
mineNoWhen true, return ONLY the connected account's own requests (author-scoped, incl. withdrawn/removed rows) instead of the public board. Ignores status.
sortNoSort by upvote count (top) or recency (new). Default top.
limitNoOptional page size (default 30, max 100).
offsetNoOptional pagination offset (default 0).
statusNoOptional status filter for the public board (default: all live requests). Ignored when mine:true.

Output Schema

NameRequiredDescription
countNo
usageNo
has_moreNo
requestsNo
next_offsetNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the safety profile is already carried; the description adds genuinely new context such as mine:true surfacing withdrawn/removed rows 'each flagged' and offset-based pagination. Only minor redundancy from restating 'READ-ONLY' already in 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.

Conciseness4/5

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

Front-loads what the board is, then return fields, then the mine branch and filters. Dense but every clause carries information; the trailing 'READ-ONLY' is the only mildly redundant element.

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?

Covers scope, return shape, the mine override, filter dimensions, and pagination for a 6-parameter read tool, and an output schema exists so return values need not be over-explained. 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.

Parameters3/5

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

With 100% schema description coverage the schema already documents q, mine, sort, limit, offset, and status. The description largely restates these (mine ignores status, q ignored for mine, top|new sort), adding little semantic detail beyond the schema, so the baseline 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+resource (read the PUBLIC FindAgent Agent Request Board) and enumerates exactly what a row returns (title, body, status, upvotes, requester handle, fulfilling-agent slug). It distinguishes itself from siblings by naming findagent_update_request and findagent_withdraw_request in the workflow.

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 states the actionable condition (a creator can build an agent that fulfils an OPEN request), the mine:true switch for author-scoped listing, and routes edit/withdraw actions to the correct sibling tools. When-to-use and alternatives are both covered.

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

findagent_list_tech_facetsA
Read-only
Inspect

List the controlled Tech Domain and Language/Framework vocabularies (the software-development discipline facets). Pass chosen slugs as create_draft tech_domains[] / languages[]. Read-only; these are enrichment facets (unknown slugs are dropped). Prefer findagent_submission_wizard to walk the user through the tech step-by-step.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
usageNo
languagesNo
tech_domainsNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds meaningful behavioral context beyond those: the vocabularies are controlled and enrichment-oriented, and unknown slugs are silently dropped. This helps the agent understand consequences without contradicting 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.

Conciseness5/5

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

The description is compact and front-loaded: it states the core purpose in the first sentence, then gives usage instructions and alternatives in two short follow-up sentences. Every sentence earns its place with no wasted words.

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?

Given the zero-parameter signature, the read-only annotations, the existence of an output schema, and the presence of a named wizard alternative, the description covers everything an agent needs to decide to call it and to use its results correctly.

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 has zero parameters and schema description coverage is 100%, so there is no parameter detail to document. The description still adds semantic value by explaining how returned slugs should be used in create_draft, which aids the agent even without parameters.

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?

The description starts with a specific verb and resource: 'List the controlled Tech Domain and Language/Framework vocabularies'. It identifies the exact content of the tool—software-development discipline facets—making its purpose unmistakable and distinguishing it from generic listing tools.

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?

The description gives explicit usage direction: 'Pass chosen slugs as create_draft tech_domains[] / languages[]'. It also names a preferred alternative, findagent_submission_wizard, and clarifies that unknown slugs are dropped, which tells the agent when to use this tool versus a guided walkthrough.

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

findagent_load_listing_toolsAInspect

Load the tool list of an MCP server listing whose server needs a sign-in before it will list its tools. Only the listing's owner or an admin may do this. This returns a sign-in link for the server's own vendor: open it in a browser where you are signed in to FindAgent with this same account, sign in to the vendor, and FindAgent then lists the tools once. The vendor's access token is used for that one call and is never stored or returned. The loaded tools are checked and, on a published listing, submitted as an update for review. The link expires after a few minutes.

NameRequiredDescriptionDefault
slugNoThe MCP server listing slug (the last part of its /mcp/<slug> page URL). Give this OR agent_id.
agent_idNoThe listing id (a UUID). Give this OR slug; if you give both, they must name the same listing.

Output Schema

NameRequiredDescription
agent_idNo
instructionsNo
authorize_urlNo
expires_in_secondsNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover safety (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), and the description adds substantial context beyond them: a sign-in link is returned, the vendor token is used for exactly one call and never stored or returned, the link expires after a few minutes, and loaded tools are checked and submitted as a review update on published listings. This is exactly the extra behavioral detail the annotations cannot convey.

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?

Four sentences, front-loaded with purpose and permission before mechanics, with no filler. It is dense with distinct facts (auth link, token handling, review submission, expiry) but each sentence carries needed information; only borderline against a strict conciseness bar.

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?

An output schema exists, so return values need no prose explanation. The description supplies the auth requirements, permission model, token lifecycle, expiry, and the downstream review submission — everything an agent needs to invoke this correctly and set expectations for the caller.

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 both slug and agent_id, including their mutual-exclusivity rule and the 'must name the same listing' constraint, are already documented in the schema. The description adds no parameter-level detail, which is the correct baseline 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.

Purpose5/5

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

States a specific verb and resource ('Load the tool list of an MCP server listing') and narrows the scope with a clear condition ('whose server needs a sign-in before it will list its tools'). This distinguishes it from adjacent siblings such as reintrospect_mcp, repull, and preflight without requiring the schema to be opened.

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 precondition (the server requires sign-in before listing tools) and an authorization rule ('Only the listing's owner or an admin may do this'), plus the follow-up steps to complete the flow. It does not explicitly name sibling alternatives for the non-sign-in case, so it stops short of a full when/when-not routing statement.

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

findagent_new_versionAInspect

Publish a NEW VERSION of YOUR OWN agent — whichever kind it is. Call this when a creator asks to update, re-publish, re-pull, re-scan or bump their agent; you do NOT need to know which mechanism its kind uses, because this routes on the agent's own published manifest using the same classifier the web dashboard branches on. An agent built here is re-versioned from the fields you pass (system_prompt / tools / guardrails / example_prompts / llms / credential_slots, exactly as findagent_bump_version takes them) — or, for an ACTION agent, from repo: pass the GitHub repo (owner/name, one you can write to) and its findagent.json is read server side, so a large tool array never has to be re-typed; an agent built from a code or skills repo is re-pulled from its connected GitHub repo (optional ref) — a skills agent that was UPLOADED rather than imported from GitHub has no repo and publishes its next version by uploading on the web dashboard, which this tool answers with that instruction; an mcp-server listing the buyer reaches over the network is re-scanned at that endpoint, while one the buyer runs on their own machine has no endpoint to scan and is re-versioned from the fields you pass, like an agent built here. Pass bump (patch|minor|major, default patch) and a changelog where the kind takes one; the bump is applied to the LISTING's current version, never to a version declared in a repo — the listing owns its own version line, so a hand-edited repo version does not change what publishes here. Owner-only; the new version enters the normal review gate. PREFER THIS over findagent_bump_version / findagent_repull / findagent_reintrospect_mcp — those still work and each refuses a kind it does not handle, which is the mistake this tool removes.

NameRequiredDescriptionDefault
refNoAgents built from a repo only: a branch, tag or commit sha to re-pull. Ignored otherwise.
bumpNoSemver step. Default patch.
repoNoAction agents (kind mcp-tool) only: re-version FROM this GitHub repo (owner/name, one you can write to) — its findagent.json (or a manifest.json declaring schema_version 1.1) supplies the whole tool surface server side, so no tool array passes through a model. Omit it to pass the fields instead.
slugYesYour agent slug (you must own it).
changelogNoWhat changed (10-500 chars), for the kinds that take one.

Output Schema

NameRequiredDescription
instructionsNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint=false / openWorldHint=false annotations by disclosing owner-only access, the review gate on the new version, per-kind routing behavior, and the non-obvious rule that the bump applies to the listing's version line and never to a repo-declared version. For a mutation tool this is unusually complete.

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?

Front-loads the core action well, but it is a single dense paragraph of long em-dash-clause sentences that is harder to parse than necessary. Most clauses carry real information given the multi-kind routing, but the wall-of-text structure costs it readability.

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 an output schema present, return values need not be explained, and the description covers everything else an agent needs: routing across built/action/code/skills/mcp-server kinds, the uploaded-skills edge case that must go to the web dashboard, and the ownership/review constraints.

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 meaning the schema does not: `repo` supplies the whole tool surface without passing a tool array through a model, `ref` only applies to repo-built agents, and `bump` targets the listing version rather than a repo version.

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: 'Publish a NEW VERSION of YOUR OWN agent.' It immediately distinguishes itself from siblings by naming findagent_bump_version, findagent_repull, and findagent_reintrospect_mcp and explaining that this tool supersedes their per-kind branching.

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 invocation trigger ('Call this when a creator asks to update, re-publish, re-pull, re-scan or bump their agent') plus an explicit preference rule: 'PREFER THIS over findagent_bump_version / findagent_repull / findagent_reintrospect_mcp.' It also states the owner-only precondition and the review-gate consequence.

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

findagent_preflightA
Idempotent
Inspect

Validate YOUR OWN draft BEFORE submitting it — the same checks the submit gate enforces, surfaced up front so you can fix issues first. Returns blocking issues (must fix before you can submit) and advisory warnings (recommended). For an agent with CODE it also runs a build dry-run in the sandbox to catch a too-large bundle / missing dependency / build error before submit — that build is asynchronous (minutes), so the result shows build_status: 'building' while it runs; re-call this tool to see the final pass/fail. Optionally pass smoke: true to ALSO run your agent's code once in the sandbox (after the build passes) to confirm it actually responds with the credentials you saved — the verdict comes back in smoke and is advisory (it never blocks submit). Pass agent (the slug or id of your draft from findagent_create_draft / findagent_create_code_draft). Submit (findagent_submit_for_review) is blocked server-side until this passes and, for an agent with code, the build passes.

NameRequiredDescriptionDefault
agentYesThe slug or id of YOUR draft (from findagent_create_draft / findagent_create_code_draft).
smokeNoOptional. Set true to also run ONE tool once in the sandbox on your OWN agent’s code (after the build passes) to confirm it responds. Advisory only — the result is in `smoke` and never blocks submit.

Output Schema

NameRequiredDescription
okNo
smokeNo
advisoryNo
blockingNo
next_toolNo
size_bytesNo
build_statusNo
instructionsNo
heaviest_depsNo

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 the async build dry-run (minutes), the transient `build_status: 'building'` state and the need to re-call, the advisory-only nature of the smoke result, and that submit is gated server-side. This is exactly the behavioral context an agent needs before invoking.

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 purpose, then behavior, then parameters — a logical order. It runs long and restates the smoke behavior already in the schema, but nearly every clause carries operational information.

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?

An output schema exists, yet the description still names the return categories (blocking issues vs advisory warnings, build_status, smoke), closing the loop for a tool with async and conditional-result behavior. 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 sequencing the schema omits: `smoke` runs only after the build passes and its verdict is advisory. It also clarifies `agent` is the slug/id of the caller's own draft.

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 (validate a draft) and immediately differentiates it from the submit gate it mirrors. An agent can tell it apart from findagent_submit_for_review because the description says it surfaces the same checks up front rather than performing the submission.

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 'before submitting' timing, explicit note that submit is blocked server-side until this passes, and explicit routing to findagent_create_draft / findagent_create_code_draft for the required `agent` argument. When-to-use and the dependency on the sibling submit tool are both stated.

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

findagent_reintrospect_mcpAInspect

Publish a NEW version of YOUR OWN published MCP server by RE-INTROSPECTING its remote endpoint. FindAgent re-lists the remote server's current tools (over a sandbox-gated, SSRF-hardened scan), compares them to your live listing, and — if the tool surface CHANGED — submits a new version for admin review with an auto-drafted changelog. Your LIVE listing keeps serving until the new version is approved (never auto-unpublished). If the tools are unchanged it is a no-op. If your server has started REQUIRING AUTHENTICATION, the tools can't be re-listed but the listing's 'needs your own credentials' disclosure is corrected in a new version, with your tool list left unchanged. If the remote can't be reached or the scan is unavailable, nothing changes (reported back). Pass the listing slug (you must own it); optional bump (patch|minor|major, default patch) + changelog override. The server URL is read from your stored listing — nothing executes on FindAgent. Owner-only; for MCP servers only (an agent with code uses the code wizard, an agent built here uses findagent_bump_version).

NameRequiredDescriptionDefault
bumpNoOptional semver bump for the new version. Defaults to patch.
slugYesYour published mcp-server listing slug (you must own it).
changelogNoOptional changelog override (≤500 chars). Defaults to an auto-drafted line from the tool diff.

Output Schema

NameRequiredDescription
slugNo
statusNo
changedNo
scannedNo
versionNo
changelogNo
scan_noteNo
server_urlNo
tool_countNo
instructionsNo
auth_disclosure_changedNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, openWorld=true. The description adds substantial context beyond that: owner-only, admin review required, the LIVE listing keeps serving until approval and is never auto-unpublished, and the auth-disclosure correction path. It also discloses the sandbox-gated SSRF-hardened scan and that nothing executes on FindAgent.

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?

The core action is front-loaded in the first sentence, and every subsequent sentence covers a distinct behavior or edge case. It is dense and somewhat long, but little is wasted; the heavy capitalization is stylistic rather than informative bloat.

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 an output schema present, return values need no explanation, and the description covers ownership, approval flow, no-op, auth, and failure conditions comprehensively. Nothing an agent needs to invoke this 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 schema documents slug, bump, and changelog defaults. The description still adds an access constraint not in the schema ('you must own it') and confirms the bump enum and changelog override, giving it a slight edge over the baseline 3.

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?

The description states a specific verb+resource ('Publish a NEW version of YOUR OWN published MCP server by RE-INTROSPECTING its remote endpoint') and explicitly disambiguates from siblings, naming the code wizard and findagent_bump_version as the alternatives for other cases. An agent can identify the tool without opening the 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?

It details exactly when the tool acts (tool surface changed), when it is a no-op (tools unchanged), and the degraded paths (server requires auth, remote unreachable, scan unavailable), plus explicit routing away to the code wizard and findagent_bump_version. When-to-use, when-not, and alternatives are all present.

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

findagent_repullAInspect

Publish a NEW version of YOUR OWN published agent built from a CODE or SKILLS repo by RE-PULLING your OAuth-connected GitHub repo. FindAgent re-fetches your repo (at an optional branch/tag/commit ref, default = the latest commit on your stored branch), re-snapshots + re-scans it (a code bundle also re-builds), diffs it against your live version, and — if it CHANGED — submits a new version for admin review with an auto-drafted changelog. Your LIVE version keeps serving until the new one is approved (never auto-unpublished). If the source is unchanged it is a no-op. Pass the agent slug (you must own it) + optional ref. Owner-only; the repo is pinned to your agent's own prior import (arbitrary-repo ingest is not available here). VERSION NUMBER: the new version is computed from the LISTING's current version plus bump, NOT from any version in your repo (package.json / manifest) — the listing owns its own version line, so hand-editing a version in the repo does not change what gets published here, and the two can legitimately differ. For agents built from a repo: a code or skills agent re-pulls the repo it was imported from, and an ACTION agent (kind mcp-tool) re-pulls the repo you NAME with repo (owner/name, one you can write to) — its findagent.json is read server side, so its whole tool array never passes through a model; the actions pass the same annotation floor and credential-host binding as every other door and the new version enters review. An agent whose fields you edit directly re-versions via findagent_bump_version, an MCP server via findagent_reintrospect_mcp. A skills agent that was UPLOADED (no GitHub repo) cannot be re-pulled: it answers uploaded_source, and its next version is uploaded instead — with findagent_reupload, or on the web dashboard. Which tool for which part: Instructions, Skills and Actions are authored as an Agent Plugins package and sent as files with findagent_create_package_draft; Code (a Node or Python program) uses findagent_create_code_draft from your own GitHub repo; an MCP server you already run uses findagent_create_remote_mcp (hosted over https) or findagent_create_local_mcp (started on the buyer machine by a command); an OpenAPI spec becomes tools through findagent_import_openapi before findagent_create_draft; findagent_create_draft saves a declarative listing from findagent_import_repo grounding.

NameRequiredDescriptionDefault
refNoOptional branch, tag, or commit SHA to pull. Defaults to the latest commit on your stored branch.
bumpNoVersion bump for this re-version — patch (default), minor (a feature release, e.g. 0.1.x → 0.2.0), or major. Omit for patch. Applied to the LISTING's current version, not to any version declared in the repo.
repoNoAction agents (kind mcp-tool) only: the GitHub repo to read, owner/name or a github.com URL, one you can write to. Its findagent.json (or a manifest.json declaring schema_version 1.1) supplies the tool surface. Ignored for code and skills agents, which re-pull the repo they were imported from.
slugYesYour published agent slug, built from a repo (you must own it): a code or skills agent, or an action agent when you also pass repo.

Output Schema

NameRequiredDescription
kindNo
slugNo
statusNo
changedNo
versionNo
changelogNo
scan_statusNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

With annotations only giving readOnlyHint=false/destructiveHint=false/openWorldHint=true, the description adds substantial context the agent cannot infer: owner-only, repo pinned to the prior import, no arbitrary-repo ingest, live version keeps serving until approval (never auto-unpublished), unchanged source is a no-op, and the new version enters admin review with an auto-drafted changelog.

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?

Purpose and core behavior are front-loaded, and the bulk is high-density edge-case handling. It is long, and the trailing 'which tool for which part' survey strays into cross-tool routing that is only marginally in scope, but most sentences carry unique operational information.

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?

An output schema exists so return values need not be explained, and the description nonetheless covers the tricky cases an agent would otherwise miss: uploaded skills agents, action-agent repo naming, version-number ownership, and the review/no-op semantics. Nothing needed to invoke 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 semantics beyond the schema: it clarifies the `bump` version is derived from the LISTING's version line rather than any repo-declared version, that `repo` applies only to kind mcp-tool agents, and that `ref` defaults to the stored branch's latest commit.

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?

The opening clause names a specific verb (publish), resource (a new version of YOUR OWN published agent), and mechanism (re-pulling your OAuth-connected GitHub repo). It immediately distinguishes itself from siblings like findagent_bump_version and findagent_reintrospect_mcp by naming exactly which source it re-reads.

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 routes the agent: fields-edited agents go to findagent_bump_version, MCP servers to findagent_reintrospect_mcp, uploaded skills agents to findagent_reupload, and creation flows to create_code_draft/create_package_draft/etc. It also states the when-not case (uploaded source answers `uploaded_source`, cannot be re-pulled).

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

findagent_reuploadAInspect

Publish a NEW version of YOUR OWN published skills agent that was UPLOADED (not imported from GitHub), from files you send as text: files maps each path to its text, exactly as findagent_create_package_draft takes them, with the same skill rules and caps. You must pass attestation: "own-work". FindAgent imports the files, diffs them against your live version and, if they changed, submits a new version for review with an auto-drafted changelog; your LIVE version keeps serving until it is approved. Unchanged files are a no-op. An agent imported from GitHub is refused (github_source): it re-versions by re-pulling its repository with findagent_repull, because an attested upload must never replace proven provenance. Optional bump (patch|minor|major, default patch). Which tool for which part: Instructions, Skills and Actions are authored as an Agent Plugins package and sent as files with findagent_create_package_draft; Code (a Node or Python program) uses findagent_create_code_draft from your own GitHub repo; an MCP server you already run uses findagent_create_remote_mcp (hosted over https) or findagent_create_local_mcp (started on the buyer machine by a command); an OpenAPI spec becomes tools through findagent_import_openapi before findagent_create_draft; findagent_create_draft saves a declarative listing from findagent_import_repo grounding.

NameRequiredDescriptionDefault
bumpNoOptional semver bump for the new version. Defaults to patch.
slugYesYour published, uploaded skills agent slug (you must own it).
filesYesThe whole package: each key a relative file path, each value its text.
attestationYesRequired: "own-work" — you confirm these files are your own work.

Output Schema

NameRequiredDescription
kindNo
slugNo
statusNo
changedNo
versionNo
changelogNo
publishedNo
scan_statusNo
skill_notesNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Far exceeds the annotations (readOnlyHint=false, destructiveHint=false) by describing the full lifecycle: files are imported, diffed against the live version, and only changed files submit a new version for review with an auto-drafted changelog while the live version keeps serving until approval. It also states that unchanged files are a no-op and that GitHub-sourced agents are refused.

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?

The core operation and its non-obvious lifecycle are front-loaded clearly, but the definition is a single dense paragraph with many embedded parentheticals and a long trailing routing section that is only tangentially about reupload. Most sentences earn their place, though the routing block is heavier than this tool's own needs.

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?

An output schema exists so return values need not be explained; the description covers ownership/auth, upload-vs-import preconditions, diff-and-review behavior, and the github_source refusal. For a 4-param mutation with nested files, 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?

With 100% schema coverage the baseline is 3, but the description adds real meaning: files is cross-referenced to findagent_create_package_draft's format and 'same skill rules and caps', attestation's required value and rationale (confirms own work), and bump's default (patch). This goes beyond the schema text without fully re-specifying parameter syntax.

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 — publish a NEW version of your own published, uploaded skills agent — with sharp scope qualifiers ('UPLOADED (not imported from GitHub)'). It explicitly names the sibling it is not for (findagent_repull) and the error surfaced (github_source), so an agent can distinguish it from repo-based versioning 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 when-to-use (own, uploaded, attested files) and when-not (GitHub-imported agents, which must use findagent_repull), plus the required precondition attestation='own-work'. The trailing 'which tool for which part' block routes the agent among create_package_draft, create_code_draft, create_remote_mcp/local_mcp, import_openapi, and import_repo.

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

findagent_rollback_versionA
Idempotent
Inspect

Roll YOUR OWN PUBLISHED agent BACK to a prior version (any kind). Pass the agent slug; OMIT version to LIST the prior published versions you can roll back to, then call again with version set to one of them. The live agent immediately serves that earlier (already-reviewed) version again — only a version that was published before can be a target (so it never serves unreviewed content). Existing buyers keep their access (entitlement is per purchase, not per version). Owner-only.

NameRequiredDescriptionDefault
slugYesYour published agent slug (you must own it).
versionNoThe semver of a PRIOR published version to revert to (from available_versions). Omit to list the eligible targets first.

Output Schema

NameRequiredDescription
slugNo
rolled_backNo
instructionsNo
current_versionNo
available_versionsNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the key observable behavior: the live agent immediately serves the earlier version, existing buyers retain access because entitlement is per purchase not per version, and unreviewed content can never be served. It also states the owner-only authorization requirement. This adds strong context that annotations alone do not provide.

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?

The description is front-loaded with the core action and packs the important procedural and safety guidance into three sentences. There is slight redundancy around 'published' and 'already-reviewed,' but every sentence contributes necessary information and there is no filler.

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 two-parameter tool with a 100% schema description, an output schema, and clear annotations, the description covers the complete call flow, ownership constraint, eligibility rule, and side-effect behavior. An agent has everything needed to invoke the tool correctly in both of its modes.

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 baseline is 3. The description's workflow instructions, such as 'OMIT `version` to LIST the prior published versions,' largely restate what the version parameter schema already says ('Omit to list the eligible targets first'). It adds safety context about prior published versions, but this does not substantially deepen the meaning of the individual parameters 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?

The description opens with a specific verb and resource: 'Roll YOUR OWN PUBLISHED agent BACK to a prior version.' It clearly identifies the operation, the required ownership, and the distinction between listing candidate versions and performing the rollback. No sibling tool matches this exact purpose, so it is sufficiently differentiated.

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 clear two-step usage pattern: omit `version` to list eligible targets, then call again with `version` set to one of them. It also states when-not: only previously published versions are valid targets, and only the owner can perform the action. It does not explicitly name alternative sibling tools such as bump or withdraw, so it falls short of a 5, but the guidance is otherwise explicit and actionable.

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

findagent_set_agent_stateA
Destructive
Inspect

Take YOUR OWN live agent DOWN from the marketplace, or put a withdrawn one back UP. action:"withdraw" unlists a PUBLISHED agent and stops the gateway serving it, leaving the published version itself untouched; action:"restore" puts that same previously-approved version back up with no new review. Owner-only. This is the LIVE listing — distinct from findagent_withdraw_version, which withdraws a version still awaiting review and never touches what is live.

NameRequiredDescriptionDefault
slugYesYour agent slug (you must own it).
actionYeswithdraw = take the live listing down. restore = put a withdrawn one back up.

Output Schema

NameRequiredDescription
slugNo
statusNo
instructionsNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, and the description goes well beyond that: it says withdraw stops gateway serving while leaving the published version untouched, restore requires no new review, and the operation is owner-only. Reversibility, blast radius, and auth requirement are all disclosed.

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?

The primary action is front-loaded and the disambiguation against the sibling is held to the final sentence. Some ALL-CAPS emphasis and parenthetical restatement ('This is the LIVE listing') add slight bulk without new information.

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?

An output schema exists so return values need not be explained. Ownership requirement, action semantics, side effects, and the nearest alternative are all covered, leaving nothing an agent needs in order to invoke this correctly.

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 enum values are already documented; baseline would be 3. The description adds real meaning on top — what 'withdraw' does to serving and that the underlying version survives — which the schema text alone does not convey.

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 pair ('take YOUR OWN live agent DOWN... or put a withdrawn one back UP') with the two action modes named. It explicitly distinguishes itself from the sibling findagent_withdraw_version, so an agent can route correctly 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?

Gives explicit per-action conditions: withdraw applies to a PUBLISHED listing, restore applies to a previously-withdrawn one. It also names the alternative tool and the exact condition that selects it ('withdraws a version still awaiting review and never touches what is live').

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

findagent_submission_statusA
Read-only
Inspect

Check the review status of YOUR OWN agent and WHY it is where it is — the missing companion to findagent_submit_for_review. Pass the agent slug/id. Returns the status (draft | pending_review | needs_changes | published | rejected), the in-flight version, the reviewer's needs-changes reason when one was given, and the security-scan findings (severity + a creator-safe description). Use this after submitting to see whether it was approved, is still in review, or was sent back — and exactly what to fix. Owner-only. READ-ONLY.

NameRequiredDescriptionDefault
agentYesThe slug or id of YOUR agent (from findagent_list_my_agents / findagent_create_draft).

Output Schema

NameRequiredDescription
slugNo
statusNo
instructionsNo
status_labelNoThe status in the words the dashboard badge and the review e-mails use (for example In review, Needs changes).
pending_versionNo
security_findingsNo
needs_changes_reasonNo
security_scan_statusNo
security_scan_subjectNoWHICH version security_scan_status describes. A pending code-bundle carries its own scan verdict; a declarative pending version has none, so the published verdict is reported and this says so.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, but the description adds genuinely new operational context: 'Owner-only' access restriction and the fact that the needs-changes reason and creator-safe security-scan severity are surfaced. It also reinforces rather than contradicts the read-only annotation. It does not mention pagination or freshness/latency of status, which keeps it off 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.

Conciseness4/5

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

Front-loaded with purpose, then the return payload, then the usage trigger — good ordering. There is minor redundancy: the status enum is listed and then re-explained as 'approved / still in review / sent back', and 'READ-ONLY' duplicates the readOnlyHint annotation.

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?

Covers purpose, ownership constraint, read-only safety, exact return contents, and the moment to call it. With an output schema present, the return-value detail is a bonus rather than a necessity, so nothing an agent needs 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% and the single parameter is already documented as 'slug or id of YOUR agent (from findagent_list_my_agents / findagent_create_draft)'. The description only restates 'Pass the agent slug/id' plus the owner qualifier, adding little beyond the schema, 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 ('Check the review status of YOUR OWN agent') and explicitly scopes it as the companion to findagent_submit_for_review, so it is separable from findagent_get_agent or findagent_list_my_agents. The enumerated status values further pin down exactly what 'status' means here.

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 this after submitting to see whether it was approved, is still in review, or was sent back' gives a clear trigger condition and sequencing relative to submit_for_review. It does not explicitly exclude the adjacent read siblings (findagent_get_agent, findagent_list_my_agents), so it stops short of full when/when-not guidance.

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

findagent_submission_wizardA
Read-only
Inspect

READ-ONLY: returns the next QUESTION to ask, and writes nothing. This is not the tool that submits — when the answers are collected, findagent_submit_for_review is what actually submits. Start a guided, step-by-step submission wizard — returns the ordered steps + the selectable choices (category tree + tech facets inlined); ask the user ONE step at a time as a numbered/selectable menu, validate (slug via findagent_check_slug), then advance, and finalize with findagent_create_draft. Prefer this over asking for all listing fields at once. Optional repo/source hints are echoed back (it does not pull a repo — that is findagent_import_repo).

NameRequiredDescriptionDefault
repoNoOptional owner/repo hint (where the listing is being imported from).
sourceNoOptional source hint (e.g. github, json) — echoed back only.

Output Schema

NameRequiredDescription
repoNo
stepsNo
sourceNo
wizardNo
instructionsNo
finalize_toolNo
field_contractNo

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond annotations: it is read-only and 'writes nothing' (reinforcing readOnlyHint), it clarifies the tool does NOT submit, does NOT pull a repo, and the repo/source params are 'echoed back only.' That is exactly the kind of behavioral clarification that prevents miscalls on a wizard entry point.

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 READ-ONLY guarantee and the not-a-submitter clarification, which is well-prioritized. Sentences are slightly dense but every clause carries routing or behavioral info; nothing is wasted.

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?

Given a wizard entry point with an output schema (ordered steps + choices) and strong annotations, the description covers what an agent needs: flow (ask one step at a time, validate slug, advance), finalization path (findagent_create_draft), and what will not happen. Complete for this complexity.

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. The description goes further by stating the hints are 'echoed back' and that it 'does not pull a repo,' which disambiguates the params' actual effect — useful beyond the schema's 'hint' wording.

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 with explicit scope: 'Start a guided, step-by-step submission wizard — returns the ordered steps + selectable choices.' It also proactively distinguishes itself from multiple siblings (findagent_submit_for_review, findagent_import_repo, findagent_create_draft), so an agent can route correctly without opening schemas.

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 guidance: 'Prefer this over asking for all listing fields at once,' plus named alternatives for adjacent tasks (submission via findagent_submit_for_review, repo pull via findagent_import_repo, slug validation via findagent_check_slug). It delineates what this tool is not, which is rare and valuable.

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

findagent_submit_for_reviewA
Idempotent
Inspect

WRITES: this is the tool that actually SUBMITS, and the draft enters human review. Not to be confused with findagent_submission_wizard, which only returns the next question to ask and changes nothing. Submit YOUR OWN draft listing for review — the final step that reaches full parity with the web submit wizard (set price, confirm originality + prohibited content, submit). Auto-detects whether the draft is built here (instructions, skills, actions) or carries code and finalizes it the same way the web wizard does: it flips your draft to pending_review (NOT published — an admin reviews it, and for an agent with code a security scan must pass, before it goes live). Pass agent (the slug or id of your draft, created via findagent_create_draft / findagent_create_code_draft), price_type/price_cents, the LLMs it targets, and BOTH confirmations. confirm_original + confirm_not_prohibited are YOUR attestation that this is your original work and avoids prohibited content (malware, illegal, or disallowed use) — both must be true, exactly like the web wizard's checkboxes. SLUG IS PERMANENT: the first time you call this WITHOUT confirm_slug it returns the exact final slug + a notice that the public URL can never change after publish; re-call it with confirm_slug set to that exact slug to acknowledge and proceed (this mirrors the web wizard's permanence confirm — you never lock a slug you didn't see). The own-work attestation (attestation: "own-work") belongs to the tools that take files you send (findagent_create_package_draft with files, findagent_reupload); the submit step takes confirm_original and confirm_not_prohibited instead. An MCP-server listing is always free: submitting one with a price is refused (listing_price_refused).

NameRequiredDescriptionDefault
llmsYesThe clients/LLMs this agent targets (at least one).
agentYesThe slug or id of YOUR draft (from findagent_create_draft / findagent_create_code_draft).
price_typeNoDefault free. "paid" requires price_cents (charged once Paddle is live).
price_centsNoRequired when price_type=paid: a positive integer of US cents, max 50000 ($500).
confirm_slugNoYour acknowledgement that the listing's public URL slug is PERMANENT after publish. Must exactly match the draft's slug. Call this tool WITHOUT it first to see the exact slug + permanence notice, then re-call with confirm_slug set to that slug to publish.
thumbnail_urlNoOptional. Accepted ONLY if already hosted on FindAgent assets; otherwise ignored (upload a thumbnail in the web wizard — off-site image URLs are not fetched).
confirm_originalYesRequired true — your attestation that this listing is your original work.
confirm_not_prohibitedYesRequired true — your attestation that it avoids prohibited content (no malware, illegal, or disallowed use).

Output Schema

NameRequiredDescription
slugNo
statusNo
accountNo
submittedNo
review_urlNo
instructionsNo
thumbnail_noteNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare non-read-only, idempotent, non-destructive, and the description correctly adds the key state transition (pending_review, NOT published), admin review, and the security-scan gate for code agents. However, it contradicts the idempotentHint=true annotation: the first call without confirm_slug returns a notice and does not finalize, while the second call with confirm_slug does — this two-phase, argument-dependent outcome means the operation is not idempotent in effect, which the description surfaces but does not reconcile with the declared hint.

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

Conciseness2/5

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

The critical facts are front-loaded (WRITES, sibling disambiguation), which is good. But the description is a dense run-on paragraph that repeats the web-wizard parity claim multiple times, spends a long clause on attestation ownership for unrelated tools (create_package_draft, reupload), and would be far more scannable as short labeled lines.

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 an 8-parameter submission gate with an output schema present, the description covers state outcome, review/scan gating, slug permanence, price refusal rule, and attestation requirements. Nothing an agent needs in order 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.

Parameters3/5

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

With 100% schema coverage, the baseline is 3; the description does add real meaning beyond the schema for confirm_slug (two-call acknowledgement flow), confirm_original/confirm_not_prohibited (attestation semantics), and price on MCP-server listings (refused). Those extras justify staying at 3 rather than rising higher, since the schema already documents every parameter including the confirm_slug protocol verbatim.

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?

Opens with "WRITES: this is the tool that actually SUBMITS, and the draft enters human review," naming the verb, the resource, and the resulting state. It explicitly distinguishes itself from findagent_submission_wizard, so an agent can route 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?

Names the confusable sibling and states why it differs ("only returns the next question to ask and changes nothing"), and gives the exact two-call protocol for confirm_slug. It also states prerequisites (draft created via create_draft / create_code_draft) and an exclusion (MCP-server listings must be free).

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

findagent_update_requestAInspect

Edit YOUR OWN agent request on the PUBLIC FindAgent demand board AS the connected account: change its title (5-120 chars), its details (max 2000 chars, empty clears them), or both. Only the text changes: upvotes and status are untouched. Only a request you posted that is still on the board and still open or planned can be edited (withdrawn, removed and resolved ones cannot). The new text is moderated. Get the id from findagent_list_requests with mine:true. Free - no payment.

NameRequiredDescriptionDefault
bodyNoThe new details (max 2000 characters). Omit to keep the current ones; an empty string clears them.
titleNoThe new title (5-120 characters). Omit to keep the current one.
request_idYesThe id of YOUR request to edit (from findagent_list_requests with mine:true).

Output Schema

NameRequiredDescription
bodyNo
titleNo
next_toolNo
request_idNo
instructionsNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and openWorldHint=false. The description adds the consequential behaviors an agent needs: only the text mutates, upvotes and status are untouched, the new text is moderated, and the call is free (no payment).

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?

Front-loaded with the action and scope, then eligibility, then id sourcing, then cost. Every sentence carries distinct information with no filler.

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?

An output schema exists, so return values need not be explained. For a 3-param mutation tool, the description covers eligibility, side-effect boundaries, moderation, and id sourcing — 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.

Parameters3/5

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

Schema coverage is 100%, so length limits, empty-string-clears semantics, and omit-to-keep behavior are already documented in the schema. The description restates the same constraints rather than adding syntax or format detail beyond it, so baseline 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?

Specific verb (Edit) + resource (your own agent request on the public demand board) + scope (title/details only, as the connected account). It is clearly distinguishable from siblings like findagent_create_request and findagent_vote_request 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?

Explicit eligibility rules: only requests you posted, still on the board, still open or planned; withdrawn, removed and resolved ones cannot be edited. It also names the sibling to use for obtaining the id (findagent_list_requests with mine:true).

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

findagent_verify_listing_claimAInspect

Check the proof for your open claim on an MCP server listing and, only if it holds, make the listing yours. For a GitHub proof, your connected GitHub account (findagent_connect_github) must be an admin of the declared repository; for a DNS proof, the TXT record returned by findagent_claim_listing must be visible. A failure says whether the proof did not hold (fix it and retry) or whether we could not check it (try again shortly). On success the listing is yours to manage like any agent you created; find it with findagent_list_my_agents. Do not poll this tool while DNS propagates: every call counts against your hourly MCP budget, so retry after a few minutes.

NameRequiredDescriptionDefault
slugNoThe MCP server listing slug (the last part of its /mcp/<slug> page URL). Give this OR agent_id.
agent_idNoThe listing id (a UUID). Give this OR slug; if you give both, they must name the same listing.

Output Schema

NameRequiredDescription
agent_idNo
verifiedNo
next_toolNo
instructionsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds substantial context beyond them: the two distinct failure modes (proof did not hold vs. could not check), the authorization requirement, the mutated end state ('the listing is yours to manage'), and a rate-limit/budget constraint with guidance not to poll.

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 and its conditional outcome, then prerequisites, failure handling, and the polling caution. Dense but each sentence carries distinct operational information; the DNS budget sentence is slightly long but justified by its non-obvious constraint.

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?

An output schema exists so return values need not be explained, and the description covers everything else an agent needs: precondition setup, both proof paths, failure interpretation, mutation semantics, and post-success discovery via findagent_list_my_agents.

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 100% and both parameters are fully documented in the schema, including the slug/agent_id OR-relationship and the both-must-match rule. The description adds no syntax or format detail beyond that, so the 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 and resource ('Check the proof for your open claim on an MCP server listing and, only if it holds, make the listing yours'), which distinguishes it from findagent_claim_listing (which opens the claim) and findagent_list_my_agents (which finds the result). An agent can tell exactly what this tool accomplishes without opening the 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?

Explicit when-to-use conditions for both proof types (GitHub admin membership vs. visible DNS TXT record), explicit prerequisites via findagent_connect_github and findagent_claim_listing, and an explicit when-NOT-to-use warning about polling during DNS propagation with a retry recommendation.

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

findagent_vote_requestAInspect

Upvote an agent request on the PUBLIC FindAgent demand board AS the connected account — signal that you also want the agent described by request_id (get ids from findagent_list_requests). Idempotent: voting again does not double-count. Returns the fresh upvote total. Free — no payment.

NameRequiredDescriptionDefault
request_idYesThe id of the request to upvote (from findagent_list_requests).

Output Schema

NameRequiredDescription
votedNo
upvotesNo
request_idNo
instructionsNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the sparse annotations, the description discloses key behavioral facts: the action is performed as the connected account, the operation is idempotent ('voting again does not double-count'), it returns the fresh upvote total, and it is free. This substantially exceeds the annotation coverage and gives the agent important expectations about side effects and response.

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 concise sentences, each carrying distinct value: the core action and scope, the idempotency guarantee, and the return value/cost. The most important information is front-loaded, with no filler or redundant detail.

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 one-parameter mutation tool with an output schema, the description covers everything needed to invoke it correctly: where to get the ID, what the action means, side-effect safety through idempotency, return behavior, and cost. There is no significant missing context.

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 100%: the single request_id parameter already includes a description pointing to findagent_list_requests. The tool description repeats that source but adds no new semantic information beyond the schema, so it meets the baseline without going higher.

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?

The description opens with a specific verb and resource: 'Upvote an agent request on the PUBLIC FindAgent demand board AS the connected account.' This clearly distinguishes the tool from siblings like findagent_create_request, findagent_withdraw_request, and findagent_list_requests. It also explains the underlying intent: 'signal that you also want the agent described by request_id.'

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 tells the agent when to use the tool: to signal support for an existing public request, and it directs the agent to findagent_list_requests for valid IDs. It does not explicitly contrast this with findagent_create_request or findagent_withdraw_request, so the guidance is strong but not fully explicit about alternatives.

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

findagent_whoamiA
Read-only
Inspect

Report which FindAgent account this AI client is acting as (the account you authorized the connector with) plus whether GitHub is connected. Use this if a draft you created here is missing when you open it in a browser, or GitHub shows as not connected — your MCP work is scoped to THIS account, so you must be signed in to the same FindAgent account in the browser to see it.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
accountNo
instructionsNo
github_connectedNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already signal readOnlyHint=true and openWorldHint=false, and the description adds substantial behavioral context: account scoping of MCP work, the need to match browser sign-in, and coverage of both account identity and GitHub connection status. This goes beyond what annotations alone convey and is fully consistent with them.

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?

The description is two sentences with no filler. The purpose is stated first, followed immediately by concrete usage triggers and a clarifying caveat. Every clause earns its place and the length is appropriate for the tool's simplicity.

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?

Given zero parameters, an output schema, and read-only annotations, the description covers everything an agent needs: what it reports, when to use it, and why the account-scoping behavior matters. There are no meaningful gaps for correct invocation.

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 has zero parameters, so there is nothing to document; the baseline of 4 applies. The description still clarifies what the tool reports, which is the only semantic context an agent needs, and no param descriptions are required.

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?

The description opens with a specific verb and resource: 'Report which FindAgent account this AI client is acting as' plus GitHub connection status. This is immediately distinguishable from all 49 sibling tools, none of which provide identity/connection introspection. No ambiguity about what the tool does.

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?

The description explicitly tells the agent when to invoke it: 'Use this if a draft you created here is missing when you open it in a browser, or GitHub shows as not connected.' It also explains the underlying reason, that MCP work is scoped to the authorized account, which helps the agent decide in related scenarios.

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

findagent_withdraw_requestAInspect

Withdraw (retract) YOUR OWN agent request from the PUBLIC FindAgent demand board AS the connected account — the request drops off the public board and can no longer be upvoted (it is NOT hard-deleted). You can only withdraw a request you posted (get the id from findagent_list_requests with mine:true). Idempotent: withdrawing an already-withdrawn own request succeeds. Free — no payment.

NameRequiredDescriptionDefault
request_idYesThe id of YOUR request to withdraw (from findagent_list_requests with mine:true).

Output Schema

NameRequiredDescription
next_toolNo
withdrawnNo
request_idNo
instructionsNo
already_withdrawnNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations provide readOnlyHint=false, but the description adds substantial behavioral detail beyond that: the request drops off the public board, can no longer be upvoted, is NOT hard-deleted, is idempotent (withdrawing an already-withdrawn request succeeds), and is free. This gives the agent a clear mental model of side effects, which is especially valuable for a mutation.

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?

The description is concise but packed with value. The first sentence states the action and key effects, then it adds ownership and idempotency details in subsequent sentences without fluff. It is well-structured and front-loaded with the most important information.

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?

The description is fully self-contained for a mutation with one parameter. It covers the ownership rule, idempotency, the soft-delete behavior, and cost. There is an output schema present, so return details are not required in the description. No critical information 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%, with request_id described fully. The description adds meaning by specifying that the id must come from findagent_list_requests with mine:true, and that it must be your own request. This goes beyond the schema's simple 'id of YOUR request' phrasing, providing a retrieval source and constraint.

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?

The description states a specific verb ('withdraw/retract'), a specific resource ('YOUR OWN agent request from the PUBLIC FindAgent demand board'), and the scope ('AS the connected account'). It clearly distinguishes itself from siblings like findagent_create_request, findagent_vote_request, and findagent_list_requests by emphasizing the 'withdraw' action and the ownership constraint.

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 provides clear context on when to use (retracting your own request) and a prerequisite (get the id from findagent_list_requests with mine:true). It does not explicitly mention alternatives, but there are no direct sibling competitors for this action. The guidance to only withdraw requests you posted is a useful exclusion.

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

findagent_withdraw_versionA
Idempotent
Inspect

Withdraw YOUR OWN still-pending version of an agent (so you can submit a fresh one when a prior bump is stuck in review). Pass the agent slug. NEVER touches the live published version — only a version awaiting review is withdrawn. Owner-only.

NameRequiredDescriptionDefault
slugYesYour agent slug (you must own it).

Output Schema

NameRequiredDescription
slugNo
withdrawnNo
version_idNo
instructionsNo

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations, the description adds precise behavioral context: it touches only the pending version and NEVER the live published version, and it requires ownership. This clarifies exactly what is withdrawn and what is preserved, complementing the destructiveHint=false annotation.

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?

The description is two sentences with no filler: the main action is front-loaded, the motivating scenario is parenthetical, and the critical safety limitation is stated explicitly. Every clause earns its place.

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 single-parameter tool with a full input schema, an output schema, and relevant annotations, the description covers the action, preconditions, ownership, and side-effect boundary. Nothing an agent needs to know in order 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.

Parameters3/5

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

Schema description coverage is 100%, and the description only restates that the agent slug should be passed. The ownership requirement is already in the schema description, so the tool description adds no meaningful parameter-level 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?

The description opens with a specific verb and resource: withdraw your own still-pending version of an agent. It explicitly distinguishes this from the live published version and from related approval workflows, so an agent can tell it apart from siblings like bump_version or rollback_version.

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 clear trigger scenario: use it when a prior bump is stuck in review and you want to submit a fresh version. It also states the owner-only constraint and that only pending versions are affected, though it does not explicitly name sibling alternatives for resubmission or live-version management.

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
    • Changedfindagent_submission_status1 field changed
      • addedOutput schema / properties / status_label
        Added value: +{
        +  "description": "The status in the words the dashboard badge and the review e-mails use (for example In review, Needs changes).",
        +  "type": "string"
        +}
  2. 3 tool updates
    • Changedfindagent_create_package_draft4 fields changed
      • addedOutput schema / properties / left_out / items
        Added value: +{
        +  "properties": {
        +    "path": {
        +      "type": "string"
        +    },
        +    "reason": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedOutput schema / properties / left_out / type
        Previous value: -"object"New value: +"array"
      • addedOutput schema / properties / left_out_detail
        Added value: +{
        +  "description": "The summary this field held before left_out became an array: binary file names and their total, the entries the reader set aside and their total.",
        +  "type": "object"
        +}
      • addedOutput schema / properties / left_out_total
        Added value: +{
        +  "type": "integer"
        +}
    • Changedfindagent_import_openapi1 field changed
      • addedOutput schema / properties / category_slug
        Added value: +{
        +  "type": "string"
        +}
    • Changedfindagent_import_repo3 fields changed
      • addedInput schema / properties / path
        Added value: +{
        +  "description": "Optional folder of the repository that IS the package, for a repository that holds several (for example \"plugins/pdf\"). Only that folder is read. Defaults to the repository root.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / left_out
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "path": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / path
        Added value: +{
        +  "type": "string"
        +}
  3. 1 tool update
    • Changedfindagent_list_my_agents2 fields changed
      • addedOutput schema / properties / total_agents
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "type": "boolean"
        +}
  4. 3 tool updates
    • Addedfindagent_create_local_mcp
    • Changedfindagent_create_package_draft5 fields changed
      • changedInput schema / properties / attestation / description
        Previous value: -"Required: \"own-work\" — you confirm these files are your own work (or yours to publish)."New value: +"Required with `files`: \"own-work\" — you confirm these files are your own work (or yours to publish). Not needed with `repo`."
      • addedInput schema / properties / path
        Added value: +{
        +  "description": "With `repo`: the folder of the repository that IS the package, for a repository that holds several (for example \"plugins/pdf\"). Only that folder is read. Defaults to the repository root.",
        +  "type": "string"
        +}
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "With `repo`: a branch, tag or commit SHA. Defaults to the default branch.",
        +  "type": "string"
        +}
      • addedInput schema / properties / repo
        Added value: +{
        +  "description": "Instead of `files`: a GitHub repository you own (owner/repo or a github.com URL) that holds the package. Its push access is verified before anything is read.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "files",
        -  "attestation",
        -  "title",
        -  "slug",
        -  "tagline",
        -  "description"
        -]New value: +[
        +  "title",
        +  "slug",
        +  "tagline",
        +  "description"
        +]
    • Addedfindagent_import_openapi
  5. 32 tool updates
    • Removedfindagent_accept_org_invite
    • Removedfindagent_add_kb_document
    • Removedfindagent_add_kb_url_document
    • Removedfindagent_archive_department
    • Removedfindagent_attach_kb
    • Removedfindagent_bind_kb_embedding_key
    • Removedfindagent_change_member_role
    • Removedfindagent_create_department
    • Removedfindagent_create_knowledge_base
    • Removedfindagent_create_org
    • Removedfindagent_delete_kb
    • Removedfindagent_delete_kb_document
    • Removedfindagent_detach_kb
    • Removedfindagent_edit_department
    • Removedfindagent_get_department
    • Removedfindagent_get_org
    • Removedfindagent_invite_member
    • Removedfindagent_leave_org
    • Removedfindagent_list_departments
    • Removedfindagent_list_invites
    • Removedfindagent_list_kb_attachments
    • Removedfindagent_list_kb_documents
    • Removedfindagent_list_kbs
    • Removedfindagent_list_members
    • Removedfindagent_list_orgs
    • Removedfindagent_remove_member
    • Removedfindagent_resend_invite
    • Removedfindagent_revoke_invite
    • Removedfindagent_skill_search
    • Removedfindagent_transfer_org_ownership
    • Removedfindagent_update_kb_document
    • Removedfindagent_update_knowledge_base
  6. 5 tool updates
    • Addedfindagent_add_kb_url_document
    • Changedfindagent_list_requests1 field changed
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "Optional text search over request titles and details (case-insensitive, up to 80 characters). Applies to the public board; ignored when mine:true.",
        +  "type": "string"
        +}
    • Addedfindagent_update_kb_document
    • Addedfindagent_update_knowledge_base
    • Addedfindagent_update_request
  7. 1 tool update
    • Changedfindagent_edit_metadata2 fields changed
      • addedInput schema / properties / languages
        Added value: +{
        +  "description": "Replace the Language/Framework facets (slugs from findagent_list_tech_facets). Software-development agents only.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / tech_domains
        Added value: +{
        +  "description": "Replace the Tech Domain facets (slugs from findagent_list_tech_facets). Software-development agents only; ignored for any other discipline.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  8. 1 tool update
    • Changedfindagent_create_remote_mcp2 fields changed
      • changedInput schema / properties / additional_category_slugs / description
        Previous value: -"Optional (≤12). Subcategory under every top-level you select."New value: +"Ignored (a listing is not categorised)."
      • changedInput schema / properties / category_slug / description
        Previous value: -"The PRIMARY category: a TOP-LEVEL slug from findagent_list_categories (≥1 discipline; put subcategories in additional_category_slugs)."New value: +"Ignored. A listing is not categorised; the platform files its own placeholder."
  9. 1 tool update
    • Changedfindagent_edit_metadata1 field changed
      • addedInput schema / properties / thumbnail_url
        Added value: +{
        +  "description": "The listing logo: a URL of an image already uploaded to this platform (anything else is refused). Pass an empty string to remove it, so the card draws a generated mark.",
        +  "type": "string"
        +}
  10. 4 tool updates
    • Addedfindagent_archive_department
    • Addedfindagent_create_department
    • Addedfindagent_get_department
    • Addedfindagent_list_departments
  11. 3 tool updates
    • Changedfindagent_create_code_draft2 fields changed
      • changedInput schema / properties / skills / description
        Previous value: -"Optional discovery metadata (the tools the agent exposes). Each: { id?, name, description? }. Never executed."New value: +"Optional discovery metadata (the tools the agent exposes). Each: { id?, name, description?, input_schema? }. `input_schema` is the tool's JSON-Schema argument shape (type: object; bounded, no remote $ref) so a client can render real fields. A repo's own findagent.json `skills[]` fills any you omit. Never executed."
      • addedInput schema / properties / skills / items / properties / input_schema
        Added value: +{
        +  "type": "object"
        +}
    • Changedfindagent_new_version1 field changed
      • changedInput schema / properties / repo / description
        Previous value: -"Action agents (kind mcp-tool) only: re-version FROM this GitHub repo (owner/name, one you can write to) — its findagent.json supplies the whole tool surface server side, so no tool array passes through a model. Omit it to pass the fields instead."New value: +"Action agents (kind mcp-tool) only: re-version FROM this GitHub repo (owner/name, one you can write to) — its findagent.json (or a manifest.json declaring schema_version 1.1) supplies the whole tool surface server side, so no tool array passes through a model. Omit it to pass the fields instead."
    • Changedfindagent_repull1 field changed
      • changedInput schema / properties / repo / description
        Previous value: -"Action agents (kind mcp-tool) only: the GitHub repo to read, owner/name or a github.com URL, one you can write to. Its findagent.json supplies the tool surface. Ignored for code and skills agents, which re-pull the repo they were imported from."New value: +"Action agents (kind mcp-tool) only: the GitHub repo to read, owner/name or a github.com URL, one you can write to. Its findagent.json (or a manifest.json declaring schema_version 1.1) supplies the tool surface. Ignored for code and skills agents, which re-pull the repo they were imported from."
  12. 2 tool updates
    • Changedfindagent_new_version2 fields changed
      • changedInput schema / properties / ref / description
        Previous value: -"Agents built from a code or skills repo only: a branch, tag or commit sha to re-pull. Ignored otherwise."New value: +"Agents built from a repo only: a branch, tag or commit sha to re-pull. Ignored otherwise."
      • addedInput schema / properties / repo
        Added value: +{
        +  "description": "Action agents (kind mcp-tool) only: re-version FROM this GitHub repo (owner/name, one you can write to) — its findagent.json supplies the whole tool surface server side, so no tool array passes through a model. Omit it to pass the fields instead.",
        +  "type": "string"
        +}
    • Changedfindagent_repull2 fields changed
      • addedInput schema / properties / repo
        Added value: +{
        +  "description": "Action agents (kind mcp-tool) only: the GitHub repo to read, owner/name or a github.com URL, one you can write to. Its findagent.json supplies the tool surface. Ignored for code and skills agents, which re-pull the repo they were imported from.",
        +  "type": "string"
        +}
      • changedInput schema / properties / slug / description
        Previous value: -"Your published agent slug, built from a code or skills repo (you must own it)."New value: +"Your published agent slug, built from a repo (you must own it): a code or skills agent, or an action agent when you also pass repo."
  13. 1 tool update
    • Addedfindagent_export_project_recipe
  14. 1 tool update
    • Changedfindagent_import_repo1 field changed
      • changedOutput schema / properties / grounding / properties / code_bundle / properties / confidence / type
        Previous value: -[
        -  "number",
        -  "string",
        -  "null"
        -]New value: +[
        +  "object",
        +  "number",
        +  "string",
        +  "null"
        +]
  15. 1 tool update
    • Changedfindagent_create_code_draft1 field changed
      • changedInput schema / properties / runtime / description
        Previous value: -"From grounding.code_bundle.runtime: { kind: 'node'|'python', version? }. Defaults to node."New value: +"From grounding.code_bundle.runtime: { kind, version? } where kind is node or python (versions node22, node24, python3.13). Defaults to node."
  16. 2 tool updates
    • Addedfindagent_create_package_draft
    • Addedfindagent_reupload
  17. 3 tool updates
    • Addedfindagent_claim_listing
    • Addedfindagent_load_listing_tools
    • Addedfindagent_verify_listing_claim
  18. 5 tool updates
    • Changedfindagent_bump_version2 fields changed
      • changedInput schema / properties / system_prompt / description
        Previous value: -"The updated agent instructions. For a doer whose prompt isn't the authoring surface (mcp-tool / skills-bundle) you may omit it to keep the stored one; otherwise min 50 chars."New value: +"The updated agent instructions. For an agent whose prompt isn't the authoring surface (kind 'mcp-tool' / 'skills-bundle') you may omit it to keep the stored one; otherwise min 50 chars."
      • changedInput schema / properties / tools / description
        Previous value: -"Optional FULL doer tool set for the new version (web-builder parity). Presence REPLACES the agent's whole tool surface — pass the complete intended list (add/remove/edit); item shape is in `items`. auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced). Omit to keep the stored tools (prompt-only edit)."New value: +"Optional FULL action and skill tool set for the new version (web-builder parity). Presence REPLACES the agent's whole tool surface — pass the complete intended list (add/remove/edit); item shape is in `items`. auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced). Omit to keep the stored tools (prompt-only edit)."
    • Changedfindagent_create_draft3 fields changed
      • changedInput schema / properties / guardrails / description
        Previous value: -"Optional declared guardrails (doer agents). { input?: { max_length?, deny_patterns?:string[], pii_redaction?:string[] }, output?: { schema? }, actions?: { [toolName]: { approval?:\"none\"|\"human\"|\"human_strict\", max_amount?, rate_limit?:\"10/hour\", idempotent?, requires?:string[] } } }. `human` confirms where the client can prompt and proceeds where it cannot; `human_strict` BLOCKS where it cannot — use it for anything irreversible. You can only TIGHTEN — the platform always applies its mandatory rails. An invalid block fails the draft."New value: +"Optional declared guardrails (agents with actions). { input?: { max_length?, deny_patterns?:string[], pii_redaction?:string[] }, output?: { schema? }, actions?: { [toolName]: { approval?:\"none\"|\"human\"|\"human_strict\", max_amount?, rate_limit?:\"10/hour\", idempotent?, requires?:string[] } } }. `human` confirms where the client can prompt and proceeds where it cannot; `human_strict` BLOCKS where it cannot — use it for anything irreversible. You can only TIGHTEN — the platform always applies its mandatory rails. An invalid block fails the draft."
      • changedInput schema / properties / kind / description
        Previous value: -"Optional — usually INFERRED from whether you pass `tools` (tools present → 'mcp-tool' doer, else 'static-recipe' recipe). Declared so a manifest-shaped payload is accepted, not rejected."New value: +"Optional — usually INFERRED from whether you pass `tools` (tools present → 'mcp-tool', an agent with actions or skills; else 'static-recipe', instructions only). Declared so a manifest-shaped payload is accepted, not rejected."
      • changedInput schema / properties / tools / description
        Previous value: -"Optional doer tools (full web-builder parity). Omit for a recipe agent. Each item's shape is defined in `items` — name/description/tool_type/action are the load-bearing fields; auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced)."New value: +"Optional actions and skills (full web-builder parity). Omit for an instructions-only agent. Each item's shape is defined in `items` — name/description/tool_type/action are the load-bearing fields; auth_ref must match a credential_slots[].ref whose allowed_hosts cover the action host (audience binding — enforced)."
    • Changedfindagent_new_version1 field changed
      • changedInput schema / properties / ref / description
        Previous value: -"code-bundle / skills-bundle only: a branch, tag or commit sha to re-pull. Ignored for other kinds."New value: +"Agents built from a code or skills repo only: a branch, tag or commit sha to re-pull. Ignored otherwise."
    • Changedfindagent_preflight1 field changed
      • changedInput schema / properties / smoke / description
        Previous value: -"Optional. Set true to also run ONE tool once in the sandbox on your OWN code agent (after the build passes) to confirm it responds. Advisory only — the result is in `smoke` and never blocks submit."New value: +"Optional. Set true to also run ONE tool once in the sandbox on your OWN agent’s code (after the build passes) to confirm it responds. Advisory only — the result is in `smoke` and never blocks submit."
    • Changedfindagent_repull1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Your published code-bundle or skills-bundle agent slug (you must own it)."New value: +"Your published agent slug, built from a code or skills repo (you must own it)."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources