Skip to main content
Glama

dfwmetro.net directory

Server Details

Verified DFW home-services directory. AI agents submit listings and find bookable pros.

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
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
cexplayer01/dfwmetro-mcp
GitHub Stars
0
Server Listing
dfwmetro-mcp

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation3/5

find_listings and find_verified_listings overlap almost entirely: the latter is explicitly kept only for backward compatibility and is functionally equivalent to find_listings with verified_only:true. The descriptions do explain the difference well enough that an agent can choose correctly, but having two near-duplicate search tools is genuine ambiguity in the surface.

Naming Consistency5/5

All three tools follow a clear verb_noun snake_case pattern (find_listings, find_verified_listings, submit_listing), with the read/write split visible in the verb choice. The shared find_ prefix is consistent rather than confusing.

Tool Count3/5

Three tools is on the thin side, and because find_verified_listings is a deprecated alias of find_listings, the surface is effectively two operations. For a directory with both discovery and submission, this feels borderline minimal.

Completeness3/5

The surface covers search (filtered by verification) and submission, but there is no get_listing-by-id for detail lookup, no way to check or update a submitted listing's review status, and no tool for actually exercising the machine-booking capability endpoints that the results advertise. Agents doing anything beyond a single search-and-book flow will hit dead ends.

Available Tools

3 tools
find_listingsAInspect

Find service businesses in the dfwmetro.net directory for booking. Returns every listing with its verification status labeled: VERIFIED businesses (human verification-desk reviewed) rank first and carry machine-booking capability and endpoint health; NOT_YET_VERIFIED businesses are clearly labeled, ranked by automated pre-check score, and carry machine_ready:false. Pass verified_only:true for the strict VERIFIED-only shelf. This tool can never change verification status.

NameRequiredDescriptionDefault
cityNoDFW city filter, e.g. 'Plano'.
limitNoMax listings to return (1-50).
tradeNoCategory id from https://dfwmetro.net/categories.json, e.g. 'plumbing'. Legacy display labels ('Plumbing', 'Heating & Air Conditioning', 'Electrical') are also accepted and normalized.
subcategoryNoSubcategory label filter, e.g. 'Drain cleaning'.
verified_onlyNoTrue returns only VERIFIED listings (the strict premium shelf); false (default) returns all listings with verification status labeled, VERIFIED ranked first.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses the read-only guarantee ('can never change verification status'), the ordering behavior (VERIFIED ranked first, pending ranked last), and the machine_ready:false flag on unverified rows. It omits pagination, rate limits, and whether results are truncated by the default limit.

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?

Three sentences, front-loaded with the purpose, and each clause carries substantive information about ranking and labelling. It is somewhat redundant with the near-verbatim input-schema description, which costs a point.

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 and no annotations, the description compensates by explaining the shape of the response (verification labels, ranking order, machine_ready flags, endpoint health), which is exactly what an agent needs to interpret results. The read-only guarantee covers the missing safety annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters, including the verified_only default and the city/trade/limit semantics. The description restates the verified_only meaning but adds no syntax or format detail beyond the schema, so baseline 3 applies.

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 verb and resource ('Find service businesses in the dfwmetro.net directory for booking') and scopes it to a named directory. It does not name the sibling find_verified_listings, which overlaps heavily with the verified_only:true mode, so an agent must infer the boundary rather than being routed explicitly.

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?

It offers one actionable usage cue ('Pass verified_only:true for the strict VERIFIED-only shelf') and frames the intent as booking-related discovery, but never says when to choose this tool over find_verified_listings, whose purpose appears to be exactly that shelf.

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

find_verified_listingsAInspect

Find VERIFIED service businesses in the dfwmetro.net directory for booking. Only listings that passed human verification-desk review are returned — this tool can never surface unverified businesses and can never change verification status. Each result includes the business's booking_url plus machine-booking capability and endpoint health when known. Use booking_url for human-style booking flows; use capability endpoints only when present. Kept for backward compatibility; new integrations should prefer find_listings with verified_only:true.

NameRequiredDescriptionDefault
cityNoDFW city filter, e.g. 'Plano'.
limitNoMax listings to return (1-50).
tradeNoCategory id from https://dfwmetro.net/categories.json, e.g. 'plumbing'. Legacy display labels ('Plumbing', 'Heating & Air Conditioning', 'Electrical') are also accepted and normalized.
subcategoryNoSubcategory label filter, e.g. 'Drain cleaning'.
verified_onlyNoTrue returns only VERIFIED listings (the strict premium shelf); false (default) returns all listings with verification status labeled, VERIFIED ranked first.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose key traits: it is strictly read-only ('can never surface unverified businesses and can never change verification status') and it enumerates returned fields (booking_url, machine-booking capability, endpoint health). It omits auth requirements, rate limits, and pagination behavior, so it is strong but not exhaustive.

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 purpose is front-loaded in the first sentence, followed by behavior and then routing guidance, with no filler sentences. It is slightly dense across four sentences but each one carries distinct 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?

For a tool with no output schema and no annotations, the description covers what an agent needs: verified-only scope, immutability of verification status, and the shape of each result. It could say more about result volume or ordering, but nothing essential is missing.

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

Parameters3/5

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

Schema coverage is 100%, so all five parameters are already documented in the schema, and the description adds no syntax or format detail beyond the verified_only:true example for the sibling tool. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb+resource (find VERIFIED service businesses) and scopes it to the dfwmetro.net directory for booking. It explicitly distinguishes itself from the sibling find_listings by noting it is the legacy verified-only path, so an agent can tell the two apart without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit routing: 'new integrations should prefer find_listings with verified_only:true,' and tells the agent which field to use for which flow ('use booking_url for human-style booking flows; use capability endpoints only when present'). Both the when-to-use and the alternative are named.

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

submit_listingAInspect

Submit a DFW service business to the dfwmetro.net verified directory. The business MUST be genuinely online-bookable: booking_url must point at a real scheduling flow (date/time picker or booking widget) — quote forms, contact forms, phone-only, and login-gated flows fail verification. You do not need to categorize it yourself: describe what the business does in 'description' and the trade is assigned automatically (send 'trade' only if you are sure of the category id). Find the business's real street address BEFORE submitting — check its website (footer/contact page) or the JSON-LD LocalBusiness block on its site or booking page — and send it as 'street_address': it drives the exact map pin. When the trade requires a state license (plumbing, electrical, HVAC, personal & specialty services), also send 'license_number' (e.g. 'TACLA40925C', 'TECL 12345', 'M-12345') — the server pre-checks the format and the human desk verifies it against the state registry. You may also send 'starting_price_cents' (integer cents, e.g. 8500 = $85.00, shown publicly as 'from $X') and 'price_note' (short qualifier, e.g. 'per visit'). Accepted submissions start as NOT_YET_VERIFIED and pass human review before going live.

NameRequiredDescriptionDefault
dbaNoTrade/DBA name shown publicly. Defaults to legal_name.
cityYesDFW city, e.g. 'Plano'.
phoneNo
tradeNoOPTIONAL. Category id from https://dfwmetro.net/categories.json (e.g. 'plumbing', 'electrical', 'personal_specialty'). Pre-v2 ids (e.g. 'nail-salon') are accepted and stored as their v2 industry. If omitted, the server assigns the trade from your description — you do not need to get this right yourself.
websiteNo
zip_codeNo
legal_nameYesLegal business name.
price_noteNoOPTIONAL. Short qualifier shown next to the starting price, e.g. 'per visit', 'up to shoulder length'.
booking_urlYesREQUIRED. Direct URL of the business's real online scheduling flow (date/time picker or booking widget). Generic contact/quote forms, phone-only, and login-gated flows fail verification — do not submit them.
descriptionNoWhat the business DOES, in plain words (e.g. 'mobile piano tuning, in-home appointments'). Used to categorize the listing when trade is omitted, and shown to the verification desk. The more specific, the better the categorization.
service_areaNoDefaults to 'DFW'.
submitted_byNoAgent identifier, e.g. 'agent:my-booking-bot'. Defaults to 'agent:unknown'.
subcategoriesNoMust match the trade's subcategory labels in categories.json.
license_numberNoSTRONGLY RECOMMENDED when the trade requires a state license (plumbing, electrical, HVAC, personal & specialty services). The trade's license number, e.g. 'TACLA40925C' (HVAC), 'TECL 12345' (electrical), 'M-12345' (plumbing). The server checks the format against the Texas pattern; the human desk verifies it against the state registry before VERIFIED.
street_addressNoSTRONGLY RECOMMENDED. The business's real street address, e.g. '2818 Satsuma Drive'. Find it on the business's website (footer / contact page) or in the JSON-LD LocalBusiness block on its site or booking page BEFORE submitting. It drives the exact map pin; without it the listing gets only a city-level dot. Not required — submissions without it are still accepted.
years_in_businessNo
license_type_detailNoFree-text license detail, e.g. 'Master Plumber' or 'Class A ACR Contractor'. Shown to the verification desk alongside license_number.
starting_price_centsNoOPTIONAL. Starting price in cents, e.g. 8500 = $85.00. Shown publicly as 'from $X'. Omit when pricing varies too much to quote a starting point.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that submissions start as NOT_YET_VERIFIED, go through human review, that the server pre-checks license format, and that trade is auto-assigned. It omits what happens on duplicate submissions of the same business (idempotency) and any rate limits, which are real behavioral concerns for a write tool.

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

Conciseness4/5

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

Front-loaded with purpose and the hard requirement, then the optional-parameter guidance; every sentence is substantive. It is a single dense paragraph and re-states some schema-documented parameter rules near-verbatim, which is mild redundancy rather than waste.

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 an 18-parameter mutation tool with no annotations and no output schema, the description covers the verification lifecycle, the critical booking_url constraint, and the highest-value optional fields. It does not describe the response returned (submission id, status echo) or duplicate handling, which are the remaining gaps.

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

Parameters4/5

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

Schema coverage is 78%, so the schema already documents most fields. The description goes beyond it by explaining the concrete effect of key optional params — street_address 'drives the exact map pin,' starting_price_cents renders publicly as 'from $X', price_note is a qualifier, and it supplies real license_number examples per trade.

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

Purpose5/5

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

States a precise verb and resource ('Submit a DFW service business to the dfwmetro.net verified directory') and immediately scopes what counts as valid, making it unmistakable against the read-only find_verified_listings/find_listings siblings. An agent knows exactly what this tool does from the first clause.

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

Usage Guidelines5/5

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

Explicit when-to-use and what-disqualifies: booking_url must point at a real scheduling flow, and quote forms, contact forms, phone-only and login-gated flows 'fail verification.' It also gives the precondition sequence (find the real street address BEFORE submitting) and when license_number is expected, which is unusually actionable guidance.

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. 3 tool updates
    • First observedfind_listings
    • First observedfind_verified_listings
    • First observedsubmit_listing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    The owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Home Services MCP by HireNimbus lets AI agents find, compare, and book verified local pros for handyman, renovation, HVAC, plumbing, electrical, and landscaping jobs in supported US metro markets.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides verified local trade and service business data (e.g., radon mitigation, foundation repair) to AI agents via tools like search_providers and list_niches.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Country-agnostic MCP-callable directory for AI agents to find local SMBs — realtors, insurance agents, medical practitioners — by category, location, or natural-language query. Returns business catalog data and UTM-tagged booking URLs (zero PII).
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.