Skip to main content
Glama

Mencoro

Project sources and visibility opportunities

get_project_sources
Read-onlyIdempotent

The hosts a project's AI answers cite and its SERPs list in a date window, as the Fuentes tab shows them, with each host's gap queries: the tracked queries with at least one response (an AI answer, each pass counted, or a SERP) that listed the host without the brand, meaning an answer that neither names the brand nor cites its site, or a SERP where no own domain ranks. view=opportunities (default) lists third-party hosts with a gap, most gap queries first: the sites to get the brand onto; view=all lists every host, the brand's and competitors' own sites included (ownership says which); view=cited-you lists third-party hosts cited in AI answers that featured the brand. counts gives each view's host count under the same filters. Pass host to get one host instead: its gap queries (one row per tracked query with the engines of its gap responses), the URLs cited, each list capped at 100 with gapQueriesTotal and citedUrlsTotal counting every row, and an excerpt of the latest answer citing it. Each third-party host carries growwer: whether Growwer sells a link on it (state offer, no_offer, or pending while Growwer has not answered for it yet), its starting price excluding VAT, the stored answer's age (stale after 48 hours) and the organization's own Growwer orders on that media (an order means one is already in progress), whether the organization already requested that media from Growwer (requested, requestedAt) and whether request_growwer_media can request it (canRequest; when false, the media is requested on Growwer's own site); onlyGrowwerOffers=true keeps the hosts Growwer sells, in the rows and in every count, and counts.growwerOffers counts them in the view. Offers are refreshed daily from Growwer, never asked for during this call; get_growwer_offers asks Growwer live for a tracked query's media. Dates must fall within the data retention window, and the period spans at most 92 days, both dates counted. Answers questions like "which sites should I get mentioned on", "where do AI answers cite my competitors but not me" or "which media cite me".

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "organizationId": "<organizationId>",
      "projectId": "<projectId>",
      "dateFrom": "<dateFrom>",
      "dateTo": "<dateTo>"
    },
    "name": "get_project_sources"
  }
}

Input Schema

NameRequiredDescriptionDefault
hostNoone host (e.g. "example.com"; "www." and case are ignored, a URL, or a host followed by a port or a path, is reduced to its host) to return its detail instead of the list
viewNoopportunities (default), all or cited-you; ignored with hostopportunities
limitNo
dateToYes
offsetNo
searchNocase-insensitive substring of the host; narrows the rows and the counts; ignored with host
sortByNogapQueries (default), citingQueries, citedYouQueries, responses, citations, avgPosition or host; ignored with hostgapQueries
enginesNoallowed values: chatgpt, claude, perplexity, google_ai_overview, google_ai_mode, google_serp, google_shopping; google_shopping lists no hosts
dateFromYes
countriesNoISO-3166 alpha-2 country codes (e.g. "US", "GB", "DE"); a project's configured codes are listed by get_available_filters
projectIdYes
sortOrderNodesc (default) or asc; ignored with hostdesc
competitorIdNoUUID of a tracked competitor: keep only the responses that also name or list it; competitor UUIDs are listed by get_available_filters (competitors[].id)
organizationIdYes
queryClusterIdsNorestrict to these keyword clusters
onlyGrowwerOffersNokeep only the hosts Growwer sells (growwer.state offer), in the rows and in every count; ignored with host
includeUngroupedQueriesNoSent alone, keeps only the tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters' queries. Omit both for every query.

Output Schema

NameRequiredDescriptionDefault
totalNoHosts in the requested view.
countsNo
sourceNo
sourcesNo
citedUrlsNo
gapQueriesNo
latestAnswerNoThe latest AI answer citing the host, a gap answer first; null when only SERPs list it.
growwerOrdersNo
citedUrlsTotalNoCited URLs in all; citedUrls holds at most 100.
gapQueriesTotalNoGap queries in all; gapQueries holds at most 100.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / source / properties / growwer / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "advertisingLabellingPolicy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "checkedAt": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "When Growwer last answered for this host; null while pending."
      -      },
      -      "fromPrice": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "amount": {
      -                "description": "Minor units of currency, excluding VAT.",
      -                "type": "integer"
      -              },
      -              "currency": {
      -                "type": "string"
      -              },
      -              "linkType": {
      -                "enum": [
      -                  "dofollow",
      -                  "nofollow",
      -                  "citation"
      -                ],
      -                "type": "string"
      -              },
      -              "product": {
      -                "enum": [
      -                  "post",
      -                  "link_addition"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "product",
      -              "linkType",
      -              "amount",
      -              "currency"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      -      },
      -      "growwerDomain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mediaIds": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "orders": {
      -        "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      -        "items": {
      -          "properties": {
      -            "createdAt": {
      -              "type": "string"
      -            },
      -            "deliveryUrl": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "id": {
      -              "type": "string"
      -            },
      -            "mediaId": {
      -              "type": "string"
      -            },
      -            "price": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "amount": {
      -                      "description": "Minor units of currency.",
      -                      "type": "integer"
      -                    },
      -                    "currency": {
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "amount",
      -                    "currency"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "projectId": {
      -              "description": "The Growwer project the order belongs to.",
      -              "type": "string"
      -            },
      -            "publishedAt": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "state": {
      -              "description": "Growwer's order state code.",
      -              "type": "string"
      -            },
      -            "type": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "type",
      -            "state",
      -            "price",
      -            "projectId",
      -            "mediaId",
      -            "deliveryUrl",
      -            "publishedAt",
      -            "createdAt"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "stale": {
      -        "description": "The stored answer is 48 hours old or more: the price may have changed.",
      -        "type": "boolean"
      -      },
      -      "state": {
      -        "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      -        "enum": [
      -          "offer",
      -          "no_offer",
      -          "pending"
      -        ],
      -        "type": "string"
      -      },
      -      "vatIncluded": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "state",
      -      "mediaIds",
      -      "fromPrice",
      -      "stale",
      -      "orders"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "advertisingLabellingPolicy": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "canRequest": {
      +        "description": "Whether request_growwer_media can ask Growwer for it: the Growwer connection can send requests and, when the account was read, a Growwer project has the project's website, and the host is one a request takes (not an IPv6 address). False: the media is requested on Growwer's own site.",
      +        "type": "boolean"
      +      },
      +      "checkedAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When Growwer last answered for this host; null while pending."
      +      },
      +      "fromPrice": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "amount": {
      +                "description": "Minor units of currency, excluding VAT.",
      +                "type": "integer"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "linkType": {
      +                "enum": [
      +                  "dofollow",
      +                  "nofollow",
      +                  "citation"
      +                ],
      +                "type": "string"
      +              },
      +              "product": {
      +                "enum": [
      +                  "post",
      +                  "link_addition"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "product",
      +              "linkType",
      +              "amount",
      +              "currency"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      +      },
      +      "growwerDomain": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "mediaIds": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "orders": {
      +        "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      +        "items": {
      +          "properties": {
      +            "createdAt": {
      +              "type": "string"
      +            },
      +            "deliveryUrl": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "mediaId": {
      +              "type": "string"
      +            },
      +            "price": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "amount": {
      +                      "description": "Minor units of currency.",
      +                      "type": "integer"
      +                    },
      +                    "currency": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "amount",
      +                    "currency"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "projectId": {
      +              "description": "The Growwer project the order belongs to.",
      +              "type": "string"
      +            },
      +            "publishedAt": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "state": {
      +              "description": "Growwer's order state code.",
      +              "type": "string"
      +            },
      +            "type": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "type",
      +            "state",
      +            "price",
      +            "projectId",
      +            "mediaId",
      +            "deliveryUrl",
      +            "publishedAt",
      +            "createdAt"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "requested": {
      +        "description": "The organization already asked Growwer for this media for the project, with request_growwer_media or from the app.",
      +        "type": "boolean"
      +      },
      +      "requestedAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When it was first requested; null unless requested."
      +      },
      +      "stale": {
      +        "description": "The stored answer is 48 hours old or more: the price may have changed.",
      +        "type": "boolean"
      +      },
      +      "state": {
      +        "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      +        "enum": [
      +          "offer",
      +          "no_offer",
      +          "pending"
      +        ],
      +        "type": "string"
      +      },
      +      "vatIncluded": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "state",
      +      "mediaIds",
      +      "fromPrice",
      +      "stale",
      +      "orders",
      +      "requested",
      +      "requestedAt",
      +      "canRequest"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / sources / items / properties / growwer / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "advertisingLabellingPolicy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "checkedAt": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "When Growwer last answered for this host; null while pending."
      -      },
      -      "fromPrice": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "amount": {
      -                "description": "Minor units of currency, excluding VAT.",
      -                "type": "integer"
      -              },
      -              "currency": {
      -                "type": "string"
      -              },
      -              "linkType": {
      -                "enum": [
      -                  "dofollow",
      -                  "nofollow",
      -                  "citation"
      -                ],
      -                "type": "string"
      -              },
      -              "product": {
      -                "enum": [
      -                  "post",
      -                  "link_addition"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "product",
      -              "linkType",
      -              "amount",
      -              "currency"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      -      },
      -      "growwerDomain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mediaIds": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "orders": {
      -        "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      -        "items": {
      -          "properties": {
      -            "createdAt": {
      -              "type": "string"
      -            },
      -            "deliveryUrl": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "id": {
      -              "type": "string"
      -            },
      -            "mediaId": {
      -              "type": "string"
      -            },
      -            "price": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "amount": {
      -                      "description": "Minor units of currency.",
      -                      "type": "integer"
      -                    },
      -                    "currency": {
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "amount",
      -                    "currency"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "projectId": {
      -              "description": "The Growwer project the order belongs to.",
      -              "type": "string"
      -            },
      -            "publishedAt": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "state": {
      -              "description": "Growwer's order state code.",
      -              "type": "string"
      -            },
      -            "type": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "type",
      -            "state",
      -            "price",
      -            "projectId",
      -            "mediaId",
      -            "deliveryUrl",
      -            "publishedAt",
      -            "createdAt"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "stale": {
      -        "description": "The stored answer is 48 hours old or more: the price may have changed.",
      -        "type": "boolean"
      -      },
      -      "state": {
      -        "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      -        "enum": [
      -          "offer",
      -          "no_offer",
      -          "pending"
      -        ],
      -        "type": "string"
      -      },
      -      "vatIncluded": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "state",
      -      "mediaIds",
      -      "fromPrice",
      -      "stale",
      -      "orders"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "advertisingLabellingPolicy": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "canRequest": {
      +        "description": "Whether request_growwer_media can ask Growwer for it: the Growwer connection can send requests and, when the account was read, a Growwer project has the project's website, and the host is one a request takes (not an IPv6 address). False: the media is requested on Growwer's own site.",
      +        "type": "boolean"
      +      },
      +      "checkedAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When Growwer last answered for this host; null while pending."
      +      },
      +      "fromPrice": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "amount": {
      +                "description": "Minor units of currency, excluding VAT.",
      +                "type": "integer"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "linkType": {
      +                "enum": [
      +                  "dofollow",
      +                  "nofollow",
      +                  "citation"
      +                ],
      +                "type": "string"
      +              },
      +              "product": {
      +                "enum": [
      +                  "post",
      +                  "link_addition"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "product",
      +              "linkType",
      +              "amount",
      +              "currency"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      +      },
      +      "growwerDomain": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "mediaIds": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "orders": {
      +        "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      +        "items": {
      +          "properties": {
      +            "createdAt": {
      +              "type": "string"
      +            },
      +            "deliveryUrl": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "mediaId": {
      +              "type": "string"
      +            },
      +            "price": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "amount": {
      +                      "description": "Minor units of currency.",
      +                      "type": "integer"
      +                    },
      +                    "currency": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "amount",
      +                    "currency"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "projectId": {
      +              "description": "The Growwer project the order belongs to.",
      +              "type": "string"
      +            },
      +            "publishedAt": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "state": {
      +              "description": "Growwer's order state code.",
      +              "type": "string"
      +            },
      +            "type": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "type",
      +            "state",
      +            "price",
      +            "projectId",
      +            "mediaId",
      +            "deliveryUrl",
      +            "publishedAt",
      +            "createdAt"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "requested": {
      +        "description": "The organization already asked Growwer for this media for the project, with request_growwer_media or from the app.",
      +        "type": "boolean"
      +      },
      +      "requestedAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When it was first requested; null unless requested."
      +      },
      +      "stale": {
      +        "description": "The stored answer is 48 hours old or more: the price may have changed.",
      +        "type": "boolean"
      +      },
      +      "state": {
      +        "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      +        "enum": [
      +          "offer",
      +          "no_offer",
      +          "pending"
      +        ],
      +        "type": "string"
      +      },
      +      "vatIncluded": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "state",
      +      "mediaIds",
      +      "fromPrice",
      +      "stale",
      +      "orders",
      +      "requested",
      +      "requestedAt",
      +      "canRequest"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed5 schema fields changed
    • addedInput schema / properties / onlyGrowwerOffers
      Added value: +{
      +  "default": false,
      +  "description": "keep only the hosts Growwer sells (growwer.state offer), in the rows and in every count; ignored with host",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / counts / properties / growwerOffers
      Added value: +{
      +  "description": "Hosts of the requested view Growwer sells.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / growwerOrders
      Added value: +{
      +  "properties": {
      +    "growwerProjectId": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The Growwer project matched to the project's website the orders come from; null when none matched or the account was not read."
      +    },
      +    "status": {
      +      "description": "Whether the organization's Growwer orders were read: ok, not_connected (no Growwer account connected), revoked (the organization must connect it again), unavailable (the account could not be read) or not_read (connected, but there was nothing to read the orders for: no Growwer media among the sources shown, or a project without a brand profile).",
      +      "enum": [
      +        "ok",
      +        "not_connected",
      +        "revoked",
      +        "unavailable",
      +        "not_read"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "growwerProjectId"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / source / properties / growwer
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "advertisingLabellingPolicy": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "checkedAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Growwer last answered for this host; null while pending."
      +        },
      +        "fromPrice": {
      +          "anyOf": [
      +            {
      +              "properties": {
      +                "amount": {
      +                  "description": "Minor units of currency, excluding VAT.",
      +                  "type": "integer"
      +                },
      +                "currency": {
      +                  "type": "string"
      +                },
      +                "linkType": {
      +                  "enum": [
      +                    "dofollow",
      +                    "nofollow",
      +                    "citation"
      +                  ],
      +                  "type": "string"
      +                },
      +                "product": {
      +                  "enum": [
      +                    "post",
      +                    "link_addition"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "product",
      +                "linkType",
      +                "amount",
      +                "currency"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      +        },
      +        "growwerDomain": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mediaIds": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "orders": {
      +          "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      +          "items": {
      +            "properties": {
      +              "createdAt": {
      +                "type": "string"
      +              },
      +              "deliveryUrl": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "mediaId": {
      +                "type": "string"
      +              },
      +              "price": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "amount": {
      +                        "description": "Minor units of currency.",
      +                        "type": "integer"
      +                      },
      +                      "currency": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "amount",
      +                      "currency"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "projectId": {
      +                "description": "The Growwer project the order belongs to.",
      +                "type": "string"
      +              },
      +              "publishedAt": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "state": {
      +                "description": "Growwer's order state code.",
      +                "type": "string"
      +              },
      +              "type": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "type",
      +              "state",
      +              "price",
      +              "projectId",
      +              "mediaId",
      +              "deliveryUrl",
      +              "publishedAt",
      +              "createdAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "stale": {
      +          "description": "The stored answer is 48 hours old or more: the price may have changed.",
      +          "type": "boolean"
      +        },
      +        "state": {
      +          "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      +          "enum": [
      +            "offer",
      +            "no_offer",
      +            "pending"
      +          ],
      +          "type": "string"
      +        },
      +        "vatIncluded": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "mediaIds",
      +        "fromPrice",
      +        "stale",
      +        "orders"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Growwer's offer for a third-party host; null for the brand's and competitors' own sites."
      +}
    • addedOutput schema / properties / sources / items / properties / growwer
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "advertisingLabellingPolicy": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "checkedAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Growwer last answered for this host; null while pending."
      +        },
      +        "fromPrice": {
      +          "anyOf": [
      +            {
      +              "properties": {
      +                "amount": {
      +                  "description": "Minor units of currency, excluding VAT.",
      +                  "type": "integer"
      +                },
      +                "currency": {
      +                  "type": "string"
      +                },
      +                "linkType": {
      +                  "enum": [
      +                    "dofollow",
      +                    "nofollow",
      +                    "citation"
      +                  ],
      +                  "type": "string"
      +                },
      +                "product": {
      +                  "enum": [
      +                    "post",
      +                    "link_addition"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "product",
      +                "linkType",
      +                "amount",
      +                "currency"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The cheapest of Growwer's base prices, the price a buyer starts from; null unless state is offer."
      +        },
      +        "growwerDomain": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mediaIds": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "orders": {
      +          "description": "The organization's own Growwer orders on this media, of the Growwer project matched to the project's website; one means an order is already in progress. Empty unless growwerOrders.status is ok.",
      +          "items": {
      +            "properties": {
      +              "createdAt": {
      +                "type": "string"
      +              },
      +              "deliveryUrl": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "mediaId": {
      +                "type": "string"
      +              },
      +              "price": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "amount": {
      +                        "description": "Minor units of currency.",
      +                        "type": "integer"
      +                      },
      +                      "currency": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "amount",
      +                      "currency"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "projectId": {
      +                "description": "The Growwer project the order belongs to.",
      +                "type": "string"
      +              },
      +              "publishedAt": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "state": {
      +                "description": "Growwer's order state code.",
      +                "type": "string"
      +              },
      +              "type": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "type",
      +              "state",
      +              "price",
      +              "projectId",
      +              "mediaId",
      +              "deliveryUrl",
      +              "publishedAt",
      +              "createdAt"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "stale": {
      +          "description": "The stored answer is 48 hours old or more: the price may have changed.",
      +          "type": "boolean"
      +        },
      +        "state": {
      +          "description": "offer: Growwer sells a link on this media; no_offer: it does not; pending: Growwer has not answered for this host yet.",
      +          "enum": [
      +            "offer",
      +            "no_offer",
      +            "pending"
      +          ],
      +          "type": "string"
      +        },
      +        "vatIncluded": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "mediaIds",
      +        "fromPrice",
      +        "stale",
      +        "orders"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Growwer's offer for a third-party host; null for the brand's and competitors' own sites."
      +}
  3. Added

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the readOnly annotations: offers are refreshed daily and never fetched live during this call, stored answers go stale after 48 hours, lists are capped at 100 with gapQueriesTotal/citedUrlsTotal counting every row, dates must fall inside retention and span at most 92 days, and the pending Growwer state is explained. This is exactly the kind of cost, latency and mutation-adjacent context an agent needs.

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

Conciseness3/5

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

Core purpose is front-loaded, but the text is a dense multi-clause block with repeated restatement of host-detail behavior and view semantics, and several sentences run long enough to obscure the main path. Every fact is relevant, yet the delivery costs readability.

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 17 parameters and an output schema, the description covers the ambiguous parts (view/host interactions, counting, caps, date limits, Growwer offer lifecycle) well enough to call correctly. Minor gaps remain around pagination interplay with counts and how search/sort behave across views.

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 65% schema coverage, the description adds real meaning: what view values mean, how host overrides view/sort/search, that onlyGrowwerOffers propagates into every count including counts.growwerOffers, and the request/canRequest semantics of Growwer media. It leaves several parameters (queryClusterIds, competitorId, sortBy, offset) entirely to the schema.

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

Purpose4/5

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

The description names the specific resource (hosts cited by AI answers and SERPs for a project) plus the derived gap-query concept, and enumerates the three view modes. The opening sentence is a run-on fragment ('The hosts a project's AI answers cite...') that takes effort to parse, but the substance is precise and distinguishes the list mode from the single-host detail mode.

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 the default view and what each view is for ('sites to get the brand onto', 'which media cite me'), gives example questions, and names get_growwer_offers as the live alternative. It does not compare against other sibling source tools such as get_cited_sources, and there is no explicit 'when not to use' statement.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.