Skip to main content
Glama

Upforge

Server Details

Explore Upforge services and evidence, or submit a prototype for a human-approved static fit check.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a clearly distinct concern: company info, services, industries, service area, case studies, FAQs, consultation, audit, and the multi-step review upload/submission flow. Even the review-related tools form a clear pipeline with distinct responsibilities.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern using familiar verbs like get_, request_, prepare_, finalize_, submit_, search_, check_, and match_. The naming is uniform and predictable across the entire set.

Tool Count5/5

At 14 tools, the server is well-scoped for its purpose: it covers company discovery, service matching, evidence, FAQs, real-world requests, and a review submission workflow. Each tool earns its place without unnecessary duplication or bloat.

Completeness5/5

The tool surface covers the full journey from learning about Upforge to matching capabilities, requesting consultations/audits, and submitting a project review with a secure upload flow. There are no obvious dead ends: requirements lead to preparation, preparation leads to finalization, and finalization feeds submission.

Available Tools

14 tools
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.

get_case_studiesGet portfolio case studies with outcomesA
Read-onlyIdempotent
Inspect

Real Upforge client projects with measured outcomes — traffic lift, conversion change, 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'. KPIs marked 'measured' come from live instrumentation, not estimates.

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

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds valuable context about the nature of the data (real projects, measured outcomes, live instrumentation) and what the results include (what was built, link to live site). It doesn't describe pagination or ordering, but the schema covers limit and category, so the description adds meaningful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core value proposition (real projects, measured outcomes), then usage examples, then a data-quality note. Every sentence earns its place with no fluff.

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

Completeness4/5

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

For a read-only list tool with two optional parameters and no output schema, the description is quite complete. It covers what the tool returns, the quality of the data, and when to use it. It doesn't mention ordering, pagination beyond the limit parameter, or whether results are sorted by relevance, but these are minor gaps given the simplicity of the 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 description coverage is 100%, so the schema already documents both parameters (limit and category). The description doesn't add much beyond the schema, but it does mention category examples in the schema itself. The description's mention of 'measured outcomes' and 'live site' gives context for what the results contain, but not much about parameter semantics. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns real client projects with measured outcomes, including specific metrics (traffic lift, conversion change, Lighthouse scores) and links to live sites. It distinguishes itself from siblings by focusing on portfolio proof with measured outcomes, which is unique among the listed 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 explicitly provides example use cases ('show me their work', 'do they have proof', 'have they built anything like mine'), which helps an agent decide when to invoke this tool. It also clarifies that KPIs marked 'measured' come from live instrumentation, not estimates, setting expectations for the data quality.

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_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.

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 book a consultation, request a quote, or ask something the other tools can't answer. 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.9/5.0
Behavior5/5

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

The description explicitly discloses the side effect: 'This CREATES A REAL RECORD'. It goes beyond annotations (openWorldHint true) to explain the real-world consequence and the requirement for user consent. It also notes that a real person replies, adding practical 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 zero filler. It front-loads the purpose, then the usage, then a critical warning. Every sentence earns its place, and the structure makes the tool's purpose and constraints immediately clear.

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 form-submission tool with side effects and 5 required params, the description covers the essential context: what the tool does, when to use it, and the critical safety constraint about real user data. It also implies the outcome (a real person replies), which addresses the lack of an output schema.

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 covers all parameters with descriptions (100% coverage), but the description adds meaningful param guidance: it emphasizes never guessing email/phone, advises including budget/timeline in the message, and notes the contact form requires a phone number. This adds value over the bare 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 specific verb-resource pair ('Send Upforge a project enquiry'), names the primary use cases (book consultation, request quote), and explicitly distinguishes it from other tools by saying 'ask something the other tools can't answer.' This clearly differentiates it from siblings like request_site_audit.

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

Usage Guidelines5/5

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

It gives explicit when-to-use conditions ('book a consultation, request a quote, or ask something the other tools can't answer') and a hard constraint ('only call it with details the user actually gave you, after they've agreed to be contacted'). It also warns against fabricating contact details, which is a clear usage boundary.

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. 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
    Provides source-backed design context, route card validation, contract generation, critique and verification reports, evidence packages, Penpot change plans, and anti-repeat checks for design workflows. Does not directly mutate Penpot, but consumes read-only Penpot snapshots.
    1 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local static inspection of MCP and AI-agent tool manifests before attachment, reporting findings and missing evidence without executing proposed tools. Results do not establish runtime safety.
    138 npm
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server for real FDM 3D-printing slicing, quoting, and design-for-manufacturability analysis via the FabTally API, supporting 12 printer profiles and 12 materials. Includes free discovery/printability tools and paid slice/quote/orientation tools settled via x402 (USDC on Base).
    6
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources