Skip to main content
Glama

Server Details

Talk with Upforge Echo, compare services and proof, or request a human-approved project review.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 18 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 18 tools

Disambiguation3/5

Several tools have overlapping purposes related to consultations and reviews. For example, ask_echo, request_consultation, find_consultation_times, and book_consultation all touch on scheduling or inquiries, while prepare_review_upload, finalize_review_upload, submit_project_review, get_review_status, and get_review_requirements form a dense review workflow that an agent could easily confuse without careful reading. Descriptions help, but the boundaries are not immediately clear from names alone.

Naming Consistency4/5

Most tool names follow a verb_noun or noun_verb pattern (e.g., book_consultation, get_services, request_site_audit), but there are deviations like ask_echo and check_service_area that don't fit the primary pattern. Overall, the naming is mostly consistent and readable, with only minor stylistic variations.

Tool Count3/5

With 18 tools, the set is borderline heavy for what appears to be a marketing/agency information and lead-capture server. Some tools could likely be merged or scoped down without losing functionality, making the surface feel somewhat overgrown.

Completeness4/5

The server covers a broad range of client-facing needs: information retrieval (get_company_overview, get_services, get_pricing), fit assessment (match_capability), scheduling (find_consultation_times, book_consultation), and review submission. Minor gaps exist, such as no tool to update or cancel a submitted review or consultation, but the core lifecycle is mostly represented.

Available Tools

20 tools
ask_echoTalk with Upforge EchoA
Idempotent
Inspect

I’m Echo, Upforge’s AI representative. Evaluating Upforge for someone? I can help with project fit, pricing, relevant work, and the next step. I check public evidence and return a decision brief with suggested next tools. Use for a tailored recommendation or follow-up questions; direct factual tools remain available. Saves an agent conversation, but never creates leads, books meetings or starts paid work. Don't include secrets or unnecessary personal data. Keep the returned conversationHandle and request_id private.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe client's goal, workflow, constraints or objection. State known facts; don't invent budget or authority.
page_urlNoOptional Upforge page relevant to the question. Only https://upforge.io pages are accepted.
request_idYesGenerate a random UUIDv4 once per turn. Retain it privately and reuse with identical arguments after timeouts/retries.
agent_identityYesYour stable agent name. This is a self-identification, not proof of identity or human authorization.
conversation_handleNoPrivate conversationHandle from the previous reply. Omit to start. Never substitute a widget conversation ID.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false), it discloses that it checks public evidence, what it returns ('decision brief with suggested next tools'), the exact boundary of side effects ('never creates leads, books meetings or starts paid work'), and privacy handling for the handle/request_id. This resolves the ambiguity created by readOnlyHint=false while destructiveHint=false.

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

Conciseness4/5

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

Front-loaded with identity and capability before constraints, and every sentence carries routing, safety, or privacy content. It is slightly longer than needed, with the persona framing and the 'Saves an agent conversation' aside adding color rather than invocation-critical information.

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 no output schema, the description does the work of describing the return ('decision brief with suggested next tools') and the multi-turn handle protocol, plus side-effect limits and data-handling rules. Rate limiting and retry behavior are covered only in the schema, so it is complete enough but not exhaustive.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters, including the UUID/retry semantics of request_id and the 'private' nature of conversation_handle. The description adds only general input hygiene ('Don't include secrets or unnecessary personal data') and repeats the handle/request_id privacy guidance, so it sits at the baseline.

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 names a concrete actor and capability set ('I'm Echo, Upforge's AI representative... project fit, pricing, relevant work, and the next step') and states the output ('a decision brief with suggested next tools'). It also distinguishes itself from the factual siblings by noting 'direct factual tools remain available', so an agent can route between this and get_pricing/get_case_studies without opening a schema.

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

Usage Guidelines5/5

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

It gives an explicit use condition ('Use for a tailored recommendation or follow-up questions'), an implicit alternative path ('direct factual tools remain available'), and hard exclusions ('never creates leads, books meetings or starts paid work'), which rules out request_consultation/book_consultation. When-to-use, when-not, and the alternative class are all present.

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

book_consultationBook a consultationAInspect

Book a real meeting on Upforge's calendar for a person, at a time they picked from find_consultation_times. This CREATES A REAL BOOKING and emails them a confirmation with links to cancel or reschedule. Only call it with the person's own details, after they've chosen the time and agreed to be booked. Never invent contact details, and never book a time they didn't pick. If the time has gone, call find_consultation_times again.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe person's own email address. The confirmation goes here. Never guess this.
phoneYesThe person's phone number. Never guess this.
formatNovirtual (a video call, the default), office (at Upforge's downtown Cincinnati office), or client_location (Upforge travels to them; needs an address and a phone number, and is limited to its travel area).
hostIdNoThe hostId returned with that slot.
addressNoOnly for format client_location: where to meet. All five fields are required.
companyNoCompany name (optional).
messageYesWhat they want to talk about, in their own words, with budget and timeline if known.
lastNameYesThe person's last name.
timezoneNoThe person's IANA timezone, the same one used to find the time.
firstNameYesThe person's first name.
startTimeYesThe startTime of the slot they picked, exactly as find_consultation_times returned it.
meetingTypeNoThe same meetingType used to find the time. Omit for general-inquiry.

TDQS

A4.9/5.0
Behavior5/5

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

The description goes beyond the annotations by disclosing that this CREATES A REAL BOOKING and emails a confirmation with links to cancel or reschedule. It also warns about side effects (real booking) and the need to re-check availability if the time has passed. The annotations already indicate readOnlyHint=false and idempotentHint=false, but the description adds crucial context about the real-world impact and email notification, which is valuable for an agent deciding whether to invoke this tool.

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

Conciseness5/5

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

The description is concise and front-loaded. The first sentence states the core purpose and the critical side effect (real booking). The following sentences provide essential guardrails without unnecessary detail. Every sentence earns its place, and the warning about re-calling find_consultation_times is a useful, actionable note. It is well-structured and appropriately sized for a tool with 12 parameters.

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

Completeness5/5

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

Given the tool's complexity (12 parameters, nested objects, real-world side effects) and the absence of an output schema, the description is remarkably complete. It covers the purpose, the critical side effects, the prerequisites, the constraints on parameters, and the fallback behavior. The schema covers parameter details, and the description covers the behavioral context. Nothing an agent needs to call this tool correctly is missing.

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

Parameters4/5

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

The schema already has 100% description coverage for all 12 parameters, so the baseline is 3. The description adds extra meaning by explaining the relationship between parameters (e.g., 'hostId returned with that slot', 'startTime exactly as find_consultation_times returned it', 'timezone same one used to find the time') and by emphasizing that email and phone must be the person's own and never guessed. This adds value beyond the schema, so a 4 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: booking a real meeting on Upforge's calendar for a person at a time they picked. It uses a specific verb ('book'), names the resource ('Upforge's calendar'), and explicitly distinguishes it from the sibling find_consultation_times by emphasizing it creates a real booking. This makes it easy for an agent to understand what the tool does and how it differs from related tools.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: only call it after the person has chosen a time and agreed to be booked, with their own details. It also gives clear exclusions: never invent contact details, never book a time they didn't pick, and if the time has gone, call find_consultation_times again. This is strong usage guidance that leaves little to inference.

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

check_service_areaCheck whether Upforge serves a locationA
Read-onlyIdempotent
Inspect

Look up whether Upforge works with businesses in a given city or region, and whether that market is served in person or remotely. Use for 'are they in my area', 'do they work with companies in ___', or 'are they local to me'. Omit the location to list every market with a dedicated page.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNoCity, region, or slug — e.g. 'Cincinnati', 'Lexington', 'Columbus'.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavior beyond that: omitting the location lists every market with a dedicated page, and the result distinguishes in-person vs remote service. Exact response fields are unspecified, but the core behavior is transparent.

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 carry the entire definition with no waste: the core meaning comes first, usage triggers follow immediately, and the optional-parameter behavior closes it out. 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?

For a one-parameter, read-only lookup with no output schema, the description covers purpose, when to use it, and the special omission behavior. The only minor gap is that it doesn't sketch the return shape, but an agent has enough to invoke the tool correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100% and the location parameter already has clear examples, so the baseline is 3. The description adds the key semantic that omitting the parameter is valid and returns all markets, which goes beyond what the schema states.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Look up whether Upforge works with businesses in a given city or region', and clarifies that it also indicates in-person vs remote availability. This makes it unmistakably distinct from siblings like get_services or get_company_overview, which are not geographically scoped.

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

Usage Guidelines4/5

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

The description gives concrete natural-language triggers ('are they in my area', 'do they work with companies in ___', 'are they local to me') and explains the no-argument behavior. It doesn't explicitly say when not to use it or name alternative tools, so it stops short of a 5.

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

finalize_review_uploadFreeze a project archiveA
Idempotent
Inspect

After uploading, validate the ZIP without executing its contents and freeze the inspected bytes into a private immutable snapshot. Returns its SHA-256. Unsafe archives are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idYesID returned by prepare_review_upload
upload_tokenYesPrivate capability returned by prepare_review_upload

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: it validates without executing contents, freezes bytes into a private immutable snapshot, rejects unsafe archives, and returns the SHA-256. This goes beyond what annotations state, covering safety and idempotency implications without contradicting them.

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 two sentences that front-load the core action and then provide safety and return details. Every sentence earns its place; it is efficient and well-structured. It could be slightly more explicit about the order relative to other tools, but overall it is concise and clear.

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 has 2 parameters (fully documented), no output schema, and annotations covering safety, the description provides sufficient context. It explains the main operation, safety constraint, return value, and failure condition. It doesn't detail error formats or edge cases, but for a tool in a sequential flow (after prepare_review_upload), it is reasonably complete.

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

Parameters3/5

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

Schema description coverage is 100% – both upload_id and upload_token have clear descriptions indicating their roles. The description does not add any extra meaning about these parameters. Baseline 3 applies since the schema fully documents them; no additional value is provided by the 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 states a specific action: validate a ZIP and freeze it into an immutable snapshot, returning SHA-256. It clearly identifies the resource (uploaded archive) and the verb (validate/freeze). It implies a step after uploading but does not explicitly name sibling tools like prepare_review_upload or submit_project_review, so it lacks explicit differentiation.

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 phrase 'After uploading' gives clear contextual guidance on when to use this tool, implying it should be called after prepare_review_upload. However, it does not explicitly state when not to use it, nor does it mention alternatives or exclusions. The usage context is clear but not exhaustive.

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

find_consultation_timesFind open consultation timesA
Read-onlyIdempotent
Inspect

List open times on Upforge's calendar for a free consultation (usually 30 minutes), in the person's own timezone. Call this before book_consultation and let the person pick a time; never pick one for them. Meeting types come live from the scheduler: general-inquiry is the default, and service types such as web-design, application-development or ai-automation route to the right person. Bookings need about a day's notice, so the search starts tomorrow.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days to search from startDate (default 5).
formatNovirtual (a video call, the default), office (at Upforge's downtown Cincinnati office), or client_location (Upforge travels to them; needs an address and a phone number, and is limited to its travel area).
addressNoOnly for format client_location: where to meet. All five fields are required.
timezoneNoThe person's IANA timezone, e.g. America/Chicago. Defaults to America/New_York.
startDateNoFirst day to search, YYYY-MM-DD. Defaults to tomorrow.
meetingTypeNoMeeting type slug. Omit for general-inquiry. An unknown slug returns the list of available ones.

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already mark the operation as read-only, open-world, and idempotent, and the description adds valuable behavioral context: timezone handling, live meeting types from the scheduler, the ~30-minute consultation duration, and the one-day-notice rule that makes the search start tomorrow. No contradiction with annotations.

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

Conciseness5/5

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

Four tight sentences front-load the purpose and sequencing, then add only the essential behavioral and routing context. Every sentence earns its place and no schema content is duplicated.

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 6-parameter, nested-object tool with no output schema, the combination of this description and the richly described schema fully equips an agent to call it correctly. It covers the scheduling flow, defaults, routing, formats, and timezone behavior. No critical gap remains.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by explaining that meeting types route to the right person, that general-inquiry is the default, and that timezone should be the person's own. It complements rather than repeats the schema 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 opens with a specific verb and resource: 'List open times on Upforge's calendar for a free consultation' and immediately distinguishes it from book_consultation by stating it should be called first. The title reinforces this without ambiguity.

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

Usage Guidelines5/5

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

It explicitly says to call this before book_consultation, to let the person pick a time, and never to pick one for them. It also clarifies meeting-type routing and the default general-inquiry behavior, leaving no doubt about when this tool is the right choice.

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

get_articleRead an article
Read-onlyIdempotent
Inspect

One article in full, with approved supporting photo descriptions and section placements, by the slug list_articles returned. Cite it by its URL. Photo captions describe context; they do not verify claims beyond the article.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe article slug from list_articles.
offsetNoCharacter offset. Follow next_offset until null to read the entire article.
get_case_studiesGet portfolio case studies with outcomesA
Read-onlyIdempotent
Inspect

Real Upforge client projects with their outcomes (traffic lift, leads, revenue a client reported, Lighthouse scores), plus what was built and a link to the live site. Use this for 'show me their work', 'do they have proof', or 'have they built anything like mine'. Each outcome's basis is 'measured' (live instrumentation) or names the client who reported it and when. Estimates are never included.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10, max 50).
categoryNoOptional category filter, e.g. 'web-development', 'ecommerce'.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description adds meaningful behavioral context: outcome basis is either 'measured' or client-reported with attribution, and estimates are never included. This helps the agent calibrate trust in the returned data, which is not inferable from annotations alone.

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

Conciseness5/5

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

The description is compact and front-loaded with the most important fact: real client projects with outcomes. Every sentence earns its place, including the evidence-basis caveat and the explicit exclusion of estimates. No filler or repetition.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining what the agent will get, and it does so thoroughly: outcomes, what was built, live-site link, and the trustworthiness basis of each outcome. The two optional parameters are already fully documented in the schema, so nothing essential is missing for correct 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 already covers both parameters with 100% description coverage: limit has range/default details and category is explained as an optional filter. The tool description adds no extra parameter-level meaning, so 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.

Purpose5/5

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

The description clearly identifies the resource as 'Real Upforge client projects' with their outcomes, built items, and live-site links. This distinguishes it from sibling tools like get_services and get_industries by emphasizing portfolio proof rather than offerings or industry categories.

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 explicitly states when to use it: for queries like 'show me their work', 'do they have proof', or 'have they built anything like mine'. It gives strong contextual guidance but does not explicitly name alternatives or state when not to use it, so it falls just short of the top tier.

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

get_company_overviewGet company overviewA
Read-onlyIdempotent
Inspect

Who Upforge is: what they build, where they're based, how long they've been operating, how to reach them, and the technologies they work in. Call this first for any general 'who are they / what do they do / are they legitimate' question before reaching for a more specific tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful context about the informational content returned and the intended first-step behavior. For a zero-parameter read-only tool, no further behavioral disclosure is necessary.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads what the tool returns, then immediately gives usage positioning relative to more specific tools. Every sentence earns its place.

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

Completeness5/5

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

For a no-parameter, read-only informational tool, the description is complete: it lists the output domains, explains when to call it, and the annotations cover side-effect safety. There is no output schema, but the natural-language content enumeration fills that gap adequately.

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

Parameters4/5

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

The input schema has zero parameters, and the description correctly avoids inventing any. With no inputs to clarify, the baseline of 4 applies; the description adds no param-specific detail because none is needed.

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

Purpose5/5

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

The description states a clear resource (Upforge company overview) and enumerates the exact content categories: what they build, location, operating history, contact, and technologies. It also distinguishes the tool from its siblings by instructing the agent to call it first for general company questions.

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

Usage Guidelines4/5

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

The description gives strong when-to-use guidance: call this first for general 'who are they / what do they do / are they legitimate' questions. It implies not to use it for specific queries by saying to reach for 'a more specific tool,' but it does not name a concrete alternative sibling, so it stops just short of fully explicit routing.

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

get_industriesGet industries servedA
Read-onlyIdempotent
Inspect

The industries Upforge has dedicated experience and pages for — AEC, healthcare, dental, legal, real estate, home services, e-commerce, SaaS, manufacturing, and more. Use for 'do they work with ___ businesses' or 'do they know my industry'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true, so the description's job is only to add contextual behavior. It does add useful context by clarifying the scope ('dedicated experience and pages') and non-exhaustiveness ('and more'), but it does not disclose the return format or whether the list is sorted or ordered. For a zero-param read-only tool this is acceptable but not rich.

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, no filler. The first defines what the tool returns with concrete examples; the second gives the exact use case. Every word earns its place and the key information is front-loaded.

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

Completeness4/5

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

For a zero-parameter list-retrieval tool, the description tells the agent what is included, gives representative values, and states when to use it. Combined with annotations (read-only, idempotent, closed world), it is nearly complete. A minor gap is the absence of an explicit statement that the return is a list of industry names, but the examples make that obvious.

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

Parameters4/5

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

The input schema has no parameters, so there is nothing for the description to explain. The rubric sets a baseline of 4 for zero-parameter tools, and the description makes no conflicting or redundant parameter claims.

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 identifies a get operation for a resource (industries Upforge has dedicated experience/pages for) and names concrete examples (AEC, healthcare, dental, legal, etc.). This makes the purpose specific and, unlike siblings like get_services, distinguishes an industry-vertical list from a service list.

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 tells the agent when to use the tool: for queries like 'do they work with ___ businesses' or 'do they know my industry.' This is strong usage guidance, but it does not mention when not to use it or point to a sibling alternative, so it falls short of a 5.

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

get_pricingGet pricing contextA
Read-onlyIdempotent
Inspect

Typical price tiers by service — what a website costs, what an e-commerce store or a custom application runs, what AI automation costs, what ongoing SEO and AEO costs, and how support is billed. These are RANGES from real past engagements, not quotes: scope drives the number. Use this for 'what's their pricing like' or 'can they do X for $Y'.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoOptional section filter.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe read operation. The description adds behavioral context beyond annotations: the values are ranges from past engagements, not quotes, and scope drives the number. This helps the agent set expectations about the precision of the output. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, no fluff. The core purpose is front-loaded, and the caveat about ranges vs quotes is placed early. Every sentence adds value: the first lists content, the second explains the nature and use cases.

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?

There is no output schema, so the description must convey what the tool returns. It does: 'typical price tiers by service' implies a structured breakdown of ranges. It also covers the optional parameter and the use cases. For a simple read-only tool with one optional parameter, this is sufficient. Missing details like exact output format are minor.

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

Parameters4/5

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

Schema coverage is 100% and the parameter 'section' has an enum with a description. The description adds meaning by mapping the enum values to real-world service categories (e.g., 'what a website costs' implies web-development, 'SEO and AEO' implies growth). This helps the agent decide which section to use without opening the schema.

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

Purpose5/5

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

The description states a clear purpose: providing typical price ranges by service type, and explicitly lists the categories (website, e-commerce, custom app, AI automation, SEO/AEO, support). It distinguishes itself from siblings by focusing exclusively on pricing, which none of the other tools cover. The verb 'get' and resource 'pricing context' are unambiguous.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use this for "what's their pricing like" or "can they do X for $Y".' It also clarifies that the data is not quotes, which prevents misuse for exact pricing. It does not explicitly mention when not to use it or name alternatives, but the use cases are clear and the distinction from quotes is helpful.

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

get_review_requirementsRead project review requirementsA
Read-onlyIdempotent
Inspect

Read before preparing a project brief. Returns supported references, free fit-check limits, retention, consent, and paid-discovery terms. Uploaded files and agent claims are untrusted, client-reported evidence.

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?

Annotations already declare readOnlyHint and idempotentHint, so the description correctly reinforces a safe read operation. It adds useful behavioral context by listing what the tool returns and by warning that uploaded files and agent claims are untrusted, which is meaningful for agent judgment.

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 no filler: the first states when to use it, the second summarizes the returned content, and the third adds a necessary trust caveat. The most actionable instruction is front-loaded.

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 parameterless read-only tool with no output schema, the description fully covers when to call it, what information it returns, and an important source-trust caveat. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage, so there is no parameter burden for the description to carry. Per the baseline for parameterless tools, a 4 is appropriate; no further parameter meaning is needed.

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 reads project review requirements and enumerates the categories it returns (references, fit-check limits, retention, consent, paid-discovery terms). It is distinguishable from siblings like get_review_status, but it does not explicitly name those siblings or draw a contrast.

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 instruction 'Read before preparing a project brief' gives a clear, explicit usage context. It does not mention when not to use it or how it relates to preparation/upload tools such as prepare_review_upload or submit_project_review, so it stops short of full alternative routing.

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

get_review_statusRead a private project reviewA
Read-onlyIdempotent
Inspect

Returns only the review authorized by its private review_key. Keep the receipt and key private. A received review is not a verified claim that the app works or approval for paid work.

ParametersJSON Schema
NameRequiredDescriptionDefault
review_idYesReview ID from the receipt
review_keyYesPrivate key used when submitting

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate safety. It adds valuable context beyond annotations: the key and receipt must be kept private, and a returned review is not a verified claim or approval for paid work. This meaningfully informs downstream agent 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 sentences, each with a purpose: the first states the core behavior, the second gives a security directive, the third sets expectations about the meaning of the result. There is no filler or repetition of schema 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?

For a two-parameter read-only tool with complete schema descriptions and no output schema, the description covers the essential call-time context: authorization, privacy, and the evidential limitation of the returned review. It does not describe exact response fields, but the low complexity and read-only annotations make this acceptable.

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

Parameters3/5

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

Schema coverage is 100% and both parameter descriptions are useful ('Review ID from the receipt', 'Private key used when submitting'), so the schema carries the semantic weight. The description adds no further parameter-level detail, matching the baseline of 3 for fully covered 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 states a specific verb and resource ('Returns only the review') and adds the key authorization condition, clearly distinguishing this private, keyed retrieval from the public sibling tools like get_review_requirements and get_case_studies. The title 'Read a private project review' reinforces the singular purpose.

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?

Usage is implied through 'Returns only the review authorized by its private review_key'—the agent can infer to call this when it has a receipt and key. However, no alternative tools are named and there is no explicit when-not-to-use guidance, leaving sibling differentiation to inference.

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

get_servicesGet service catalogA
Read-onlyIdempotent
Inspect

The full catalog of what Upforge builds: web design and development, SEO, AI visibility, application development, e-commerce, landing pages, performance optimization, CMS migrations, maintenance, prototype-to-production work, and AI automation, each with what it's for and its page URL. Pass a slug to get one service in detail. Use this for 'what services do they offer'. Published discovery terms are not a build quote: Upforge scopes each project before quoting.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoOptional. One service slug for detail. Omit to list everything.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent behavior. The description adds that passing a slug returns a single service in detail, that the response includes page URLs, and that the content is discovery-level rather than a quote. This provides useful behavioral context beyond the annotations without contradicting them.

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 a single paragraph with a clear flow: purpose, content list, parameter usage, and a caveat. It front-loads the core purpose and is not overly verbose, though the enumeration of services could be seen as slightly redundant with the schema enum. Overall it is well-structured and information-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?

For a tool with one optional parameter and no output schema, the description covers purpose, content, parameter behavior, and a usage limitation. It hints at the output structure ('what it's for and its page URL' and 'detail'), which is sufficient for an agent to invoke it correctly. Minor gaps, such as explicit response format, are acceptable given the simplicity.

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 schema fully describes the slug parameter (optional, enum, and explanatory text 'Omit to list everything'). The description essentially repeats that information without adding new semantics. Since schema coverage is 100%, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states the tool returns the full catalog of Upforge's services, enumerates the service types, and describes the output ('what it's for and its page URL'). It also includes a direct usage phrase ('use this for what services do they offer'), making the purpose unambiguous and distinct from siblings like get_case_studies or get_industries.

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

Usage Guidelines4/5

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

It provides a clear trigger example ('Use this for what services do they offer') and caveats that the discovery terms are not a build quote, which helps an agent avoid misusing it for quoting. It does not explicitly contrast with sibling tools, but the sibling names and the specificity of the description make the intended use clear.

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

list_articlesList articles
Read-onlyIdempotent
Inspect

Upforge's published articles, newest first, optionally matching a topic. Call get_article for the full text.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return (default 5, at most 20).
queryNoWhat the person is asking about, in a few words.
offsetNoStart at this result offset when browsing the archive.
match_capabilityCheck whether Upforge can help with a specific needA
Read-onlyIdempotent
Inspect

Describe a project, problem, or requirement in plain language and get back the Upforge services that fit, the relevant industry page, and a recommended next step. Use this for 'can they help me with ___', 'do they do ___', or 'I need ___ — are they a fit'. Prefer this over guessing from get_services when the question is about a specific need.

ParametersJSON Schema
NameRequiredDescriptionDefault
needYesThe need in the user's own words, e.g. 'we need a booking system for our dental practice' or 'our site is slow on mobile'.

TDQS

A4.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds context about the return shape (services, industry page, next step), which is useful but not a behavioral trait beyond what annotations provide. There is no contradiction, and the description does not mention side effects or auth needs, but those are not needed given the read-only nature.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action and result, followed by usage examples and a sibling preference note. Every sentence earns its place; no filler or redundancy.

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

Completeness5/5

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

For a single-parameter tool with full schema coverage and safety annotations, the description is complete. It describes what the tool returns (services, industry page, next step), which is essential given the lack of an output schema, and provides usage guidance. No critical information is missing.

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

Parameters3/5

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

The input schema already describes the 'need' parameter with examples ('we need a booking system...', 'our site is slow on mobile'), and schema coverage is 100%. The description's phrase 'in plain language' adds minimal extra meaning; it does not introduce format or constraints beyond the schema. Given the high coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: it matches a plain-language need to Upforge services, industry page, and next step. It explicitly differentiates from the sibling get_services by saying 'Prefer this over guessing from get_services when the question is about a specific need,' making its purpose distinct and unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit usage scenarios with example phrasings ('can they help me with ___', 'do they do ___', 'I need ___ — are they a fit') and names the alternative tool (get_services) with a clear condition for preference. This leaves no doubt about when to invoke this tool versus others.

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

prepare_review_uploadPrepare private project archive uploadAInspect

Only after the user confirms rights to submit and accepts the retention terms from get_review_requirements. Returns a direct Supabase upload URL. Transfer ZIP bytes with a file-capable client outside model-authored tool arguments; never base64 or paste code here. Keep the upload token private.

ParametersJSON Schema
NameRequiredDescriptionDefault
rights_to_submitYes
retention_acceptedYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, so the description is not contradicting. It adds behavioral context beyond annotations: the tool returns an upload URL and requires external byte transfer ('outside model-authored tool arguments'), which is crucial for an agent to understand side effects. It also ties the prerequisites to the workflow, which is useful. Minor gap: it doesn't state whether the token expires or what happens on failure, but the core behavior is disclosed.

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

Conciseness5/5

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

Four sentences, each earning its place: prerequisite, output, transfer method, and security note. No filler or redundancy. Information is front-loaded with the most critical constraint first. Highly efficient.

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 preparation tool with no output schema, the description covers prerequisites (rights and retention), the output (Supabase upload URL), the required transfer method (ZIP bytes via file-capable client), and a security caution (keep token private). The next step (finalize_review_upload) is a sibling and doesn't need to be described here. An agent has everything needed to invoke this correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does not explicitly map the two boolean parameters (rights_to_submit, retention_accepted) but the phrase 'Only after the user confirms rights to submit and accepts the retention terms' strongly implies these are the confirmations. The parameter names are self-explanatory, and the description adds workflow context but no direct syntax or validation rules. This is adequate but not comprehensive.

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 tool's purpose: preparing a private project archive upload by returning a direct Supabase upload URL. It is a specific verb+resource and distinguishes itself from the sibling finalize_review_upload by framing this as the preparation step. The phrase 'Only after the user confirms...' anchors it in the workflow, making it unambiguous.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance: 'Only after the user confirms rights to submit and accepts the retention terms from get_review_requirements.' It also gives a negative instruction ('never base64 or paste code here') and a security directive ('Keep the upload token private'). The alternative workflow (finalize) is implied through the sibling list but not explicitly named; still, the conditions for calling are fully specified.

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

request_consultationRequest a consultation or quoteAInspect

Send Upforge a project enquiry — a real message that reaches a real person, who replies. Use this to request a quote or ask something the other tools can't answer. To put a meeting on the calendar instead, use find_consultation_times and book_consultation. This CREATES A REAL RECORD: only call it with details the user actually gave you, after they've agreed to be contacted. Never fabricate contact details.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe user's own email address. Never guess this.
phoneYesThe user's phone number. Upforge's contact form requires one, so ask for it. Never guess this.
companyNoCompany name (optional).
messageYesWhat they need, in their own words. Include budget and timeline if known — it's what makes the first reply useful.
websiteNoTheir current site (optional).
lastNameYesUser's last name.
firstNameYesUser's first name.
serviceInterestNoService slug from get_services, if one clearly applies.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that this 'CREATES A REAL RECORD,' that a real person receives and replies to the message, and that it must only be called with user-provided details after consent. It also warns against fabricating contact details, which is critical behavioral context.

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

Conciseness5/5

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

The description is three sentences with no filler: purpose is front-loaded, alternatives are named, and critical safety warnings are prominent. Every sentence earns its place.

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

Completeness5/5

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

For a side-effecting tool with no output schema, the description covers the outcome (real message, real reply), the triggering conditions (agreement), and the constraints (no fabricated details). Combined with full schema coverage, an agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already fully documented. The description reinforces that contact details must come from the user, but adds little parameter-specific meaning beyond the schema. This meets the baseline of 3.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Send Upforge a project enquiry.' It clearly states the tool is for requesting a quote or asking something other tools can't answer, and explicitly distinguishes itself from the meeting-booking siblings.

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

Usage Guidelines5/5

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

The description gives clear when-to-use guidance ('request a quote or ask something the other tools can't answer') and names the exact alternatives for the calendar use case: find_consultation_times and book_consultation. This explains when not to use this tool as well.

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

request_site_auditRequest a free website auditAInspect

Request Upforge's free technical audit of a website. Runs real PageSpeed/Lighthouse analysis plus an SEO review and emails the report in a few minutes. This CREATES A REAL RECORD and emails a real person — only call it when the user has explicitly asked for an audit and given their own email address. Never invent an email address to call this.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the site to audit, including https://.
emailYesThe user's own email address — the report is sent here. Must be supplied by the user, never guessed.
goalsNoWhat they're hoping the audit will tell them.
phoneNoPhone number (optional).
companyNoCompany name.
lastNameNoUser's last name.
firstNameNoUser's first name.

TDQS

A4.7/5.0
Behavior5/5

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

The description explicitly discloses real-world side effects beyond the annotations: 'This CREATES A REAL RECORD and emails a real person.' This adds critical context that readOnlyHint=false and destructiveHint=false do not fully convey, warning the agent about irreversible or consequential actions.

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

Conciseness5/5

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

The description is compact and front-loaded, stating the core purpose in the first sentence, then adding the critical side-effect warning and usage constraint. Every sentence earns its place without redundant detail.

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

Completeness5/5

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

For a tool with no output schema and asynchronous behavior, the description fully covers what an agent needs to know: the action, the analysis performed, the delivery mechanism (email), and the expected time frame. It also covers the most important prerequisite (user's own email), making it complete for correct 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?

Schema coverage is 100% and the parameters are well-documented in the input schema. The description reinforces the email rule ('Must be supplied by the user, never guessed') but adds little beyond the schema's existing descriptions, so 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.

Purpose5/5

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

The description states a specific verb and resource: 'Request Upforge's free technical audit of a website' and clarifies the exact services rendered (PageSpeed/Lighthouse analysis, SEO review, emailing the report). This is unambiguous and easily distinguishable from the sibling tools like request_consultation or get_case_studies.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: 'only call it when the user has explicitly asked for an audit and given their own email address.' It also states a firm exclusion: 'Never invent an email address to call this.' This goes beyond vague context and gives the agent a clear decision rule.

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

search_faqSearch Upforge's FAQA
Read-onlyIdempotent
Inspect

Search Upforge's published answers to common questions — process, timelines, cost, ownership of the code, hosting, what happens after launch. Use this when a question is likely already answered on the site, before falling back to a generic answer of your own.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 5, max 25).
queryNoWhat to search for. Omit to list all questions.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds context about the authoritative source and the breadth of topics, but does not disclose behavior such as return format, pagination, or result ordering. It contributes modest extra context beyond the annotations.

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

Conciseness5/5

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

Two sentences, no filler. The action and scope are front-loaded, followed by concrete examples and a concise usage directive. 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 simple read-only search tool with two optional parameters, the description covers what is searched, what topics it addresses, and when to use it. The only minor gap is that it does not explicitly describe the shape of the returned data (e.g., snippets vs. full answers), but no output schema exists, so the description carries a somewhat heavier burden. Still, it is nearly sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'limit' and 'query' are already documented with meaningful descriptions. The tool description adds no parameter-specific semantics beyond restating the intent; the baseline of 3 applies because the schema carries the weight adequately.

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 ('Search') and a resource ('Upforge's published answers to common questions'), and it enumerates the content areas (process, timelines, cost, ownership, hosting, post-launch). This makes it unmistakably distinct from sibling tools like get_company_overview or get_services, which cover other content types.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'when a question is likely already answered on the site', and it gives a clear when-not by directing the agent to use it 'before falling back to a generic answer of your own'. It does not name specific sibling tools as alternatives, but the guidance is actionable and self-contained.

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

submit_project_reviewSubmit a project for a static fit checkA
Idempotent
Inspect

Creates one real CRM lead and review. Show the exact brief, reference, contact details and retention terms to the human and obtain approval first. Submission authorizes review only, never repairs, deployment or paid work. Mark all agent claims client-reported. Generate a UUID once for review_key, retain it privately, and reuse it unchanged on retries. Use either repository_url + full commit_hash or snapshot_id + upload_token. Never submit secrets or file bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman submitter's own name
briefYesGoals, stack, named workflows, known problems, and client-reported assertions, up to 8000 characters
emailYesHuman submitter's own email
review_keyYesPrivate UUID idempotency and status-access key, generated once
commit_hashNoFull 40- or 64-character commit hash
review_onlyYes
snapshot_idNoFrozen snapshot ID from finalize_review_upload
upload_tokenNoPrivate capability from prepare_review_upload
agent_identityYesStable name of the submitting coding agent
human_approvedYes
repository_urlNoHTTPS GitHub, GitLab, or Bitbucket repository URL
rights_to_submitYes

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the annotations. It discloses that the tool creates a real CRM lead (consistent with openWorldHint), mandates client-reported marking, specifies idempotency mechanics (UUID reuse), and prohibits secrets or file bytes. These are concrete behavioral details that annotations alone do not convey, with no contradictions.

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 tight, front-loaded paragraph with zero fluff. It states the primary action first, then prerequisites, scope constraints, idempotency, parameter alternatives, and safety rules in logical order. Every sentence carries essential information.

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

Completeness5/5

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

For a 12-parameter tool with 8 required fields and no output schema, the description covers the essential operational knowledge: what it does, approval requirement, idempotency key handling, source selection, and forbidden inputs. An agent can safely invoke it without additional lookup.

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 schema coverage at 75% (moderate), the description adds meaning by clarifying the mutually exclusive source groups (repository_url+commit_hash vs snapshot_id+upload_token) and the private nature of review_key. This helps an agent understand parameter relationships beyond the individual field 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 opens with 'Creates one real CRM lead and review,' a specific verb and resource that clearly states the tool's purpose. It distinguishes itself from sibling upload and status tools by explicitly framing this as the final submission step that creates a CRM record and review, not just an upload.

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 preconditions ('Show the exact brief... and obtain approval first') and parameter selection guidance ('Use either repository_url + full commit_hash or snapshot_id + upload_token'). While it doesn't explicitly name alternatives or state when not to use this tool, the context with sibling tools like prepare_review_upload and finalize_review_upload implies the workflow, and the preconditions effectively gate usage.

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. 2 tool updates
    • Addedget_article
    • Addedlist_articles
  2. 1 tool update
    • Addedask_echo
  3. 3 tool updates
    • Addedbook_consultation
    • Addedfind_consultation_times
    • Addedget_pricing
  4. 14 tool updates
    • First observedcheck_service_area
    • First observedfinalize_review_upload
    • First observedget_case_studies
    • First observedget_company_overview
    • First observedget_industries
    • First observedget_review_requirements
    • First observedget_review_status
    • First observedget_services
    • First observedmatch_capability
    • First observedprepare_review_upload
    • First observedrequest_consultation
    • First observedrequest_site_audit
    • First observedsearch_faq
    • First observedsubmit_project_review

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to request physical-world tasks such as 3D printing, CNC fabrication, assembly, measurement, testing, on-site verification, and receive-repack-ship services from a human operator, with fixed-price quotes, status tracking, and evidence packages.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources