Skip to main content
Glama

Server Details

List on MLS, sell, show, compare and close your real estate property on beycome.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 13 of 14 tools scored. Lowest: 4/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct stage or action in the listing workflow: discovery, account, creation, questionnaire, and post-publish. There is no functional overlap—even pricing-adjacent tools like comps and estimate are clearly differentiated by their outputs.

Naming Consistency4/5

All tools share the 'beycome_' prefix and lowercase underscores, but some are verbs (submit_property_link) while others are nouns (comps, offers). This minor inconsistency does not impair readability or agent selection.

Tool Count5/5

14 tools cover the full lifecycle of a real estate listing without feeling bloated or sparse. Each tool has a clear role, making the set well-scoped for the domain.

Completeness4/5

Core CRUD and lifecycle operations are present, including discovery, sign-up, listing creation, and post-publish communication. Missing are tools for updating or deleting a live listing, but the main workflow is supported.

Available Tools

14 tools
beycome_check_coverageAInspect

Discovery stage — is this state served by beycome MLS? (GET /mls/is-covered).

No account or prop_id needed. Use before listing to confirm beycome operates in the property's state; is_active: true means covered. If not covered, the listing flow does not apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesState short code (e.g. FL) or full name (e.g. Florida).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Discloses no account or prop_id needed, specifies the endpoint, and indicates the return format with is_active: true meaning covered. Adequate given no 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?

Extremely concise, front-loaded with purpose, and every sentence adds value. No wasted words.

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 tool with one parameter and an output schema, the description covers key aspects: purpose, usage timing, and return value indicator. Missing some details but overall complete enough.

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 already describes the state parameter. The description repeats schema info without adding additional meaning, so 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's verb ('check coverage') and resource ('state served by beycome MLS'), and distinguishes it from siblings as a discovery stage tool.

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?

Explicitly advises 'Use before listing to confirm beycome operates in the property's state' and explains consequences (listing flow does not apply if not covered). Lacks explicit when-not-to-use, but context is sufficient.

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

beycome_compsAInspect

Discovery stage — sold comparable listings near a location (GET /comps).

No account or prop_id needed. Supports price / beds / baths / area / lot / type filters. Use during discovery to support pricing alongside beycome_estimate.

Slow endpoint: a cold query can take up to ~1 minute to respond — this is normal, you can always retry the call if it times out. Photo URL and listing-link fields are stripped from the records to keep the response small.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoNumber of result pages to fetch.
beds_maxNoMaximum beds.
beds_minNoMinimum beds.
locationYesLocation string (city, state, ZIP, etc.).
baths_maxNoMaximum baths.
baths_minNoMinimum baths.
price_maxNoMaximum price.
price_minNoMinimum price.
lot_size_maxNoMaximum lot size sqft.
lot_size_minNoMinimum lot size sqft.
property_typeNoComma-separated types (singlefamily, condo, townhouse, multifamily, manufactured, land, apartment).
living_area_maxNoMaximum living area sqft.
living_area_minNoMinimum living area sqft.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations provided, so description carries full burden. Discloses slow performance and retry guidance, as well as stripped fields. Does not mention destructive behavior, but it's a GET endpoint, so okay.

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?

Description is mostly concise, front-loaded with purpose, and provides necessary details. Some minor redundancy (e.g., 'during discovery' twice) but overall 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?

Given 13 parameters, 1 required, and presence of output schema, the description covers purpose, usage context, performance, data omissions, and references sibling tool. No major gaps.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions. Description adds a summary of filter categories but no extra meaning beyond what the schema provides. 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?

Description clearly states 'Discovery stage — sold comparable listings near a location (GET /comps)' and distinguishes from sibling 'beycome_estimate' by saying 'Use during discovery to support pricing alongside beycome_estimate'.

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?

Explicitly says 'Use during discovery to support pricing alongside beycome_estimate' and notes that no account or prop_id is needed. Also mentions retry behavior for slow endpoint. Does not explicitly exclude other use cases or alternatives, but context is clear.

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

beycome_estimateAInspect

Discovery stage — estimate a property's SALE value (beycome CMA + Zillow Zestimate).

No account or prop_id needed. Returns both estimates plus suggested pricing strategies (fast / balanced / max). Use during discovery to set a list price; pair with beycome_comps. For rental inquiries, use beycome_rental_estimate instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoOptional unit number (for example 101). Prefer embedding the unit in the address string as 'Apt 101' instead of using this field.
addressYesFull property address in the form 'Street, City, ST ZIP' (e.g. '6104 Timberly Rd S, Mobile, AL 36609'). ZIP is required for reliable results. Include any unit inside the address with a spelled-out designator, e.g. 'Apt 107' or 'Unit 107' — never '#107'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations provided, so description carries full burden. It states no account or prop_id needed, and returns both estimates plus pricing strategies. Lacks details on limitations or data freshness, but adequately discloses behavior for an estimation 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?

Three sentences, front-loaded with key information, no redundant or unnecessary words. Efficient and well-structured.

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 output schema exists, description efficiently covers return values (both estimates plus strategies), provides usage context, and fully documents parameters. No gaps for this tool's complexity.

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

Parameters4/5

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

Schema coverage is 100% with descriptions. Description adds value by providing an address format example and explaining unit handling preference (embedding in address string vs separate field), clarifying usage beyond 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 clearly states it estimates a property's sale value using beycome CMA and Zillow Zestimate. It specifies the resource (property), verb (estimate), and scope (sale value), and distinguishes from siblings like beycome_rental_estimate.

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?

Explicitly says when to use: during discovery to set a list price. Provides pairing with beycome_comps and directs rental inquiries to beycome_rental_estimate, offering clear when-not-to-use guidance.

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

beycome_get_my_listingsAInspect

Recovery stage — the signed-in user's properties (GET /properties).

Token-scoped RESO list endpoint on the normal api base. Two main uses:

  • After the user finishes the submit-property page (beycome_submit_property_link): find the newly created listing (typically the newest entry), CONFIRM the address with the user, then use its id as prop_id for beycome_questionnaire_link.

  • As the entry point for a returning user who already has listings (or references "my listing" without an id): locate the listing and read its status to pick the next step — paid but questionnaire pending → beycome_questionnaire_link; already live → the post-publish tools (beycome_messages, beycome_showings, beycome_offers).

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenYesBearer access token from beycome_signin_verify, or a previously saved token from your memory for this user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries full behavioral burden. It states it's a token-scoped RESO list endpoint, implying read-only listing. However, it does not disclose potential edge cases (e.g., empty list, invalid token, pagination) or side effects, leaving some behavior uncovered.

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?

Description is concise with front-loaded purpose and clear use cases. A slight lack of structure (block text instead of bullets) but every sentence adds value, with no redundant phrasing.

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 complex workflow with many sibling tools, the description fully orients the agent by detailing integration points (after submission, for returning users) and linking to downstream tools. Output schema exists to cover return details, so no gap.

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

Parameters5/5

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

The only parameter, access_token, is described with specific provenance (from beycome_signin_verify or saved token), adding critical context beyond the schema's description. This helps the agent correctly provide the token.

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?

Clearly states the tool retrieves the signed-in user's listings (GET /properties) and differentiates from siblings by specifying two main use cases: after property submission to find new listing, and for returning users to locate listings. This directly distinguishes it from tools like beycome_submit_property_link and beycome_questionnaire_link.

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

Usage Guidelines4/5

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

Provides explicit scenarios for when to use the tool (after submission, for returning users) and references sibling tools for next steps (questionnaire_link, messages, showings, offers). Lacks explicit when-not-to-use guidance, but the context is clear enough for appropriate selection.

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

beycome_messagesAInspect

Post-publish stage — read the owner's buyer/inquiry messages (GET /messages).

Read-only. Requires access_token. Two modes:

  • Omit thread → lists the ~20 most recent conversations, newest first, one row per thread (the latest message in each). Useful fields per row: address, prop_id, prop_status, msg (latest text), subject, requested_by / email (the other party), thread, read_msg ("0" = unread), attachments, and message_type (sender if the owner wrote the latest message, else receiver).

  • Pass thread → returns that one conversation in full, oldest-first. Use the thread value from a list row to drill in.

The list is not paginated here on purpose (the upstream page param is overloaded — it sets both page size and page number — so it is not exposed). Soft-deleted messages are dropped after paging, so a page may hold fewer than 20 rows; that is not an error. The payload is a bare array under data.

A 401 means the token is no longer valid (logged out, or very old) — re-authenticate with beycome_signin_start then beycome_signin_verify. To answer a message, use beycome_reply_message.

ParametersJSON Schema
NameRequiredDescriptionDefault
threadNoThread id to open one full conversation (the ``thread`` value from a list row). Omit to list the user's recent conversations.
access_tokenYesBearer access token from beycome_signin_verify, or a previously saved token from your memory for this user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

No annotations provided, so description covers all behavioral aspects: read-only, token requirement, list non-pagination rationale, soft-deleted message behavior, response structure (bare array under `data`), and 401 error handling. Very transparent.

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 fairly long but well-structured, front-loading the main purpose. It includes some minor extraneous detail (e.g., field list), but these are helpful for the agent. Could be slightly more concise but still 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?

Despite having an output schema, the description covers return structure, error handling, authentication flow, and links to sibling tools. The agent has all necessary context to use the tool 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?

Schema coverage is 100%, baseline 3. Description adds value by explaining the effect of omitting vs passing `thread`, the source of `access_token`, and the fields in list rows. This goes beyond the schema's basic 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 clearly states the tool reads owner's buyer/inquiry messages (GET /messages). It distinguishes two modes (list vs thread) and differentiates from sibling tool `beycome_reply_message` for replying. The verb 'read' and resource 'messages' are specific 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?

Explicitly explains when to omit or pass `thread`, and directs users to `beycome_reply_message` for answering messages. Also guides re-authentication on 401. Provides clear context for using this tool over alternatives.

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

beycome_offersAInspect

Post-publish stage — offers received on the owner's listings (GET /offers).

Used once a listing is live. Requires access_token. Returns a paginated list (20 per page; pass page to advance) of every offer across all of the signed-in user's listings — each entry is the full offer record (buyer, price, contingencies, dates, status). Read-only.

There is no server-side prop_id filter; to show offers for one listing, filter client-side on each offer's prop_id. Responding to an offer (accept / reject / counter) is not exposed here.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number of the paginated offers list (defaults to page 1).
access_tokenYesBearer access token from beycome_signin_verify, or a previously saved token from your memory for this user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: read-only, paginated (20 per page), returns full offer records, no server-side filter, and no response actions. 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.

Conciseness4/5

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

The description is detailed but each sentence contributes useful information. It is front-loaded with the core purpose and structured logically. Minor redundancy could be trimmed, but overall effective.

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 output schema exists, the description adequately covers usage context, pagination, filtering limitations, and what is not included. It is complete for a tool with only two parameters.

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%, but the description adds value by explaining how page is used (paginated list, 20 per page) and the purpose of access_token. It goes beyond the basic schema definitions.

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

Purpose5/5

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

The description clearly states the tool is for retrieving offers on the owner's listings post-publish, specifying the HTTP method and endpoint. It distinguishes from siblings by emphasizing its post-publish stage and read-only nature.

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

Usage Guidelines4/5

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

Provides clear context: used once a listing is live, requires access_token, pagination details, and lack of server-side prop_id filter. It implicitly suggests when to use (post-publish) and notes that responding to offers is not exposed, though explicit when-not-to-use is missing.

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

beycome_rental_estimateAInspect

Discovery stage — estimate a property's monthly RENT (POST /gemini-estimate).

No account or prop_id needed. Pairs with beycome_estimate, but this tool is SPECIFICALLY for rental estimates: use it ONLY for rental inquiries or for properties that have a unit number. For sale-price estimates, use beycome_estimate.

Returns rentEstimate (e.g. "$2,600"), rentEstimateRange (e.g. "$2,400 - $2,800"), and the sources the figure was grounded on (source URLs are stripped to keep the response small).

Caveat: an unrecognized address still returns success: true with a generic market-average rent — check that the source titles actually reference the property's address/city before trusting the number; if they don't, treat the result as unavailable and ask the user to verify the address.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoOptional unit number (for example 304).
addressYesFull property address in the form 'Street, City, ST ZIP' (e.g. '501 SW 1st St, Miami, FL 33130'). ZIP is required for reliable results.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

The description discloses important behavioral traits: no account or prop_id needed, the tool returns `rentEstimate`, `rentEstimateRange`, and `sources` with URLs stripped. It also warns that an unrecognized address returns `success: true` with a generic market-average rent, and advises checking source titles before trusting the number.

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, well-structured with line breaks, and front-loads the core purpose and usage. Every sentence adds necessary information, and there is no repetition or 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?

Given the presence of an output schema, the description sufficiently explains the return values and adds the critical caveat about address recognition. However, it does not cover error conditions other than the unrecognized address case, leaving a minor gap.

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 100% description coverage, so the schema already documents the parameters. The description adds value by reinforcing that no account or prop_id is needed and that the tool is appropriate for addresses with a unit number. However, it does not add significant new syntax details beyond 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 clearly states the tool estimates monthly rent for a property, using the verb 'estimate' and the resource 'monthly RENT'. It explicitly distinguishes itself from the sibling `beycome_estimate` by specifying it is for rental inquiries or properties with a unit number, while `beycome_estimate` is for sale-price estimates.

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 usage guidelines: use this tool ONLY for rental inquiries or properties with a unit number, and for sale-price estimates use `beycome_estimate`. It also includes a caveat about how to handle unrecognized addresses, guiding the agent on when the result may not be trustworthy.

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

beycome_reply_messageAInspect

Post-publish stage — reply to a buyer/inquiry message (POST /messages/reply).

Sends a real message and queues a real email notification to the recipient, so the text you send is final — treat this as a live send, not a draft.

ALWAYS improve the user's drafted reply before sending: fix grammar, spelling, punctuation, capitalization, and formatting, and tighten wording for a clear, professional tone — while preserving their meaning and intent. Send the corrected version, never the raw draft. When the user says "reply saying X", treat X as a rough draft to polish, not literal text to send verbatim.

Requires to_user_id (the counterparty), message, and access_token. For a threaded reply pass the original thread verbatim and omit subject (the server prefixes "Re: "). To find to_user_id, open the conversation with beycome_messages and take the participant id that is not the signed-in owner.

Success is 201 with data.id set to the new message id. Failures come back as 400 with a plain message: "User not found." (bad to_user_id), "You cannot send a message to yourself." (to_user_id is the sender), or "Invalid parameters" (e.g. empty/over-long message). A 401 means the token is no longer valid — re-authenticate with beycome_signin_start then beycome_signin_verify.

ParametersJSON Schema
NameRequiredDescriptionDefault
threadNoThread id from the original conversation (a `beycome_messages` row's ``thread``). Pass it verbatim to keep the reply stitched to the thread.
messageYesThe reply text to send (max 5000 chars).
subjectNoOptional subject (max 255). Omit on a thread reply — the server derives "Re: <original subject>".
to_user_idYesRecipient's beycome user id — the counterparty in the thread (the ``fromuser``/``touser`` from a `beycome_messages` row that is NOT the signed-in owner). Cannot be the sender's own id.
access_tokenYesBearer access token from beycome_signin_verify, or a previously saved token from your memory for this user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

No annotations exist, so description carries full burden. It fully discloses that sends are final (live send), queues email notifications, and that the tool automatically corrects the user's draft before sending. Lists all error responses with causes and status codes.

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?

Long but well-structured: starts with purpose, then behavioral caveat, then instruction to improve draft, then parameter hints, then error handling. Every sentence is informative; no fluff. Could be slightly more concise but still effective.

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 5 parameters, no annotations, and an output schema (not shown but referenced), the description covers all necessary context: input derivation from sibling tool, success response shape, and full error mapping. Complete for a mutation tool.

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% with good parameter descriptions. Description adds extra value: clarifies thread usage, advises on subject omission, explains how to derive to_user_id, and specifies access token source. Goes beyond 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 clearly states the tool replies to buyer/inquiry messages via POST /messages/reply, distinguishing it from siblings like beycome_messages which list conversations. It specifies the stage (post-publish) and action (sends real message and queues notification).

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

Usage Guidelines4/5

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

Provides explicit guidance: use for threaded replies (pass thread verbatim, omit subject), how to find to_user_id via beycome_messages, and always improve the drafted reply. Lacks explicit when-not-to-use, but context from siblings makes it clear.

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

beycome_showingsAInspect

Post-publish stage — calendar of showings, open houses, and offer deadlines (GET /calendar/events).

Used once a listing is live. The API requires the date range, so it defaults to today → +90 days when omitted (from_date / to_date are YYYY-MM-DD, with to_date on or after from_date). prop_id filters to one listing; omit it for every listing the user owns.

The response always mixes ALL event kinds — each event carries a type field (showing / open_house / offer). There is no server-side type filter; when the user asks for one kind, filter on that field yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
prop_idNoOptional — filter events to one property id; omit for all listings.
to_dateNoEnd of the calendar range (YYYY-MM-DD). Defaults to 90 days from today.
from_dateNoStart of the calendar range (YYYY-MM-DD). Defaults to today.
access_tokenYesBearer access token from beycome_signin_verify, or a previously saved token from your memory for this user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description discloses key behaviors: response mixes all event kinds with a type field, no server-side type filter, and default date range applied. Could mention authentication details, but access_token is in schema.

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?

Description is a single paragraph with clear, logical flow. No wasted words, but slight redundancy (e.g., 'Used once a listing is live' and later 'prop_id filters to one listing...'). Still effective and 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?

Given an output schema exists, the description adequately covers behavior (mixed types, defaults). No mention of error handling or rate limits, but these are often out of scope. Sufficient for a list-style tool with good schema coverage.

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%, baseline 3. Description adds meaning beyond schema: explains default values, format (YYYY-MM-DD), constraint (to_date on or after from_date), and prop_id filtering behavior. This enhances parameter understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves a calendar of showings, open houses, and offer deadlines via GET /calendar/events, using a specific verb and resource. It distinguishes from siblings like beycome_offers by noting it returns all event types.

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

Usage Guidelines5/5

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

Provides explicit usage context: 'Used once a listing is live.' Explains default date range behavior (today to +90 days) and when to omit prop_id for all listings. Advises client-side filtering when user asks for one event kind.

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

beycome_signin_startAInspect

Account stage — send a one-time sign-in code (POST /auth/check-email).

beycome is passwordless — never ask the user for a password. This emails the user a 6-digit code (a second, different code also goes out by SMS; either one works). Ask the user for the code they received, then exchange it for the access_token with beycome_signin_verify.

Read the response body, not the HTTP status — the envelope's ok mirrors the HTTP status, and auth failures here still return 2xx. Always check data.success:

  • success: true (201, "Email sent") — code sent; ask the user for it.

  • success: false with "Email not found." (HTTP 200, ok: true) — no account for this email; run beycome_signup instead (signup also sends a code).

  • HTTP 422 (ok: false) — the email matched a secondary address; the body still matters: it hints the masked primary login email to use instead.

Codes stay valid for 30 minutes. Re-running this tool sends a fresh code and invalidates the old one. Rate-limited (5/min and 100/day per email) — never call it in a loop or as an automatic retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesUser email address.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: passwordless authentication, 6-digit code sent via email and SMS, 30-minute validity, re-invalidation on re-run, and HTTP response nuances (e.g., 2xx on auth failures). This exceeds typical transparency.

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 well-structured with the action stated first, followed by key behavioral notes and response handling. It is longer but every sentence adds value; minor redundancy could be trimmed but overall it is efficient for the complexity.

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 (multiple response cases, rate limits, code expiration) and the presence of an output schema, the description fully explains the behavior, response interpretation, and error handling. An agent can correctly invoke and handle this tool without additional information.

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 only parameter 'email' is already described in the schema as 'User email address.' The description adds behavioral context (email is used to send a code and check existence) but does not add new technical constraints or format details beyond the schema. Schema coverage is 100%, so 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 explicitly states 'send a one-time sign-in code' and identifies the endpoint. It distinguishes this tool from 'beycome_signin_verify' which exchanges the code for a token, making the purpose clear and unique among 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 provides detailed when-to-use and when-not-to-use guidance: use for starting sign-in, if email not found use signup instead, and outlines steps based on response. It also mentions rate limits, explicitly warning against looping or automatic retries.

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

beycome_signin_verifyAInspect

Account stage — exchange the one-time code for the access_token (POST /auth/validate-code).

The gateway to the listing flow. Call after beycome_signin_start or beycome_signup (both send the code) with the 6-digit code the user received. On success the Bearer token is at data.data.access_token (expires_in gives its lifetime in seconds — tokens are long-lived, so mid-session expiry is rare). Pass it as access_token to every authenticated tool: beycome_submit_property_link, beycome_get_my_listings, beycome_questionnaire_link, beycome_offers, beycome_showings, beycome_messages, and beycome_reply_message.

IMPORTANT — persist the token: save the access_token to your long-term memory/context (and tell the user you have done so). Save it together with the account email, which disambiguates multi-account users and lets you match the right token to the right person. In future sessions, scheduled tasks, and crons, reuse the saved token instead of asking the user to sign in again — that is what makes autonomous workflows (e.g. "check my messages every morning") possible. Before signing a user in, check your memory for an existing token for that email and try it first; only restart the sign-in flow on a 401.

The next step depends on where the user is:

  • No listing yet → beycome_submit_property_link to create one.

  • Has a listing already (or unsure) → beycome_get_my_listings to find it; if it is paid but the MLS questionnaire is not submitted, follow with beycome_questionnaire_link.

  • Listing already live → skip straight to the post-publish tools (beycome_messages, beycome_showings, beycome_offers).

A wrong or expired code returns HTTP 200 with success: false and "Invalid code." — check data.success, not the envelope's ok. Codes expire after 30 minutes; if expired, request a fresh one with beycome_signin_start (don't retry blindly — sends are rate-limited).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit one-time code the user received by email or SMS.
emailYesUser email address.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations provided, so description carries full burden. Discloses key behaviors: token long-lived, response success field is data.success, code expires in 30 minutes, and imperative to persist token. Lacks explicit statement about side effects but given authentication context, it's adequate.

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?

Description is relatively long but well-organized with clear sections. Front-loaded with core purpose and followed by usage details. Every sentence adds value; no filler.

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 output schema exists, description properly explains return fields (access_token, expires_in) and error handling. Also covers token persistence, multi-account disambiguation, and session reuse. Thoroughly completes the context for the tool's role in the authentication flow.

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%, baseline 3. Description adds meaning by specifying code is 6-digit and obtained via email/SMS, and mentions 30-minute expiry, which is valuable context beyond the schema fields.

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?

Clearly states the tool exchanges a one-time code for an access token, and positions it as the gateway to the listing flow. Distinguishes from siblings like beycome_signin_start and beycome_signup by specifying it is called after those.

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?

Explicitly says when to call (after signin_start or signup), what input to provide (6-digit code), and how to handle errors (wrong/expired code). Gives detailed next steps based on user state and warns about rate limits on retries.

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

beycome_signupAInspect

Account stage — register a new beycome user (POST /auth/register).

Use when the owner has no account yet. beycome is passwordless: registering automatically emails the user a 6-digit sign-in code, so the next step is beycome_signin_verify with that code — do NOT call beycome_signin_start after signup, the code is already on its way. If the email is already registered, this still just sends a sign-in code (signup doubles as signin-start). Requires firstname and phone; validation errors come back as HTTP 400 with an errors array. No prop_id needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesUser email address.
phoneYesUser phone number.
is_ownerNo1 if the user is a landlord/owner, 0 otherwise.
lastnameNoUser last name.
firstnameYesUser first name.
company_nameNoCompany name.
sms_unsubscribeNoSMS opt-in flag: 0 = opt-in, 1 = opt-out.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that registration sends a sign-in code automatically, doubles as signin-start if email exists, and returns validation errors. Lacks mention of rate limits or authentication needs, but sufficient for a registration 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?

Concise and well-structured single paragraph. Front-loaded with purpose, each sentence adds value without fluff.

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?

Comprehensive for a signup tool: explains the full flow, error handling, sibling differentiation, and edge cases. Output schema exists, so return values are covered.

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 baseline is 3. Description adds minor value by noting required params (firstname, phone) and stating 'No prop_id needed,' but does not elaborate on each parameter beyond 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?

Clearly states it registers a new user via POST /auth/register. Distinguishes from siblings by explicitly saying not to call beycome_signin_start after signup.

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?

Explicitly says 'Use when the owner has no account yet.' Provides step-by-step flow: email code sent, next step is beycome_signin_verify, and warns against calling beycome_signin_start. Also covers edge case where email already registered.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides real estate data from homes.com via a browser session, enabling property search, details, history, and affordability calculations through natural language.
    21
    341
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Live real estate market data for 895 US metros. Ask your AI assistant about home prices, rental yields, investment health scores, migration trends, and affordability. Free tier covers top 50 markets (no account needed). Premium tier unlocks all 895 markets, HUD Fair Market Rents, side-by-side market comparison, and filtered market search.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching curated OneHome property listings, fetching property details and photos, comparing homes, and running mortgage calculations from within Claude.
    21
    304
    1
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources