Skip to main content
Glama

SPACEXPLORATION

Server Details

Search commercial real estate listings. Reads need no token; authoring is self-serve OAuth (DCR).

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.4/5 across 15 of 15 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: listing CRUD, attachment upload workflow, search with interpret, geocoding, saved searches, and registry retrieval. No two tools overlap significantly; even the upload-related tools (sign, confirm, attach) are sequential and distinct.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create_listing, get_registry, search_listings). The naming is predictable and clear, with no mixing of conventions.

Tool Count5/5

With 15 tools, the server covers the core functionalities of a commercial real estate listing system without being bloated. Each tool serves a necessary role, and the count feels well-scoped for the domain.

Completeness2/5

The tool set is missing critical lifecycle operations: there is no way to delete or archive a listing, nor any tool to publish/unpublish a listing. This leaves an obvious gap in the basic CRUD workflow, which will cause agent failures when users need to remove or finalize listings.

Available Tools

20 tools
attach_listing_photoAttach Listing Photo ToolAInspect

Attach a photo to a listing you own directly from its public URL — one call, no separate sign/upload/confirm. The server fetches the image and ingests it with auto-generated thumbnail/hero/full variants. Only https image URLs whose host is publicly routable are accepted. The photo is content-moderated (must be real-estate related and safe) before it can appear publicly — the returned snapshot includes the moderation_status (approved / rejected / escalated) and moderation_reason. A rejected or escalated photo will not be publicly visible and will block publishing until removed or replaced.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesHashid of the listing to attach the photo to.
source_urlYesPublic https URL of the image to fetch and attach. Must point directly at an image (jpeg, png, webp, gif, avif, heic/heif) on a publicly-routable host.
Behavior5/5

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

Even without annotations, the description thoroughly discloses behavioral traits: server-fetched image, auto-generated variants, content moderation, acceptance criteria (https, publicly routable host), and moderation effects (rejected photos block publishing).

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 (4 sentences), front-loaded with the essential purpose, and every sentence provides distinct value without 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?

Given the tool's complexity (single-step, moderation, constraints), the description covers all key aspects—fetching, ingestion, variants, moderation, and visibility impact—even without an output schema, it explains the returned snapshot fields.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are documented. The description adds meaningful context beyond schema, such as accepted image formats and the requirement for publicly routable hosts for source_url.

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 attaches a photo to a listing from a public URL in one call, distinguishing it from sibling tools like 'sign_attachment_upload' and 'confirm_attachment_upload' by noting no separate sign/upload/confirm steps.

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 explains when to use this tool (direct URL attachment) and implicitly contrasts with multipart upload flows, but does not explicitly name alternative tools or provide 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.

confirm_attachment_uploadConfirm Attachment Upload ToolAInspect

Finalize an out-of-band upload after the file bytes have been PUT to the presigned URL. Verifies the stored object matches what was signed (size and content-type) and marks the attachment ready. Returns the attachment snapshot with its public variant URLs. Idempotent: confirming an already-confirmed upload returns the same snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachment_idYesThe attachment_id (ULID) returned by sign_attachment_upload. Confirm only after the file bytes have been successfully PUT to the presigned URL.
Behavior4/5

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

With no annotations, the description discloses verification of size and content-type, marking attachment ready, return of snapshot with URLs, and idempotency. Missing error behavior for mismatches, but overall 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?

Three sentences, no redundant words, front-loaded with key action. Every sentence adds 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?

Given one parameter and no output schema, the description covers purpose, usage timing, verification behavior, return content, and idempotency. Complete for this simple 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%, baseline 3. Description adds value by specifying the parameter comes from sign_attachment_upload and should be used only after successful PUT, which goes beyond the schema's description.

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: finalize an out-of-band upload after PUTting bytes to a presigned URL. It specifies the verb 'finalize' and the resource 'attachment upload', and distinguishes from the sibling 'sign_attachment_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?

Explicitly states when to use this tool (after PUT to presigned URL) and notes idempotency. Does not explicitly mention alternatives or when not to use, but the context is sufficient given sibling tools.

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

create_listingCreate Listing ToolAInspect

Create a new draft listing. Returns the full created listing exactly as stored, including its hashid and status. Pass an idempotency_key (any client-generated string, e.g. a UUID) to make the call safe to retry — re-sending the same key returns the original listing instead of creating a duplicate.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity.
unitNoUnit or suite number, if applicable.
stateYesState (2-letter abbreviation).
countyYesCounty.
latitudeYesLatitude coordinate.
place_idNoPlace ID from geocoder.
longitudeYesLongitude coordinate.
postal_codeYesZIP/postal code.
listing_typeYesListing type: sale or lease.
property_typeYesProperty type. Allowed values are listed under the property_type attribute returned by get_registry (e.g. industrial, office, retail, land).
street_addressYesStreet address of the property.
idempotency_keyNoOptional client-generated key (e.g. a UUID) making this create safe to retry: re-sending the same key within 24 hours returns the originally created listing instead of a duplicate.
formatted_addressNoFull formatted address string from geocoder.
Behavior3/5

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

With no annotations, the description carries the full burden. It states the tool returns the full listing and is idempotent with a key, but lacks details on error handling, permissions, or side effects.

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, front-loaded with purpose. No redundant information; every sentence adds value.

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?

Despite no output schema, the description covers the return format. It addresses idempotency but omits error conditions and authorization needs. For a 13-parameter tool, it is reasonably complete.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-documented. The description adds value by explaining the idempotency_key parameter and stating the return value includes hashid and status, going 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 creates a new draft listing, specifying the action and resource. It differentiates from sibling tools like update_listing and get_listing by focusing on creation.

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 guidance on when to use the idempotency key for safe retries, but does not explicitly state when not to use the tool or how it relates to other tools like update_listing.

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

delete_attachmentDelete Attachment ToolA
Destructive
Inspect

Delete an attachment you own by its ULID. Soft-deletes the row so it no longer appears on the listing. Use this to clean up an abandoned upload (one you signed but never finished) or a photo you no longer want. Idempotent: deleting an already-deleted attachment succeeds.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachment_idYesThe attachment_id (ULID) of the attachment to delete, as returned by sign_attachment_upload / confirm_attachment_upload or listed in get_listing.
Behavior5/5

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

Beyond destructiveHint=true, the description discloses soft-delete behavior (row no longer appears on listing) and idempotency (deleting already-deleted succeeds). This adds meaningful context about consequences and edge-case 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?

Four sentences, each purposeful: operation, soft-delete behavior, use cases, and idempotency. The description is front-loaded with the core action and wastes no words.

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 simple single-parameter deletion tool with no output schema, the description covers purpose, usage, behavior, and edge cases (idempotency). An agent has all needed context to invoke it correctly.

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

Parameters3/5

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

Schema description already covers the parameter thoroughly (ULID and source). The description adds no new meaning beyond 'by its ULID', so baseline 3 applies due to high schema coverage.

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 deletes an attachment by ULID, using a specific verb and resource. It distinguishes from sibling delete_saved_search by targeting attachments and adds ownership scope.

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 identifies use cases: cleaning up an abandoned upload or an unwanted photo. No alternatives are named because none exist, but the context is clear, so a 4 is appropriate.

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

geocode_addressGeocode Address ToolA
Read-only
Inspect

Geocode a free-form US address into coordinates and structured components (street_address, city, county, state, postal_code) plus a formatted address and place_id — exactly the identity fields create_listing requires. Use this first, then pass the result straight into create_listing instead of supplying your own coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesFree-form address to geocode, e.g. "3763 Imperial St, Frederick, CO 80516".
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds useful behavioral context about output structure and integration with create_listing. Does not mention potential failure cases but overall helpful.

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, each earning its place: first defines purpose, second adds usage guidance. No wasted words, 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 simple one-parameter, read-only tool with no output schema, the description covers purpose, output components, and usage workflow. Sufficient for agent decision-making.

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 an example in the parameter description. The tool description does not add additional semantic value beyond what the schema already provides.

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 the verb 'geocode' and resource 'free-form US address', listing specific output components and tying it to the sibling tool create_listing. No ambiguity.

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

Usage Guidelines5/5

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

Explicitly instructs to use this tool first before create_listing, and to avoid supplying own coordinates, providing clear when-to-use and 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.

get_listingGet Listing ToolA
Read-only
Inspect

Retrieve the full details of a single listing by its hashid. Returns the complete ListingResource projection including parcel data, all attribute details, and attachments. Broker contact is included only when the requesting user is authorised.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesThe short hashid of the listing (e.g. "a1b2c3d4"). Found in listing URLs and search hits.
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds value by disclosing that broker contact is included only when authorized, providing additional 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?

Two sentences with no wasted words. Purpose is front-loaded, and essential information is provided efficiently.

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?

No output schema exists, but description sufficiently describes return shape (ListingResource projection with parcel data, attributes, attachments) and conditional behavior. Adequate for a single get operation.

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 has 100% description coverage for the only parameter (hashid), including format and source. Description does not add extra meaning beyond the schema, 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?

Description clearly states retrieves full details of a single listing by hashid, listing specific returned data (parcel data, attributes, attachments) and a conditional element (broker contact). This is specific and distinguishes from sibling tools like search_listings or create_listing.

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?

Clearly states when to use (get full details by hashid). Does not explicitly mention when not to use alternatives, but the context of sibling tools implies it is for single listing retrieval. Could be improved with explicit exclusions.

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

get_publish_statusGet Publish Status ToolA
Read-only
Inspect

Get the status of your listing publishes. Pass a listing hashid for the detailed status of that listing's latest publish run — overall state (pending/running/completed/failed), current phase, per-step progress, and any failure reason. Omit the hashid to list your recent publish runs across all your listings. Use this to track a publish_listing call to completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidNoOptional. Hashid of a listing to get its latest publish run in detail. Omit to list your recent publish runs across all your listings.
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds valuable context about the tool's behavior: detailed status includes overall state (pending/running/completed/failed), current phase, per-step progress, and failure reason. It also clarifies the dual mode (detail vs. list) beyond the schema. No contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with the primary purpose, followed by concise explanations of both invocation modes and the usage context. Every sentence contributes useful information, with no fluff or repetition.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, no output schema, read-only annotation), the description is complete. It explains both modes, the kind of data returned (state, phase, progress, failure reason), and when to use it. No critical 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 description coverage is 100%, and the schema already explains the hashid parameter (optional, used for detailed status, omit for listing recent runs). The tool description essentially restates this, adding no new parameter meaning 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's purpose: 'Get the status of your listing publishes.' It specifies two modes (with and without a hashid) and what each mode returns. This distinguishes it from siblings like publish_listing and get_listing.

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 usage guidance: 'Use this to track a publish_listing call to completion.' It names the related sibling tool (publish_listing) and indicates the intended scenario, though it does not explicitly list when-not-to-use alternatives.

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

get_registryGet Registry ToolA
Read-only
Inspect

Returns the full attribute registry — every searchable and filterable field, its type, allowed values, and display label. Read this first to understand the schema before calling search_listings with attribute filters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

The description clearly states it's a read operation that returns registry data. It goes beyond the annotation (readOnlyHint) by detailing the content (fields, types, allowed values, labels), which adds useful 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?

Two sentences, front-loaded with the core purpose. Every sentence earns its place with no redundant 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?

Given no parameters and no output schema, the description is complete. It explains what the tool returns and provides the use case (prerequisite for search_listings), fitting well within the toolset.

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?

There are no parameters, so baseline is 4. The description doesn't need to add parameter info; the tool's purpose is fully conveyed without them.

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 ('Returns') and identifies the resource ('the full attribute registry') with details on what it contains (fields, types, allowed values, display label). It distinguishes itself from siblings by stating it's the schema to read before using search_listings with filters.

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 tells when to use: 'Read this first to understand the schema before calling search_listings with attribute filters.' This provides clear context and guidance, effectively directing the agent's workflow.

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

list_my_listingsList My Listings ToolA
Read-only
Inspect

List all listings owned or brokered by the authenticated user. Optionally filter by status. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by listing status. One of: draft, pending_payment, active, suspended, sold, leased, withdrawn. Omit to return all statuses.
Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description adds behavioral context by specifying authentication needs and the scope (owned/brokered). This goes beyond the annotation, but lacks details like response format or pagination.

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 purpose, and no unnecessary words. It efficiently covers scope, filter option, and auth requirement.

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's low complexity (single optional param, no output schema, read-only), the description covers key aspects: scope, auth, filter. It could mention return format or pagination, but it's reasonably complete for a simple listing 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 coverage is 100% with the status parameter fully described including allowed values. The description only repeats that filtering is optional, adding no new meaning 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 lists listings owned or brokered by the authenticated user, using specific verbs and resource. This distinguishes it from sibling tools like search_listings, which is for broader queries.

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 specifies authentication is required and that filtering by status is optional, providing clear context for usage. However, it does not explicitly mention when not to use this tool or suggest alternatives like search_listings for non-user listings.

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

list_my_saved_searchesList My Saved Searches ToolA
Read-only
Inspect

List the authenticated user's saved searches, including their filters and alert schedule. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already set readOnlyHint=true. The description adds that the operation requires authentication and includes details about the response (filters and alert schedule), providing additional 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 two sentences, no wasted words. The purpose is front-loaded: 'List the authenticated user's saved searches' immediately conveys the action.

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 no parameters and annotations covering read-only, the description is complete for a list tool. It could mention pagination or ordering, but the core functionality is well-covered.

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 zero parameters and 100% schema coverage, the baseline is 4. The description adds meaning by specifying that the output includes filters and alert schedule, compensating for no output 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 lists the authenticated user's saved searches, including filters and alert schedule. It uses the specific verb 'List' and resource 'saved searches', distinguishing it from sibling tools like 'save_search' (create) and 'delete_saved_search' (delete).

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 mentions requires authentication, a clear prerequisite. It does not explicitly state when to use versus alternatives, but given the tool's simplicity (no parameters), the context is clear.

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

publish_listingPublish Listing ToolAInspect

Kick off the publish pipeline for a draft listing. Enriches with AI, gathers market data, then transitions the listing to Active. Returns the pipeline ID to track progress. Fails with the unmet readiness checklist if the listing is not ready (including any photo that has not cleared content moderation).

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesHashid of the listing to publish.
Behavior4/5

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

With no annotations, the description thoroughly discloses the pipeline steps (AI enrichment, market data, transition to Active), return value, and failure mode. Lacks mention of side effects or idempotency but still provides substantial behavioral insight.

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 front-load the main purpose, then efficiently convey process, return, and error behavior. No redundant words.

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 no output schema, the description fully covers the return value (pipeline ID) and error condition (readiness checklist). No critical gaps remain.

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 covers the sole parameter fully with a description. The tool description adds no new parameter detail beyond restating its purpose, 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?

Specific verb 'Kick off the publish pipeline' clearly identifies the action, and the resource is scoped to a draft listing. This distinguishes it from siblings like get_publish_status or update_listing.

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?

States it applies to draft listings and warns it fails if readiness checklist is unmet, including photo moderation. Does not explicitly name alternatives but the context is clear enough for selection among siblings.

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

search_listingsSearch Listings ToolA
Read-only
Inspect

Search commercial real estate listings. Returns paginated hits with facet counts. For AI-driven search, call interpret_search first to convert a natural-language query into structured filters, then pass those filters — and its bounds, when present — here.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Defaults to 1.
sortNoSort key. Valid values from get_registry sort_options (e.g. "listed_at:desc", "price:asc").
queryNoFree-text search query (street address, city, or keyword). Omit or pass null for no text filter.
boundsNoGeographic bounding box (degrees) limiting hits to an area. Forward the bounds returned by interpret_search verbatim to honour "near <place>" intent; omit for a nationwide search.
filtersNoStructured filter map keyed by Typesense field name. Ranges as {min?, max?}, multi-select as string[], booleans as true/false. Call get_registry to see valid field names and allowed values.
Behavior4/5

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

Annotations declare readOnlyHint=true, which is consistent. The description adds that results are paginated and include facet counts, providing useful behavioral context beyond the annotation alone.

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

Conciseness5/5

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

Two tightly-written sentences with no wasted words. First sentence states purpose and key features; second provides essential usage guidance. Front-loaded and 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 5 parameters, no output schema, and moderate complexity, the description is fully adequate. It covers functionality, pagination, facets, and integration with interpret_search and get_registry. No missing information needed for correct use.

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 covers all 5 parameters (100% coverage). Description adds value by explaining how to use bounds (forward from interpret_search) and filters (consult get_registry), which goes beyond the schema descriptions.

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

Purpose5/5

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

Description clearly states the tool searches commercial real estate listings and returns paginated hits with facet counts. It distinguishes itself from sibling tools like interpret_search (which converts natural language to filters) and get_registry (which provides valid fields).

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 instructs to call interpret_search first for AI-driven search, then pass its output filters and bounds here. This provides clear when-to-use guidance and differentiates from alternative workflows.

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

send_feedbackSend Feedback ToolAInspect

File feedback or a support ticket with the SPACEXPLORATION team: a bug report, feature request, question, or anything you would improve about the app or the MCP experience. Works anonymously — include a contact email if you want a reply.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOptional contact email if you or your human want a reply. Authenticated callers default to their account email.
messageYesThe feedback itself — what happened, or what you would improve about the app or the MCP experience. Plain text, max 5000 characters.
categoryNoWhat kind of feedback this is. Defaults to "other".
Behavior4/5

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

With no annotations available, the description carries the full burden. It discloses the key behavioral trait of anonymity ('Works anonymously') and explains the email condition for a reply. This goes beyond the schema by setting user expectations about privacy. A minor gap is the lack of any statement about what happens after submission (e.g., confirmation, ticket ID), but overall the essential 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?

The description is exactly two sentences, front-loaded with the action verb 'File' and clear subject matter. Every clause adds value: the first states the purpose and scope, the second explains anonymity and reply conditions. No wasted words or redundant elaboration.

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 feedback tool with full schema coverage and no output schema, the description covers the core purpose, acceptable content, and a key behavioral constraint. It doesn't describe the return value, but since no output schema is declared and the action is simple, this is a minor omission. The slight dual phrasing 'feedback or support ticket' could be seen as ambiguous but does not impair usability.

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 provides 100% parameter coverage, with detailed descriptions for email (optional, default to account email), message (plain text, max 5000 characters), and category (enum with default). The description adds only a restatement of the email-reply connection, which does not meaningfully extend the schema's clarity. 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 uses the specific verb 'File' with a clear resource ('feedback or a support ticket' with SPACEXPLORATION team) and enumerates acceptable content types (bug report, feature request, question, anything to improve). This clearly distinguishes send_feedback from sibling tools like search_listings or create_listing, which are all listing-related operations.

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 clearly implies when to use the tool by listing the kinds of feedback that belong (bug, feature request, question, or any improvement). There are no alternative feedback tools among the siblings, so no explicit 'when-not-to-use' guidance is needed. The context is clear and immediately actionable.

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

set_listing_attributesSet Listing Attributes ToolA
Idempotent
Inspect

Set broker-authored attributes on a listing you own. Pass attributes as a map of registry field name to value (the field names get_registry returns, e.g. {"attr_parking_spaces": 40, "attr_office_class": "Class A"}). Only fields get_registry marks "writable":true can be set; publish-time computed fields and hot columns (use update_listing for those) are rejected with guidance. Enum fields take the allowed value (or an array for multiselect); send null to clear a field. Returns the full updated listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesHashid of the listing to update.
attributesYesMap of registry field name to value, e.g. {"attr_parking_spaces": 40, "attr_office_class": "Class A", "attr_industrial_rail_access": true}. Only fields get_registry marks "writable":true are accepted. Multiselect enum fields take an array of allowed values. Send null to clear a field.
Behavior4/5

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

Annotations provide idempotentHint=true. Description adds that it returns the full updated listing and rejects non-writable fields with guidance. No contradictions, but could mention permission requirements if any.

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 conveying essential information: purpose, parameter format, constraints, and return value. No fluff, well organized.

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 two parameters and no output schema, the description adequately covers input and output (returns updated listing). Annotations cover idempotency. Could mention error cases but not essential for completeness.

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 description adds value by explaining the map format (registry field names), enum handling (array for multiselect, null to clear), and acceptance criteria (writable). This goes beyond raw 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?

Description clearly states it sets broker-authored attributes on a listing one owns. It specifies the verb 'Set' and the resource 'listing attributes', and distinguishes from sibling tools by referencing update_listing for hot columns.

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 states when to use: only for writable fields from get_registry. Also tells when not to use: for hot columns, use update_listing. Provides guidance on enum fields and clearing fields, helping agent decide correctly.

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

sign_attachment_uploadSign Attachment Upload ToolAInspect

Begin an out-of-band file upload. Returns a presigned R2 PUT URL and the headers to use; the file bytes are uploaded directly to storage, never through this channel. After PUTting the file, call confirm_attachment_upload with the returned attachment_id. Supports listings (photos, documents), users (avatar), and pages (cover, photos).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeYesExact byte size of the file. Verified against the uploaded object at confirm time, so it must be accurate.
filenameYesOriginal filename including extension, e.g. "front-elevation.jpg". Used to derive the storage key and extension.
collectionNoOptional explicit collection: "photos", "documents", "avatar", "logo", or "cover". Omit to auto-route by MIME (images→photos, docs→documents). Singleton slots (avatar/cover/logo) must be set explicitly.
content_typeYesMIME type of the file, e.g. "image/jpeg" or "application/pdf". Must match the collection whitelist.
attachable_idYesIdentifier of the attachable resource. For "listing" pass the listing hashid (e.g. "d5yqqgoa") — the same id every read tool returns. For "user" pass "me" to attach to yourself. For "page" pass its numeric id.
attachable_typeYesMorph alias of the resource to attach to: "listing", "user", or "page".
Behavior4/5

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

No annotations exist, so description fully carries the behavioral burden. It discloses that file bytes never pass through this channel, size is verified at confirm, and collection auto-routes by MIME. Could mention expiration of presigned URL or idempotency, but core behavior is covered.

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 essential. First sentence states the action, second explains the follow-up, third lists supported types. No filler, front-loaded with key result.

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

Completeness3/5

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

Describes the two-step flow and return of presigned URL/headers, but lacks details about the response structure (e.g., the attachment_id field hinted at), error conditions, size limits, or URL expiration. Adequate but not comprehensive.

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?

Schema coverage is 100% but description adds significant value: examples for attachable_id (hashid, 'me', numeric id), explains collection auto-route logic, size verification at confirm time, and filename used for storage key. Goes well 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?

Describes the tool as initiating an out-of-band file upload, returning a presigned URL and headers. Clearly distinguishes from confirm_attachment_upload and lists supported attachable types (listings, users, pages).

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?

States the two-step process: PUT to the presigned URL then call confirm_attachment_upload. Explains collection auto-routing and explicit setting. Lacks explicit when-not-to-use 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.

update_listingUpdate Listing ToolA
Idempotent
Inspect

Update a listing's parcel, pricing, or marketing data. Pass at least one group (parcel, pricing, marketing); send each group whole, not just the changed field. Returns the full updated listing exactly as stored.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesHashid of the listing to update.
parcelNoParcel/address fields to update: street_address, city, county, state, postal_code, latitude, longitude, and optionally unit, lot_acres, year_built, property_type.
pricingNoPricing fields to update: listing_type (sale|lease); for a sale set sale_price (dollars), for a lease set lease_rate (per the lease_rate_period basis, default per_sqft_year) and optionally lease_rate_period (per_sqft_year|per_sqft_month|per_month|per_year). Omit the price and set price_on_request=true for "price upon request". Optionally expires_at (ISO date).
marketingNoMarketing copy to update: headline, summary, title_override, highlights (string[]).
Behavior3/5

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

Annotations already indicate idempotentHint: true, which the description reinforces implicitly. The description adds value by stating the return behavior ('Returns the full updated listing exactly as stored'), but does not disclose potential side effects, auth requirements, or error scenarios.

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 redundancy. First sentence identifies action and affected data groups; second sentence provides the key usage rule and return contract. Every word 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?

Given 4 parameters (1 required) and no output schema, the description covers what can be updated, how to format input, and what is returned. Minor omissions: prerequisites (listing must exist), permissions, error handling. Still above average.

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 description coverage is 100%, but the description adds critical usage details: whole-group requirement, pricing logic (sale vs. lease, price_on_request), and field lists. This goes beyond the raw schema, justifying a score above baseline 3.

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

Purpose5/5

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

The description clearly states the tool updates a listing's parcel, pricing, or marketing data. It uses a specific verb ('update') and resource ('listing'), and the clear data groups distinguish it from sibling tools like create_listing, get_listing, etc.

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 actionable guidance: 'Pass at least one group (parcel, pricing, marketing); send each group whole, not just the changed field.' This tells the agent how to structure input. While it doesn't explicitly list when not to use, the sibling set provides context for alternatives.

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

withdraw_listingWithdraw Listing ToolA
Destructive
Inspect

Withdraw a listing, removing it from public search. This is a terminal status — the listing cannot be re-activated; create a new listing instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashidYesHashid of the listing to withdraw.
Behavior5/5

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

Annotations include destructiveHint, but the description adds extra context: the operation is terminal and irreversible. This goes beyond the annotation by explaining the consequence, which is valuable for an agent deciding to invoke it.

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, each earning its place: the first states the core action and effect, the second explains the terminal consequence and alternative. No fluff 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 simple one-parameter mutation tool with no output schema, the description covers the key aspects: what happens, the harsh consequence, and the fallback action. It is complete for the agent's needs.

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 hashid parameter is already defined as 'Hashid of the listing to withdraw' in the schema. The description does not add further detail about the parameter format or constraints, so it relies on 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 action ('Withdraw a listing'), the resource, and the immediate effect ('removing it from public search'). It distinguishes from siblings by emphasizing the terminal nature, which separates it from update/publish operations.

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 guidance: the status is terminal and the listing cannot be re-activated, with a clear alternative ('create a new listing instead'). This tells the agent when to use this tool and what to do if re-activation is needed.

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
    C
    quality
    D
    maintenance
    Enables access to Idealista API for searching and retrieving property listings across Spain, Portugal, and Italy. Supports various property types including homes, apartments, garages, commercial properties, offices, and land with detailed filtering options.
    14
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Turns CREHQ's live location-intelligence REST API into native tools for AI agents, enabling natural-language queries about franchise brands, store locations, credit signals, and site tenancy history.
    33
    51
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying 1.6M+ Dubai Land Department sales transactions and 9.5M+ Ejari rental contracts with flexible filters by area, property type, bedrooms, and date range.
    1
    1
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    REST API and MCP server for Zillow property data: Zestimates, rent estimates, tax records, listing search, price history, photos, and 300+ fields. 4 tools with OAuth 2.1 + PKCE. Free tier: 100 credits.
    3
    MIT No Attribution

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources