Skip to main content
Glama

Agent Toolbelt

Stock research tools for AI agents. Live financial data + Claude-synthesized analysis, served as 7 focused tools — not raw OHLCV. Plus 20 utility tools for the rest of an agent's work.

Production API: https://www.agenttoolbelt.live


Quickstart

# Get a free API key (1,000 calls/month, no credit card)
curl -X POST 'https://www.agenttoolbelt.live/api/clients/register' \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

# Generate a Motley Fool-style investment thesis for any ticker
curl -X POST https://www.agenttoolbelt.live/api/tools/stock-thesis \
  -H "Authorization: Bearer atb_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ticker": "NVDA", "timeHorizon": "3-5 years"}'

Returns: bullish/neutral/bearish verdict, thesis paragraphs, key strengths, key risks, valuation read, insider read, analyst consensus read, and what to watch in the next earnings report.


Related MCP server: agent-utils-mcp

Stock research tools (7)

LLM-synthesized analysis on top of live financial data from Polygon.io, Finnhub, and Financial Modeling Prep.

Tool

What it does

Price

stock-thesis

Full Motley Fool-style investment thesis: verdict + thesis paragraphs + strengths + risks + valuation read

$0.05/call

earnings-analysis

EPS beat/miss history, revenue trend, long-term earnings consistency read, upcoming earnings date

$0.05/call

insider-signal

Form 4 interpretation — distinguishes meaningful open-market purchases from routine sales/awards. Signal strength + confidence

$0.05/call

valuation-snapshot

P/E, P/S, EV/EBITDA, FCF yield, ROE, margins → cheap/fair/expensive verdict + specific buy zone

$0.05/call

bear-vs-bull

Steelmanned 3-bull / 3-bear case with specific data, net verdict, key debate question

$0.05/call

compare-stocks

Head-to-head comparison of 2-3 tickers. Winner + per-ticker strengths/concerns + ifYouValue map (growth / value / quality)

$0.05/call

moat-analysis

Buffett-style competitive moat assessment (brand / switching costs / network / scale / IP / cost). Wide/narrow/none + durability

$0.05/call

Every stock tool returns a dataSources block with fetchedAt + per-source success flags so you know exactly what data backed the analysis.


Utility tools (20)

Common agent infrastructure. Rule-based tools billed at $0.0001–$0.001/call; LLM-powered tools at $0.005–$0.10/call.

Tool

What it does

Price

text-extractor

Extract emails, URLs, phones, dates, currencies, addresses, names from text

$0.0005/call

token-counter

Count tokens across 15 LLM models with cost estimates

$0.0001/call

schema-generator

JSON Schema / TypeScript / Zod validator from plain English

$0.001/call

csv-to-json

CSV to typed JSON with auto delimiter and type casting

$0.0005/call

markdown-converter

HTML ↔ Markdown conversion

$0.0005/call

url-metadata

Title, OG tags, favicon, author from any URL

$0.001/call

web-summarizer

Fetch + summarize a URL with key points

$0.02/call

regex-builder

Natural language → regex with JS/Python/TS snippets

$0.0005/call

cron-builder

Schedule description → cron expression with next-run preview

$0.0005/call

address-normalizer

US address → USPS format with component parsing

$0.0005/call

color-palette

Color palettes with WCAG scores and CSS vars

$0.0005/call

brand-kit

Full brand kit — colors, typography, CSS/Tailwind tokens

$0.001/call

image-metadata-stripper

Strip EXIF/GPS/IPTC/XMP metadata for privacy

$0.001/call

meeting-action-items

Action items, decisions, summary from meeting notes

$0.05/call

prompt-optimizer

Score and rewrite LLM prompts

$0.05/call

document-comparator

Semantic diff between two document versions

$0.05/call

contract-clause-extractor

Key clauses + risk flags from contracts

$0.10/call

api-response-mocker

Realistic mock data from a JSON Schema

$0.0005/call

dependency-auditor

CVE scan for npm/PyPI packages via OSV database

$0.005/call

context-window-packer

Pack content into a token budget for LLM context

$0.001/call


Do you know what your agent is actually calling?

You wired up the tools. Once the agent is running, though, you have no visibility into which ones it calls or what it passes to them. I also built Cordon for this. It sits in front of any MCP server and logs every call. You can write rules to block the ones you don't want touching production.

getcordon.com — npx @getcordon/cli init


npm SDK + LangChain

npm install agent-toolbelt

Typed client

import { AgentToolbelt } from "agent-toolbelt";

const client = new AgentToolbelt({ apiKey: process.env.AGENT_TOOLBELT_KEY! });

// Stock research
const thesis = await client.stockThesis({ ticker: "NVDA", timeHorizon: "3-5 years" });
const moat = await client.moatAnalysis({ ticker: "AAPL" });
const compare = await client.compareStocks({ tickers: ["NVDA", "AMD"] });

// Utility
const tokens = await client.tokenCounter({ text: myDocument });
const contacts = await client.textExtractor({
  text: emailBody,
  extractors: ["emails", "phone_numbers", "addresses"],
});

LangChain integration

import { AgentToolbelt } from "agent-toolbelt";
import { createLangChainTools } from "agent-toolbelt/langchain";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { ChatOpenAI } from "@langchain/openai";

const client = new AgentToolbelt({ apiKey: process.env.AGENT_TOOLBELT_KEY! });
const tools = createLangChainTools(client); // 27 ready-to-use DynamicStructuredTools

const agent = createReactAgent({
  llm: new ChatOpenAI({ model: "gpt-4o" }),
  tools,
});

Claude MCP

Use the stock research tools (and the rest of the toolbelt) directly inside Claude Desktop or Claude Code via the agent-toolbelt-mcp package.

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "agent-toolbelt": {
      "command": "npx",
      "args": ["-y", "agent-toolbelt-mcp"],
      "env": {
        "AGENT_TOOLBELT_KEY": "atb_your_key_here"
      }
    }
  }
}

Claude Code — one command:

claude mcp add agent-toolbelt -e AGENT_TOOLBELT_KEY=atb_your_key_here -- npx -y agent-toolbelt-mcp

Once installed, ask Claude things like "Give me a full analysis of NVDA — thesis, earnings quality, insider activity, and whether it's cheap right now" and it'll call the tools in parallel.


Discover tools programmatically

Agents can auto-discover all 27 tools at runtime:

curl https://www.agenttoolbelt.live/api/tools/catalog

Pricing

Tier

Price

Monthly calls

Rate limit

Free

$0/mo

1,000

10/min

PAYG

prepaid credits

unlimited

60/min

Starter

$29/mo

50,000

60/min

Pro

$99/mo

500,000

300/min

Enterprise

Custom

5,000,000

1,000/min


Integrations

  • npm SDK — npm install agent-toolbelt — typed client + LangChain tools

  • MCP — npx -y agent-toolbelt-mcp — works with Claude Desktop and Claude Code

  • OpenAI GPT Actions — OpenAPI spec at /openapi/openapi-gpt-actions.json

  • RapidAPI — listed on the RapidAPI marketplace

  • Smithery, Glama, PulseMCP, MCP registry — discoverable in MCP directories


Going to production

When the agent moves out of dev, a new set of questions shows up. What did it call last night? What arguments did it pass? Who approved the destructive one?

Cordon is an MCP gateway that sits in front of servers like this one. Point your client at Cordon instead of directly at Agent Toolbelt; Cordon forwards every call through and adds:

  • A real-time audit log of every tool invocation (name, arguments, response, latency)

  • Per-API-key policy: which tools each caller can use, under what conditions

  • Slack-based human approvals for tool calls you've flagged as high-risk

From the agent's perspective nothing changes — same tools, same schemas. Free tier covers 1,000 events/month.


License

MIT

Available Tools

25 tools
audit_dependenciesDependency AuditorA

Audit npm and PyPI packages for known CVEs using the OSV database (GitHub Dependabot's source). Pass packages directly or paste package.json / requirements.txt content.

ParametersJSON Schema
NameRequiredDescriptionDefault
packagesNoPackages to audit
manifestNoRaw package.json or requirements.txt
manifestTypeNoauto
includeDevDependenciesNo
minSeverityNoLOW

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It successfully identifies the authoritative data source ('OSV database'), but omits critical behavioral context: whether the operation is read-only, what the return format contains (list of CVEs? severity scores?), or any rate limiting considerations.

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 consists of two efficient sentences with zero redundancy. The first establishes purpose and data provenance; the second addresses input flexibility. Every word earns its place with no filler content.

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

Completeness3/5

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

Given the absence of an output schema and annotations, combined with 40% schema coverage, the description adequately covers the core auditing capability but leaves significant gaps regarding output structure, parameter interdependencies, and the meaning of specific severity levels.

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 low at 40%, requiring the description to compensate. It maps the two primary input modes (packages array vs. manifest string) and implicitly references manifestType by listing file extensions, but provides no semantic guidance for includeDevDependencies or minSeverity, leaving half the parameter surface undocumented.

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 provides a specific verb ('Audit'), clear resource scope ('npm and PyPI packages'), and distinct output ('known CVEs'). It effectively distinguishes itself from unrelated siblings like stock_thesis or extract_contract_clauses by specifying the security/domain focus.

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

Usage Guidelines3/5

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

The description identifies two input methods ('Pass packages directly or paste...'), which hints at the packages vs. manifest parameters. However, it fails to clarify whether these inputs are mutually exclusive or additive, and provides no guidance on when to use the filtering options (minSeverity, includeDevDependencies).

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

bear_vs_bullBear vs BullA

Generate a structured bull vs. bear case for any stock. Steelmans both sides with specific data, then delivers a net verdict and the key question investors need to answer before buying.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, AAPL, MSFT)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses the methodology ('Steelmans both sides with specific data') and output format ('net verdict', 'key question'), but lacks operational details like data freshness, sources, or real-time vs. historical limitations.

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 a single, efficiently structured sentence that front-loads the core action ('Generate a structured bull vs. bear case') and follows with methodology and output details. Zero redundancy—every clause earns its place.

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

Completeness4/5

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

For a single-parameter tool without annotations or output schema, the description adequately compensates by explaining the return structure ('structured case', 'net verdict', 'key question'). It could be improved with data source transparency, but sufficiently covers the tool's behavior and output format.

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 has 100% description coverage for the single 'ticker' parameter. The description mentions 'for any stock' which maps to the parameter, but adds no additional semantic detail beyond the schema's own definition. Baseline 3 is appropriate given schema completeness.

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 specific verbs ('Generate', 'Steelmans', 'delivers') and clearly identifies the resource (bull vs. bear case for stocks). It effectively distinguishes from siblings like 'stock_thesis' and 'earnings_analysis' by emphasizing the balanced, dialectical approach and final verdict structure.

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

Usage Guidelines3/5

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

The description implies usage context ('key question investors need to answer before buying') suggesting it's for pre-investment analysis, but lacks explicit when-to-use guidance compared to siblings like 'stock_thesis' or 'valuation_snapshot'. No explicit exclusions or alternatives are named.

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

build_cronCron Expression BuilderA

Convert natural language schedule descriptions into cron expressions. Examples: 'every weekday at 9am', 'first Monday of each month at noon', 'every 5 minutes'. Returns the expression, human-readable confirmation, and next 5 run times.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesNatural language schedule description
timezoneNoTimezone for contextUTC

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, description carries full burden and successfully discloses return structure (expression, confirmation, next 5 run times) compensating for missing output schema. Omits error handling or rate limits, but 'convert' implies safe, idempotent operation appropriate for this tool class.

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

Conciseness5/5

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

Two efficiently structured sentences: first states core function with illustrative examples, second discloses return format. Front-loaded, no redundant words, 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 simple 2-parameter conversion tool without output schema, description adequately covers input expectations via examples and output structure via explicit return value listing. No gaps requiring additional clarification given the low 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%, establishing baseline 3. Description adds significant value by providing concrete input examples ('every 5 minutes') that clarify expected natural language patterns beyond the schema's generic 'Natural language schedule description' label.

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?

Clear specific verb 'Convert' identifies the transformation (natural language → cron expressions). Distinct from sibling 'build_regex' by resource type (schedules vs patterns) and clearly scoped to cron generation.

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?

Provides clear context through three concrete input examples ('every weekday at 9am', etc.), implicitly indicating when to use the tool. Lacks explicit 'when-not' or alternative naming, though no direct cron-building sibling exists requiring differentiation.

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

build_regexRegex Builder & TesterA

Build and test regular expressions from natural language descriptions. Supports emails, URLs, phones, dates, IPs, colors, UUIDs, and 15+ more patterns. Returns the pattern, code snippets in JS/Python/TS, and optional test results.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesWhat to match (e.g., 'email addresses', 'hex color codes', 'semantic versions')
testStringsNoOptional strings to test the regex against
flagsNoRegex flags (default: 'g')g

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, description carries full burden and successfully discloses return values (pattern, JS/Python/TS snippets, test results). However, omits error handling behavior, determinism, or side effects. No contradictions with annotations.

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

Conciseness5/5

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

Three well-structured sentences with zero waste. Front-loaded with core purpose, followed by capability enumeration (15+ patterns), and output specification. Every sentence earns its place with no redundancy.

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

Completeness4/5

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

No output schema exists, but description compensates by detailing return structure (pattern + code snippets + test results). With 100% schema coverage and 3 parameters, the description provides sufficient context for invocation despite lacking annotations.

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 has 100% coverage (baseline 3). Description adds crucial context that 'description' parameter accepts natural language (not regex syntax) and connects 'testStrings' to the return value of 'test results', which aids agent reasoning about parameter selection.

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?

Description uses specific verbs (build/test) with clear resource (regex) and explicitly distinguishes from sibling 'build_cron' by emphasizing 'natural language descriptions' and listing regex-specific patterns (emails, URLs, UUIDs) rather than cron schedules.

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

Usage Guidelines3/5

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

Implies usage context ('from natural language descriptions') but lacks explicit when-to-use guidance, prerequisites, or named alternatives. Does not indicate when to use testStrings vs omitting it, or how this compares to manual regex writing.

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

compare_documentsDocument ComparatorA

Compare two versions of a document and produce a semantic diff with additions, deletions, and modifications. Works with contracts, READMEs, policies, essays, or any text. Powered by Claude.

ParametersJSON Schema
NameRequiredDescriptionDefault
originalYesThe original version of the document
revisedYesThe revised version of the document
modeNoOutput formatstructured
contextNoDocument type for more relevant analysis

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains the output format (semantic diff) and implies read-only behavior through the verb 'compare,' but fails to confirm idempotency, side effects, rate limits, or whether the comparison is performed locally or via external API (despite 'Powered by Claude' hinting at the latter).

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 three-sentence structure is well-organized: functionality first, applicable domains second, implementation detail third. 'Powered by Claude' earns its place by signaling AI-powered semantic analysis rather than simple text diffing. Only minor efficiency could be gained by merging the document types into the first sentence.

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

Completeness3/5

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

Given the absence of annotations and output schema, the description adequately explains the return concept (semantic diff with specific change types) for this 4-parameter tool. However, it omits error handling behaviors, size limitations, or specific return structure details that would be necessary for a complete operational picture.

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 the baseline is 3. The description adds semantic value by mapping 'two versions' to original/revised parameters and listing document types (contracts, READMEs) that contextualize the 'context' parameter. It does not add format details or syntax beyond what the schema already provides.

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 specific action (compare), resource (document versions), and output type (semantic diff with additions, deletions, modifications). It effectively distinguishes from siblings like extract_contract_clauses or convert_markdown by emphasizing differential analysis rather than extraction or format conversion.

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

Usage Guidelines3/5

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

The description provides implied usage guidance by listing applicable document types (contracts, READMEs, policies, essays), helping the agent understand appropriate contexts. However, it lacks explicit when-to-use/when-not-to-use rules or named alternatives for scenarios requiring different comparison approaches.

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

convert_markdownMarkdown ConverterA

Convert HTML to clean Markdown, or Markdown to HTML. Use HTML→Markdown when you've fetched a web page and need readable text for an LLM — strips tags, preserves headings, lists, code blocks, links, and tables. Use Markdown→HTML when rendering content in a web context.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content to convert
fromYesInput format
toYesOutput format

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and successfully discloses key behavioral traits: it 'strips tags' and specifically 'preserves headings, lists, code blocks, links, and tables.' It also notes the output is 'clean Markdown.' Minor gap: no mention of error handling for malformed input or Markdown flavor specifics.

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 sentences with zero waste: first establishes capability, second details HTML→Markdown use case with preservation specifics, third covers Markdown→HTML. Front-loaded with the core function and maintains tight focus throughout.

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 simple conversion utility with 100% schema coverage and no nested complexity, the description is complete. It explains the conversion behavior, directional use cases, and preservation characteristics. No output schema exists, but the return value is implied by the 'to' parameter 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% with clear descriptions for all three parameters (content, from, to) and explicit enums. The description adds directional context (HTML→Markdown vs Markdown→HTML) that contextualizes the enum values, but does not need to explain parameter mechanics since the schema is fully self-documenting.

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 specific verbs ('Convert') and clear resources ('HTML', 'Markdown'), immediately establishing the bidirectional capability. It effectively distinguishes from siblings like extract_from_text or fetch_url_metadata by focusing purely on format conversion rather than extraction or analysis.

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?

Provides explicit directional guidance: 'Use HTML→Markdown when you've fetched a web page and need readable text for an LLM' and 'Use Markdown→HTML when rendering content in a web context.' This clearly defines when to use each conversion direction based on the downstream use case.

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

count_tokensToken CounterA

Count tokens for any text across multiple LLM models and get per-model cost estimates. Use before sending text to an LLM to check context window usage or compare costs across models. Supports GPT-4o, GPT-4, GPT-3.5-turbo, Claude 3.5 Sonnet, Claude 3 Opus, and 10+ more.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to count tokens for
modelsNoModels to count tokens for

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full disclosure burden. It successfully indicates dual outputs (token counts and cost estimates) and lists supported model families. However, it omits critical behavioral traits like whether external API calls are made for pricing data, rate limits, or caching 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 constructed sentences with zero redundancy: sentence 1 declares core functionality, sentence 2 specifies usage timing, sentence 3 enumerates supported models. Information is front-loaded and every clause earns its place.

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

Completeness4/5

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

For a 2-parameter utility tool with no output schema, the description adequately compensates by explaining the return value nature ('cost estimates', 'context window usage'). The 100% schema coverage means parameter documentation needs are minimal, making this sufficiently complete despite lacking annotations.

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?

While the schema has 100% description coverage (baseline 3), the description adds significant value by enumerating supported model examples ('GPT-4o, GPT-4, GPT-3.5-turbo, Claude 3.5 Sonnet...') which compensates for the lack of enum constraints in the schema and guides valid string inputs for the models 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?

The description uses specific verbs ('Count', 'get') with clear resources ('tokens', 'cost estimates') and explicitly scopes the operation to 'any text across multiple LLM models'. It effectively distinguishes from siblings like pack_context_window or optimize_prompt by focusing purely on measurement and estimation rather than modification.

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?

Provides explicit temporal context for invocation ('Use before sending text to an LLM') and clear use cases ('check context window usage or compare costs'). Lacks explicit 'when not to use' guidance or named alternatives, though the specific function has no direct sibling equivalent.

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

csv_to_jsonCSV to JSONA

Convert CSV data to typed JSON. Auto-detects delimiters, uses the first row as headers, and casts values to proper types (numbers, booleans, nulls). Use when processing spreadsheet exports or any CSV-formatted data.

ParametersJSON Schema
NameRequiredDescriptionDefault
csvYesThe CSV content to convert
delimiterNoColumn delimiterauto
hasHeaderNoWhether the first row contains column names
typeCastNoAuto-convert values to proper types
limitNoMax rows to return

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It effectively discloses transformation behaviors: auto-detects delimiters, uses first row as headers, and type-casting to numbers/booleans/nulls. Missing only error-handling behavior for malformed CSV.

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

Conciseness5/5

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

Two efficiently structured sentences with zero waste. First sentence front-loads core functionality with key features; second provides usage context. No redundant or filler text.

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?

Given 5 parameters with 100% schema coverage and no output schema, the description adequately covers the transformation logic. Minor gap: lacks description of output JSON structure (array of objects vs other formats), which would help given no 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?

With 100% schema coverage, baseline is 3. The description adds value by explaining how defaults behave (auto-detection for delimiters, first row handling for headers, casting for types), connecting features to specific parameters beyond raw schema definitions.

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 explicitly states 'Convert CSV data to typed JSON' with specific verb (convert) and resources (CSV to JSON). The mention of 'typed JSON' and CSV-specific processing distinguishes it from sibling conversion tools like convert_markdown.

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 second sentence explicitly states 'Use when processing spreadsheet exports or any CSV-formatted data,' providing clear contextual guidance. However, it lacks explicit exclusions or named alternatives for non-CSV data formats.

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

earnings_analysisEarnings AnalysisB

Analyze a stock's earnings track record — EPS beat/miss history, revenue trend, and what it means for long-term investors. Returns verdict, beat rate, revenue trajectory, last quarter summary, and what to watch next.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, AAPL, MSFT)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It compensates well for the missing output schema by listing return values (verdict, beat rate, trajectory, summary), but fails to disclose operational traits like safety profile, idempotency, data freshness, or rate limits.

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 consists of two highly efficient sentences. The first front-loads the action and scope (earnings analysis), while the second discloses output format. No words are wasted.

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

Completeness4/5

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

For a simple single-parameter tool without output schema, the description adequately covers the tool's purpose and return structure. It could be improved by mentioning data sources or freshness, but it meets the minimum requirements for agent selection.

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?

The input schema has 100% description coverage for the single 'ticker' parameter. The description does not explicitly discuss the parameter, but since the schema fully documents it, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool analyzes a stock's earnings track record, specifying EPS beat/miss history and revenue trends. While it effectively distinguishes itself from general stock analysis tools like 'stock_thesis' or 'valuation_snapshot' through specific focus areas, it does not explicitly name siblings for differentiation.

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

Usage Guidelines2/5

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

The description mentions the analysis is for 'long-term investors,' implying a use case, but provides no explicit guidance on when to use this tool versus alternatives like 'stock_thesis' or 'valuation_snapshot,' nor does it state prerequisites or exclusions.

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

extract_contract_clausesContract Clause ExtractorB

Extract key clauses from a contract — parties, payment terms, termination, liability, IP ownership, confidentiality, and more. Optionally flags risky or one-sided clauses with severity ratings. Powered by Claude.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractYesThe contract or legal document text
clausesNoWhich clause types to extract
flagRisksNoFlag risky or unfavorable clauses

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It successfully adds context about the severity ratings system for risk flagging, which is not evident in the schema. However, it fails to disclose whether the tool is read-only (safe to call), what output format to expect (structured vs. text), or any rate limiting concerns.

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 efficiently structured with the primary action front-loaded, followed by enumerated examples and optional functionality. It avoids excessive verbosity. Minor deduction for 'Powered by Claude' which provides implementation trivia rather than selection-relevant information, and for 'and more' which is slightly vague (though mitigated by the schema enum).

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

Completeness3/5

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

Given the absence of an output schema and annotations, the description adequately covers input parameters but leaves a significant gap regarding the return value structure—critical for an extraction tool. It does not indicate whether results are returned as JSON, markdown, or plain text, nor does it describe the structure of the severity ratings mentioned.

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?

Despite 100% schema coverage (baseline 3), the description adds meaningful semantic value by listing representative clause types that map to the enum values in the 'clauses' parameter, and crucially elaborates that 'flagRisks' produces 'severity ratings'—a behavioral detail absent from the schema's generic 'Flag risky or unfavorable clauses' description.

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

Purpose4/5

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

The description clearly states the specific action (extract) and resource (contract clauses), enumerating concrete examples like parties, payment terms, and liability. However, it lacks explicit differentiation from the sibling tool 'extract_from_text', leaving implicit the distinction that this tool is specialized for legal contracts versus general text extraction.

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

Usage Guidelines2/5

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

While the domain (contracts) is specific enough to imply usage, the description provides no explicit guidance on when to use this tool versus alternatives like 'extract_from_text' or 'compare_documents'. There are no stated prerequisites, exclusions, or conditions that would help an agent decide between this and similar extraction capabilities.

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

extract_from_textText ExtractorA

Extract structured data from raw text: emails, URLs, phone numbers, dates, currencies, addresses, names, or JSON blocks. Useful for parsing documents, emails, web content, or any unstructured text into clean structured data.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe raw text to extract data from
extractorsYesWhich types of data to extract. Choose one or more: emails, urls, phone_numbers, dates, currencies, addresses, names, json_blocks
deduplicateNoRemove duplicate results within each type

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions deduplication indirectly via the parameter reference but does not disclose output format, idempotency, safety characteristics, or behavior when no matches are found—information crucial for an extraction utility with no output schema.

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

Conciseness5/5

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

Two sentences total with zero redundancy. The first sentence front-loads specific capabilities and supported entities; the second sentence provides usage context. Every word serves the selection decision.

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?

Given the straightforward 3-parameter input with complete schema coverage, the description adequately covers invocation requirements. However, lacking an output schema, it omits description of the return structure (array vs object, match formatting) which would complete the agent's understanding of the tool's contract.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description lists the eight extractor types (emails, URLs, etc.) but merely echoes the enum values already present in the schema without adding semantic context such as date formats, phone number normalization rules, or name detection heuristics.

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 ('Extract') and resource ('structured data from raw text'), then enumerates exact entity types supported. It implicitly distinguishes from siblings like 'extract_contract_clauses' and 'extract_meeting_action_items' by emphasizing general 'raw text' and 'unstructured text' rather than specific document domains.

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 second sentence provides clear contextual guidance ('Useful for parsing documents, emails, web content...') establishing when to invoke the tool. However, it does not explicitly reference sibling alternatives or state when NOT to use this versus the specialized extraction tools available.

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

extract_meeting_action_itemsMeeting Action ItemsA

Extract structured action items, decisions, and a summary from meeting notes or transcripts. Identifies task owners, deadlines, and priorities. Powered by Claude.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYesMeeting notes or transcript
formatNo'full' includes summary and decisions; 'action_items_only' returns just the task listfull
participantsNoKnown participant names to help with owner attribution

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the AI-powered nature ('Powered by Claude') and specific extraction capabilities, but omits safety traits like whether the operation is read-only, if data is retained, or rate limiting concerns.

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 consists of three efficient statements totaling under 25 words. Each sentence earns its place: core functionality, specific extraction capabilities, and implementation context. No redundancy or filler content.

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?

Given the lack of output schema, the description effectively compensates by detailing the expected return structure (action items, decisions, summary). With 100% input schema coverage and only three parameters, the description provides sufficient context for invocation, though it could benefit from explicit safety disclosures.

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 fully documents all three parameters (notes, format, participants). The description aligns with this information but adds minimal semantic value beyond what the schema explicitly states, meeting the baseline for high-coverage schemas.

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 (extract), input resource (meeting notes or transcripts), and specific outputs (action items, decisions, summary, task owners, deadlines, priorities). It effectively distinguishes itself from siblings like 'extract_from_text' (generic) and 'extract_contract_clauses' (legal) by specifying the meeting context.

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

Usage Guidelines3/5

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

The description implies usage context through specificity (meeting-focused), but lacks explicit guidance on when to use this versus 'extract_from_text' for general extraction tasks. No prerequisites or exclusions are mentioned.

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

fetch_url_metadataURL MetadataA

Fetch a URL and extract its metadata: title, description, Open Graph tags (og:image, og:type), Twitter card tags, favicon, canonical URL, author, and publish date. Use to enrich links with context or understand what a page is about without reading the full content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to fetch metadata from
timeoutNoRequest timeout in milliseconds (default 8000)

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It comprehensively lists extracted fields but omits error handling (timeout behavior, invalid URLs, redirects), side effects, or network requirements. Covers happy-path behavior adequately but lacks failure mode disclosure.

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

Conciseness5/5

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

Two sentences with zero waste. First sentence front-loads the action and specific extraction targets. Second sentence provides usage intent. No redundant phrases or repetition of structured data.

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 2-parameter tool without output schema, the description compensates effectively by enumerating all returned metadata fields (title, OG tags, etc.). Would benefit from mentioning error handling or edge cases (e.g., non-HTML content), but adequately complete for tool selection.

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 has 100% description coverage ('The URL to fetch metadata from', 'Request timeout in milliseconds'). The description lists extracted fields which contextualizes the URL parameter's purpose, but adds no syntax, format constraints, or examples beyond the schema. Baseline 3 appropriate given schema completeness.

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 specific verbs ('Fetch', 'extract') and enumerates exact metadata fields (title, description, Open Graph tags, Twitter cards, favicon, etc.). It clearly distinguishes from siblings like 'audit_dependencies' or 'stock_thesis' by focusing on web content metadata extraction.

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?

Provides clear usage context ('enrich links with context', 'understand what a page is about without reading the full content'), effectively indicating when to use it. Lacks explicit 'when not to use' or named alternatives, though siblings are sufficiently distinct that direct comparison is unnecessary.

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

generate_brand_kitBrand Kit GeneratorA

Generate a complete brand kit from a company name, industry, and aesthetic keywords. Returns a color palette with WCAG accessibility scores, curated typography pairings, and design tokens in JSON, CSS, or Tailwind format.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCompany or brand name
industryNoIndustry (e.g., 'fintech', 'healthcare', 'fashion')
vibeNoAesthetic keywords: 'modern', 'playful', 'luxurious', 'minimal', 'bold', etc.
formatNoOutput formatfull

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively compensates by specifying output quality (WCAG accessibility scores), available export formats (JSON, CSS, Tailwind), and the structured components returned (typography pairings, design tokens), giving the agent clear expectations of the generation behavior.

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

Conciseness5/5

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

Two well-structured sentences with zero waste: the first covers inputs and core function, the second covers outputs and formats. Information is front-loaded and 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?

Given the absence of an output schema, the description excellently compensates by detailing the return structure (color palette with accessibility scores, typography, design tokens) and available formats. For a 4-parameter tool with full schema coverage, this provides complete contextual information for successful invocation.

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?

The input schema has 100% description coverage with clear examples (e.g., 'fintech', 'modern'). The description mentions the parameters ('company name, industry, and aesthetic keywords') but does not add semantic meaning, constraints, or relationships beyond what the schema already provides, meeting the baseline for high-coverage schemas.

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 explicitly states the tool generates a 'complete brand kit' using specific inputs (company name, industry, aesthetic keywords). It clearly distinguishes itself from the sibling tool 'generate_color_palette' by emphasizing the comprehensive nature of the output (including typography and design tokens, not just colors).

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?

While it does not explicitly name sibling alternatives, it provides clear contextual differentiation by detailing the full scope of outputs (color palette + typography + design tokens). This enables an agent to infer this is the comprehensive choice versus more specialized tools, though explicit when/when-not guidance would strengthen it further.

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

generate_color_paletteColor Palette GeneratorA

Generate a color palette from a description, mood, industry, or hex seed color. Accepts moods (calm, energetic, luxurious), industries (fintech, healthcare, fashion), nature themes (sunset, ocean, forest), or a specific hex color. Returns hex/RGB/HSL values, WCAG accessibility scores, and CSS custom properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesDescription of the desired palette (e.g. 'calm fintech blue', 'sunset', '#3B82F6')
countNoNumber of colors (2-10)
formatNoColor format in outputall
includeShadesNoInclude light/dark shades for each color

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively compensates by detailing the output format (hex/RGB/HSL, WCAG accessibility scores, CSS custom properties), which is crucial given the absence of an output schema. It does not mention side effects or determinism.

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

Conciseness5/5

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

Two well-structured sentences with zero waste: the first covers all input modalities with examples, the second covers all output formats. Information is front-loaded and dense.

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?

Given the lack of output schema and annotations, the description adequately covers both input semantics and output structure (WCAG scores, CSS properties). For a 4-parameter generation tool, this provides sufficient context for invocation, though mentioning determinism or rate limits would improve it further.

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?

Despite 100% schema coverage (baseline 3), the description adds significant semantic value by providing concrete examples of description parameter inputs (moods like 'calm', industries like 'fintech', nature themes like 'sunset'), helping the agent construct valid prompts beyond the schema's generic 'Description of the desired palette'.

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

Purpose4/5

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

The description clearly states the tool generates color palettes and specifies input types (moods, industries, hex codes) with concrete examples. However, it does not explicitly distinguish itself from the sibling tool 'generate_brand_kit', which may also involve color generation.

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

Usage Guidelines3/5

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

The description provides rich examples of valid inputs (e.g., 'calm fintech blue', 'sunset', '#3B82F6') implying when to use the tool, but lacks explicit guidance on when NOT to use it or when to prefer alternatives like 'generate_brand_kit'.

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

generate_schemaSchema GeneratorA

Generate a JSON Schema, TypeScript interface, or Zod validation schema from a natural language description of a data structure. Examples: 'a user profile with name, email, and signup date', 'a product listing with title, price, and inventory count'.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesNatural language description of the data structure you want a schema for
formatNoOutput format: json_schema (standard JSON Schema), typescript (TS interface), or zod (Zod validation schema)json_schema
strictNoIf true, all fields are required. If false, optional fields are marked as optional

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It clarifies the three output format options, but omits safety information (determinism, error handling), return value structure (string vs object), or behavior with vague descriptions. Sufficient for basic operation but lacks operational 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?

Exactly two sentences with zero redundancy. First sentence establishes capability and variants; second provides illustrative examples. Information density is optimal with no filler text.

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?

With 100% input schema coverage and only 3 simple parameters, the description adequately covers inputs. Minor deduction for lack of output structure hint (critical since no output schema exists), though the three format options partially compensate by indicating return type variety.

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%, establishing baseline 3. The examples add significant semantic value for the 'description' parameter, demonstrating expected natural language patterns and complexity levels. This goes beyond the schema's technical definition.

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 ('Generate') and clearly identifies the three output formats (JSON Schema, TypeScript, Zod) and input method (natural language). It distinguishes from siblings like build_regex or build_cron by explicitly targeting data structure schemas rather than other code artifacts.

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

Usage Guidelines3/5

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

Provides concrete examples showing valid inputs ('a user profile with name, email...'), which implies usage context. However, lacks explicit 'when to use' guidance, prerequisites, or differentiation from potentially similar tools like build_regex. No mention of error cases or ambiguous input handling.

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

insider_signalInsider SignalA

Interpret insider trading activity for any stock. Classifies open-market purchases vs. routine sales/awards, identifies cluster buying, and explains whether the activity is a meaningful signal. Returns signal strength (strong_buy → strong_sell) and a plain-English verdict.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, AAPL, MSFT)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and succeeds by disclosing the classification logic (open-market vs routine), detection heuristics (cluster buying), and return format (strong_buy → strong_sell scale plus plain-English verdict). Missing only operational constraints like rate limits or data freshness.

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: front-loaded purpose ('Interpret insider trading activity'), followed by processing logic ('Classifies... identifies... explains'), and concludes with return value specification. Zero redundancy in two dense sentences.

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 lacking an output schema, the description fully compensates by detailing the return structure (signal strength scale and verdict format) and explaining the analytical methodology applied to the input, making it complete for a single-parameter analysis tool.

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% with the 'ticker' parameter fully documented including examples (NVDA, AAPL, MSFT). The description adds no explicit parameter semantics, but baseline 3 is appropriate given the schema already provides complete documentation.

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?

Description uses specific verb 'Interpret' with resource 'insider trading activity' and clearly distinguishes from siblings like 'stock_thesis' or 'earnings_analysis' by emphasizing unique capabilities: classifying open-market purchases vs routine sales, identifying cluster buying, and providing signal strength ratings.

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

Usage Guidelines3/5

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

While the specific focus on insider trading implies appropriate usage context, the description lacks explicit guidance on when to select this tool over siblings like 'bear_vs_bull' or 'valuation_snapshot', and does not mention prerequisites or exclusions.

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

list_toolsList Available ToolsA

List all tools available in the Agent Toolbelt API catalog, including descriptions and pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully adds critical context about return content ('including descriptions and pricing'), informing the agent what data to expect despite the absence of an output schema. It could additionally clarify that this is a safe, read-only operation.

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 a single, efficient sentence of 13 words with zero waste. It is front-loaded with the primary action ('List all tools') and packs essential qualifying details (scope: 'Agent Toolbelt API catalog'; return values: 'descriptions and pricing') into minimal space.

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?

Given the tool's simplicity (zero parameters, no annotations) and lack of output schema, the description achieves high completeness by specifying what the tool returns ('descriptions and pricing'). This compensates adequately for missing structured output definitions, though it could explicitly note the return type (e.g., 'returns a list').

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, establishing a baseline of 4 per the scoring rubric. The description appropriately focuses on the tool's output rather than non-existent inputs, requiring no parameter-specific elaboration.

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 specific verb 'List' with clear resource 'tools available in the Agent Toolbelt API catalog'. It effectively distinguishes this discovery/meta-tool from the 20+ functional sibling tools (audit_dependencies, bear_vs_bull, etc.) by identifying it as the catalog listing operation.

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

Usage Guidelines3/5

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

The description implies usage through the action 'List all tools' but provides no explicit when-to-use guidance, prerequisites, or alternatives. While the agent can infer this is for discovery when tool availability is unknown, the text lacks explicit guidance on when to prefer this over directly invoking known tools.

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

mock_api_responseAPI Response MockerA

Generate realistic mock API responses from a JSON Schema. Supports nested objects, arrays, string formats (email, uuid, date-time, url), field-name heuristics, enums, and min/max constraints. Set seed for reproducible output. Returns 1–100 records.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemaYesJSON Schema object describing the shape of the mock data
countNoNumber of mock records to generate (1–100)
seedNoOptional seed for reproducible output

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and succeeds well: discloses reproducibility via seed, volume limits (1-100 records), and generation logic (field-name heuristics, format support). Missing only error handling or side effect details.

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

Conciseness5/5

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

Two dense sentences efficiently pack capability details, feature enumeration, behavioral constraints, and output volume. Every clause earns its place; no redundancy.

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?

Appropriately complete for a 3-parameter tool with no output schema: mentions return volume (1-100 records) and core functionality. Could slightly improve by indicating return structure (array vs object), but feature list adequately implies output richness.

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 has 100% description coverage (baseline 3). Description adds value by explaining seed's purpose ('reproducible output') and reinforcing count constraints ('Returns 1–100 records'), providing semantic context beyond the schema's bare descriptions.

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 'Generate' + resource 'mock API responses' + input 'JSON Schema' clearly defines the tool's function. Distinguishes from sibling 'generate_schema' (which creates schemas) by consuming schemas to produce data.

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

Usage Guidelines3/5

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

Lists capabilities (nested objects, string formats, constraints) that imply when to use it, but lacks explicit 'when to use vs alternatives' or prerequisites. No sibling seems to be a direct alternative, but the description doesn't explicitly guide the selection decision.

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

normalize_addressAddress NormalizerA

Normalize a US mailing address to USPS standard format. Expands abbreviations (st→ST, ave→AVE), standardizes directionals, converts state names to codes. Returns parsed components and a confidence score (high/medium/low).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe US address to normalize
includeComponentsNoInclude parsed address components in response

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses transformation logic (st→ST examples) and output structure (confidence score levels: high/medium/low). However, it omits operational characteristics like idempotency, error handling for invalid addresses, or whether the operation is read-only.

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

Conciseness5/5

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

Two efficiently structured sentences with zero waste. The first states the core purpose; the second provides concrete transformation examples (parenthetical) and return value specification. Information is front-loaded and every clause earns its place.

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

Completeness4/5

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

For a low-complexity tool (2 parameters, no output schema), the description adequately compensates by detailing return values (confidence scoring, component parsing) and input constraints (US-only). A perfect score would require explicit error behavior or validation rules.

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%, establishing a baseline of 3. The description adds marginal semantic context by referencing 'parsed components' in the return description, which connects to the includeComponents parameter's purpose, but does not elaborate on parameter syntax or the address input format beyond the schema definition.

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 precise verb ('Normalize') and specific resource ('US mailing address'), clearly distinguishing it from all siblings (none handle address processing). It further clarifies the USPS standard scope and explains exactly what normalization entails (abbreviation expansion, directional standardization, state code conversion).

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 provides clear context through the 'US mailing address' scope constraint, implicitly defining when to use it (US addresses only). However, it lacks explicit 'when not to use' guidance (e.g., international addresses) or named alternatives, though none exist in the sibling set.

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

optimize_promptPrompt OptimizerA

Analyze and improve an LLM prompt. Scores clarity, specificity, structure, and completeness. Returns an optimized rewrite with a summary of what changed and why. Powered by Claude.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe LLM prompt to analyze and/or improve
modelNoTarget model (e.g. 'gpt-4o', 'claude-3-5-sonnet')gpt-4o
taskNoWhat this prompt is trying to accomplish
modeNo'both' returns analysis + improved prompt; 'analyze' scores only; 'improve' rewrites onlyboth

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the underlying engine ('Powered by Claude') and explains the return format (rewrite + summary), but omits safety characteristics (read-only vs. destructive), rate limits, or error behaviors that annotations would typically cover.

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, zero waste. Front-loaded with the core action ('Analyze and improve'), followed by evaluation criteria, output specification, and implementation note. Every sentence earns its place with no redundant or filler text.

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?

Given the absence of an output schema, the description appropriately compensates by detailing the return value ('optimized rewrite with a summary'). For a 4-parameter tool with simple types and complete schema coverage, this is sufficient, though it could briefly mention error handling or input validation limits.

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%, establishing a baseline of 3. The description adds context about what gets analyzed (the four scoring dimensions) and what outputs to expect, but doesn't add parameter-specific semantics beyond what's already clearly documented in the schema property descriptions.

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 provides specific verbs ('Analyze and improve') and a clear resource ('LLM prompt'), distinguishing it from text analysis siblings like 'extract_from_text' or 'compare_documents'. It specifically mentions scoring dimensions (clarity, specificity, structure, completeness) that uniquely identify this tool's function.

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

Usage Guidelines3/5

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

The description implies usage by explaining the output ('Returns an optimized rewrite'), but lacks explicit when-to-use guidance or alternative comparisons. While the 'mode' parameter schema explains the three operating modes, the description itself doesn't state prerequisites or when to prefer this over siblings like 'count_tokens' or 'pack_context_window'.

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

pack_context_windowContext Window PackerA

Pack content chunks into a token budget for an LLM context window. Selects the best subset of chunks that fits within the token limit using priority, greedy, or balanced strategies. Use when you have more content than fits in the context window.

ParametersJSON Schema
NameRequiredDescriptionDefault
chunksYesContent chunks to pack
tokenBudgetYesMaximum tokens allowed
modelNoTarget model for tokenizationgpt-4o
strategyNoPacking strategypriority
separatorNoText between chunks
systemPromptNoSystem prompt to reserve tokens for
reserveForOutputNoTokens to reserve for output

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses algorithmic behavior (priority/greedy/balanced strategies) but omits operational details: whether the tool is idempotent, what the return format contains (indices, text, or metadata), and any side effects or rate limits.

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 sentences with zero waste: sentence 1 states the core action, sentence 2 elaborates mechanism/strategies, sentence 3 provides usage condition. Front-loaded with the essential verb and resource.

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

Completeness3/5

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

Given 7 parameters with 100% schema coverage, the description adequately explains the operation. However, with no output schema provided, the description fails to specify what gets returned (formatted string, chunk array, or indices). Missing annotations for safety profile (read-only vs destructive) also creates a gap.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description adds conceptual context ('pack content chunks into a token budget') that helps understand parameter interactions, but does not add syntax details or format examples beyond what the schema already provides.

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 ('Pack') and clear resources ('content chunks', 'token budget', 'LLM context window'). It distinguishes from siblings like count_tokens by emphasizing the selection/packing functionality rather than just counting.

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?

Provides explicit when-to-use guidance ('Use when you have more content than fits in the context window'). Lacks explicit alternatives or exclusions (e.g., 'use count_tokens instead if you only need token counts'), but the conditional usage is clearly stated.

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

stock_thesisStock Investment ThesisA

Generate a long-term investment thesis for any stock. Pulls live financials, valuation metrics, insider trades, and analyst ratings, then synthesizes them into a Motley Fool-style research note. Returns a bullish/neutral/bearish verdict, thesis paragraphs, key strengths, risks, and valuation read. Use when you want fundamental analysis of a stock for long-term investing.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, AAPL, MSFT)
timeHorizonNoInvestment time horizon3-5 years

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Successfully discloses data sources ('live financials, valuation metrics, insider trades, analyst ratings'), processing style ('Motley Fool-style research note'), and output structure ('bullish/neutral/bearish verdict, thesis paragraphs...'). Missing only side-effect warnings or rate limit notes.

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 with zero waste: (1) Purpose, (2) Data sources & processing, (3) Output structure, (4) Usage guidance. Front-loaded and efficiently structured; every sentence earns its place.

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

Completeness4/5

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

Despite no output schema, description explicitly documents return values (verdict categories, thesis components). Covers input semantics, behavioral traits, and output structure adequately for a 2-parameter synthesis tool. Minor gap: no mention of data freshness or caching behavior.

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

Parameters3/5

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

Schema coverage is 100%, establishing baseline 3. Description references 'long-term' and 'any stock' which loosely map to parameters, but adds no syntax, format details, or semantic constraints beyond the schema's 'e.g. NVDA, AAPL' example.

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 ('Generate') + resource ('long-term investment thesis') + scope ('any stock'). Distinguishes from siblings like 'earnings_analysis' (narrow focus), 'valuation_snapshot' (metrics only), and 'bear_vs_bull' (comparison format) by emphasizing comprehensive fundamental synthesis.

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?

Provides explicit positive guidance ('Use when you want fundamental analysis of a stock for long-term investing') with clear context. Lacks explicit negative constraints or named alternatives (e.g., when to use 'earnings_analysis' instead), preventing a 5.

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

strip_image_metadataImage Metadata StripperA

Strip EXIF, GPS, IPTC, XMP, and ICC metadata from an image for privacy. Use before uploading or sharing images to remove sensitive embedded data like GPS coordinates, camera model, timestamps, and editing history. Accepts base64-encoded JPEG, PNG, WebP, or TIFF. Returns cleaned base64 image with a removal report.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesBase64-encoded image (JPEG, PNG, WebP, TIFF). No data URI prefix.
formatNoOutput format ('preserve' keeps original)preserve
qualityNoQuality for lossy formats (1-100)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It effectively discloses what gets destroyed (specific metadata types like GPS coordinates, camera models) and the return format ('cleaned base64 image with a removal report'). It could mention reversibility or size limits, but covers the essential behavioral traits.

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 efficiently cover: 1) core function, 2) usage context, 3) input specification, and 4) output format. No redundant text or tautology—every sentence earns its place with front-loaded value.

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 3-parameter image processing tool with 100% schema coverage, the description is complete. It compensates for the missing output schema by describing the return value ('cleaned base64 image with a removal report') and covers the privacy use case comprehensively.

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 has 100% description coverage, establishing a baseline of 3. The description reinforces the image parameter requirements ('Accepts base64-encoded JPEG, PNG, WebP, or TIFF') but does not add semantic meaning beyond the schema for the 'format' or 'quality' 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 explicitly states the tool strips 'EXIF, GPS, IPTC, XMP, and ICC metadata' for 'privacy,' using specific verbs and resources. It clearly distinguishes from siblings (financial analysis, text processing, etc.) by specifying image metadata manipulation.

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?

Provides clear contextual guidance: 'Use before uploading or sharing images to remove sensitive embedded data.' While it doesn't explicitly state when NOT to use it or name alternatives, the sibling tools are sufficiently distinct that this contextual signal is adequate for selection.

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

valuation_snapshotValuation SnapshotA

Assess whether a stock is cheap, fair, or expensive. Pulls P/E, P/S, EV/EBITDA, FCF yield, ROE, and margins, then synthesizes them into a verdict with a specific buy zone price level.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, AAPL, MSFT)

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and successfully discloses key behaviors: it pulls specific financial multiples, performs synthesis (not just raw data), and returns a structured verdict with a specific buy zone price level. Missing minor operational details like data freshness or calculation methodology prevents 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.

Conciseness5/5

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

Two sentences with zero waste. First sentence establishes the valuation spectrum assessment; second details the specific metrics pulled and the synthesis methodology. Information density is high with no filler words or redundant restatements of the tool name.

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?

Given the absence of an output schema, the description effectively compensates by detailing the return structure (specific metrics, verdict, buy zone price). It adequately covers the tool's functionality for a single-parameter analysis tool, though mentioning data sources or caching behavior would provide full completeness.

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% with 'ticker' fully documented including examples. The description focuses entirely on behavior/output rather than parameters, which is acceptable given the schema's completeness. Baseline score of 3 is appropriate as the description neither adds to nor detracts from parameter understanding.

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?

Description uses specific verb 'Assess' with clear resource (stock valuation) and explicitly defines the three possible outcomes (cheap, fair, expensive). It distinguishes from siblings like 'stock_thesis' and 'earnings_analysis' by specifying valuation multiples (P/E, EV/EBITDA) and quantitative synthesis rather than qualitative thesis or earnings-specific analysis.

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

Usage Guidelines3/5

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

The description implies usage through specificity (valuation screening, buy zone identification) but lacks explicit guidance on when to prefer this over 'stock_thesis' for comprehensive analysis or 'bear_vs_bull' for sentiment. No 'when-not-to-use' or prerequisite conditions are mentioned.

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. 25 tool updatesv1.0.0
    • First observedaudit_dependencies
    • First observedbear_vs_bull
    • First observedbuild_cron
    • First observedbuild_regex
    • First observedcompare_documents
    • First observedconvert_markdown
    • First observedcount_tokens
    • First observedcsv_to_json
    • First observedearnings_analysis
    • First observedextract_contract_clauses
    • First observedextract_from_text
    • First observedextract_meeting_action_items
    • First observedfetch_url_metadata
    • First observedgenerate_brand_kit
    • First observedgenerate_color_palette
    • First observedgenerate_schema
    • First observedinsider_signal
    • First observedlist_tools
    • First observedmock_api_response
    • First observednormalize_address
    • First observedoptimize_prompt
    • First observedpack_context_window
    • First observedstock_thesis
    • First observedstrip_image_metadata
    • First observedvaluation_snapshot

TDQS

A3.6/5.0

Scored across 25 tools

Disambiguation4/5

Tools are mostly distinct despite the large set. The five financial analysis tools (bear_vs_bull, earnings_analysis, insider_signal, stock_thesis, valuation_snapshot) target different aspects of stock research, though an agent might briefly confuse stock_thesis with bear_vs_bull. Text extraction tools are well-differentiated by scope (general entities vs. contracts vs. meetings).

Naming Consistency3/5

Approximately 80% of tools follow a consistent verb_noun pattern (e.g., extract_contract_clauses, generate_schema, normalize_address). However, the financial analysis cluster breaks convention with noun_noun naming (earnings_analysis, insider_signal, stock_thesis, valuation_snapshot) or noun_vs_noun (bear_vs_bull), creating a mixed convention that reduces predictability.

Tool Count3/5

With 25 tools, this sits at the upper bound of 'borderline heavy' per the rubric. While each tool serves a distinct utility purpose (text extraction, stock analysis, data conversion), the breadth covers many unrelated domains (finance, cron syntax, image metadata, address normalization), making it a 'kitchen sink' collection that risks selection paralysis without being completely unmanageable.

Completeness4/5

For a general agent utility belt, the surface covers the targeted domains reasonably well. The financial cluster provides fundamental analysis capabilities (thesis, valuation, earnings, insider activity, bull/bear cases). Text extraction covers general entities, contracts, and meetings. Missing minor operations like json_to_csv or additional image processing don't create critical dead ends given the toolset's utility-focused nature.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

  • 111 tools for AI assistants, so an answer comes from a rule instead of a guess. 84 deterministic utilities. IBAN and VAT validation, cron parsing, regex testing, hashing, JWT decoding, conversion between JSON, CSV, XML and YAML, units, number bases, timezones and date arithmetic. Eleven of them encode Dutch rules that a model tends to get wrong: AOW pension age, inheritance and gift tax, unemployment benefit duration, notice period, severance, the 30 percent ruling, holiday allowance, mileage allowance, and public and school holidays. Five more generate test data that is structurally valid and belongs to nobody: BSN, IBAN, BRP person records, UPA pension files and document numbers. 14 render tools that return a hosted file. HTML or a live URL to PDF, full page screenshots, QR codes, PDF merge and split, images to PDF, image resize, convert and compress, metadata stripping, PDF to DOCX and back. Plus read_page, which returns the readable content of a JavaScript rendered page as Markdown. 4 memory tools give an agent key-value state that survives between sessions, scoped to its own API key. 3 workflow tools list and run saved multi-step workflows on the caller's account. 6 AI tools for the jobs where a model is the right instrument rather than the wrong one: check a message for scam patterns, write a spreadsheet formula, turn a question into SQL, translate code between languages, improve a prompt, draft an email. Utilities and memory are free. Renders and AI tools have a free tier and credit packs. Workflows need an API key, because a workflow belongs to an account rather than to a key. Streamable HTTP at https://toolforte.com/api/mcp

  • The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.

  • MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.

  • Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Swiss-army-knife utility MCP server for AI agents. 18 tools for JSON validation/formatting, base64 encode/decode, hash generation, UUID generation, URL parsing, regex testing, markdown↔HTML conversion, text stats, slug generation, datetime conversion, cron parsing, text diffing, CSV↔JSON conversion, and JWT decoding. Zero API Key required
    18
    5
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Multi-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.
    12 npm
    1
    MIT