Skip to main content
Glama
cexplayer01

dfwmetro-mcp

by cexplayer01

submit_listing

Submit a DFW service business to a verified directory for human review. Provide its booking URL, address, and license details so the desk can verify online booking and publish it.

Instructions

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.

Input Schema

TableJSON Schema
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

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.