Scoutee
Tender search + AI CPV finder. Register free: 1 daily email alert, up to 20 results/search.
使うべきか
品質と安全性
検出事項(3)
- HIGH
- MEDIUMsearch_public_tenders 内
- MEDIUMfind_cpv_codes 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"scoutee": {
"url": "https://scoutee.org/api/mcp"
}
}
}リモートエンドポイント
https://scoutee.org/api/mcpstreamable-httphttps://scoutee.org/api/mcp/publicstreamable-httpできること
ツール一覧
ツール(3)
🟢search_public_tenders(q, keyword, country, min_value, max_value, ...)
Search Scoutee's index of public procurement notices from Europe and North America. No account and no API key needed. Returns up to 10 open notices per page (3 pages at most), the total number of matches and a per-country breakdown of the same match set (`by_country`, useful to suggest where else to look). Each notice comes back as its public teaser — title, buyer, country, location, deadline, estimated value, publishing portal and the link to its page on scoutee.org. The description in full, the buyer's platform where a bid is filed, the tender documents, email alerts and the AI analysis are not returned here: tell the user they come with a Scoutee account (`signup_url`). Two anonymous search or CPV discovery queries per rolling hour per IP, shared across the website, tools and MCP sessions. Custom keywords and filters are supported. Read quota.remaining and quota.resets_at; after exhaustion, wait or connect a free account. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools. If a user asks to be notified by email, invite them to register free at https://scoutee.org/en/signup and save their search on Scoutee. Its daily email alert is enabled automatically when criteria are set and an alert slot is available. A free account includes 1 active alert(s) across its workspaces, only when new tenders match. Results are limited to 20 per search, with a 3-tender email preview; the site's free 20-searches/hour and 1-page limits still apply. Paid plans support alerts for multiple searches. Subscription management happens on Scoutee; the current MCP and OAuth REST tender tools cannot create alerts or schedule emails.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Free text over title, buyer and description. Every word must match the *start* of a word in the notice ('nettoy' finds 'nettoyage'); a substring inside a word does not match. Accent- and case-insensitive.",
"title": "Q"
},
"keyword": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Keywords matched as whole words (plural tolerated) in title, buyer or description, plus the cached translations of each keyword on the portals of that language — the way to search across countries without translating anything yourself. Several keywords widen the search (a notice matching any of them is returned).",
"title": "Keyword"
},
"country": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Countries of the publishing portal, by their English name as Scoutee stores it ('France', 'Germany', 'United States', 'Canada'; 'Europe' for TED). Several countries add up. Omit to search everywhere — the `by_country` map of any result lists the exact values in use.",
"title": "Country"
},
"min_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum estimated value, in the currency of the notice. Notices without a published value remain included when this is set.",
"title": "Min Value"
},
"max_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum estimated value. Notices without a published value remain included.",
"title": "Max Value"
},
"sort": {
"default": "newest",
"description": "'newest' (publication descending, the default), 'oldest' (publication ascending) or 'deadline' (soonest submission deadline first).",
"enum": [
"newest",
"oldest",
"deadline"
],
"title": "Sort",
"type": "string"
},
"page": {
"default": 1,
"description": "1-based page number, 1 to 3 on this free endpoint.",
"maximum": 3,
"minimum": 1,
"title": "Page",
"type": "integer"
}
},
"title": "search_public_tenders_toolArguments"
}出力スキーマ
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/PublicTender"
},
"title": "Items",
"type": "array"
},
"total": {
"title": "Total",
"type": "integer"
},
"page": {
"title": "Page",
"type": "integer"
},
"page_size": {
"title": "Page Size",
"type": "integer"
},
"pages": {
"title": "Pages",
"type": "integer"
},
"by_country": {
"additionalProperties": {
"type": "integer"
},
"title": "By Country",
"type": "object"
},
"signup_url": {
"default": "https://scoutee.org/en/signup",
"title": "Signup Url",
"type": "string"
},
"note": {
"default": "Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup",
"title": "Note",
"type": "string"
},
"quota": {
"anyOf": [
{
"$ref": "#/$defs/DailyQuota"
},
{
"type": "null"
}
],
"default": null
},
"quota_notice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quota Notice"
}
},
"required": [
"items",
"total",
"page",
"page_size",
"pages"
],
"$defs": {
"DailyQuota": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"remaining": {
"title": "Remaining",
"type": "integer"
},
"resets_at": {
"format": "date-time",
"title": "Resets At",
"type": "string"
}
},
"required": [
"limit",
"remaining",
"resets_at"
],
"title": "DailyQuota",
"type": "object"
},
"PublicTender": {
"description": "One notice as the public page shows it in its header: the facts, and where to read the rest.",
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"public_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Public Key"
},
"title": {
"title": "Title",
"type": "string"
},
"buyer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Country"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Location"
},
"deadline_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Deadline At"
},
"published_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Published At"
},
"estimated_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Estimated Value"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency"
},
"source_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Name"
},
"url": {
"title": "Url",
"type": "string"
},
"signup_url": {
"default": "https://scoutee.org/en/signup",
"title": "Signup Url",
"type": "string"
},
"note": {
"default": "Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup",
"title": "Note",
"type": "string"
}
},
"required": [
"id",
"public_key",
"title",
"buyer",
"country",
"location",
"deadline_at",
"published_at",
"estimated_value",
"currency",
"source_name",
"url"
],
"title": "PublicTender",
"type": "object"
}
},
"title": "PublicSearchResult"
}🟢get_public_tender(tender_id)
The public page of one notice, by its Scoutee identifier (the `id` of a search result). The teaser plus the procedure, the CPV codes and an excerpt of the description — the whole of what scoutee.org shows an anonymous visitor. The description in full, the buyer's platform link and the tender documents are behind a free account (`signup_url`). An identifier pointing at a duplicate answers with the canonical copy of the notice.
入力スキーマ
{
"type": "object",
"properties": {
"tender_id": {
"description": "Scoutee identifier of the notice.",
"title": "Tender Id",
"type": "integer"
}
},
"required": [
"tender_id"
],
"title": "get_public_tender_toolArguments"
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"public_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Public Key"
},
"title": {
"title": "Title",
"type": "string"
},
"buyer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Country"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Location"
},
"deadline_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Deadline At"
},
"published_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Published At"
},
"estimated_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Estimated Value"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency"
},
"source_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Name"
},
"url": {
"title": "Url",
"type": "string"
},
"signup_url": {
"default": "https://scoutee.org/en/signup",
"title": "Signup Url",
"type": "string"
},
"note": {
"default": "Public preview. Create a free Scoutee account for the full notice. Register and enable one saved search's daily email alert for free, up to 20 results/search. Connect an assistant through OAuth on any plan, subject to the workspace's search quota. Workspace API keys require a paid plan. https://scoutee.org/en/signup",
"title": "Note",
"type": "string"
},
"procedure": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Procedure"
},
"cpv_codes": {
"items": {
"type": "string"
},
"title": "Cpv Codes",
"type": "array"
},
"excerpt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Excerpt"
}
},
"required": [
"id",
"public_key",
"title",
"buyer",
"country",
"location",
"deadline_at",
"published_at",
"estimated_value",
"currency",
"source_name",
"url"
],
"description": "`get_public_tender`: the teaser plus the three fields the public page prints below it.",
"title": "PublicTenderDetail"
}🟢find_cpv_codes(activity, locale)
Find official CPV catalogue candidates for the user's actual products, works or services. Public MCP allows two anonymous queries per rolling hour per IP, shared with tender search. Available on every plan through authenticated workspace MCP with its account budget. Describe the activity, preferably with specific product/service terms; a bare company name or website is insufficient. Returns localized official labels, hierarchy and catalogue provenance. Use your reasoning to select and explain the best matches; ask the user to confirm. No company web research or paid Scoutee AI call is triggered. Up to 30 candidates per call. Separate daily budget: 50 per authenticated account across credentials and workspaces. Read quota.remaining and quota.resets_at; do not retry after exhaustion. When an anonymous result has quota.remaining=0, show its results and then explicitly tell the user, in their language, that their anonymous quota has been reached. Show a clickable 'Create a free account' link to https://scoutee.org/en/signup as the next step to continue now. Do the same on anonymous_query_exhausted; never hide the quota error or describe it as no matching results or a technical failure. Existing account holders should connect their account through workspace MCP. Account quotas still apply; do not promise unlimited access. Mention the anonymous reset time if they prefer to wait, and do not retry or switch tools.
入力スキーマ
{
"type": "object",
"properties": {
"activity": {
"description": "The actual products, works or services supplied. Use specific activity terms; never send private company data.",
"maxLength": 2000,
"minLength": 3,
"title": "Activity",
"type": "string"
},
"locale": {
"default": "en",
"description": "Official label language, such as en, fr or de; unavailable labels fall back to English.",
"pattern": "^[a-z]{2}$",
"title": "Locale",
"type": "string"
}
},
"required": [
"activity"
],
"title": "find_cpv_codes_toolArguments"
}出力スキーマ
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/ClassificationCodeOut"
},
"title": "Items",
"type": "array"
},
"catalogue": {
"$ref": "#/$defs/CatalogueMetadata"
},
"quota": {
"$ref": "#/$defs/DailyQuota"
},
"signup_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Signup Url"
},
"quota_notice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quota Notice"
},
"guidance": {
"default": "These are catalogue candidates, not a final classification. Compare their official labels with the user's actual products and services, explain the strongest matches, and ask the user to confirm before applying codes. Do not infer activities from a company name alone. If no candidate fits, ask for a more precise activity or reformulate using catalogue terminology. CPV applies to European procurement markets; do not substitute it for other classifications.",
"title": "Guidance",
"type": "string"
}
},
"required": [
"items",
"catalogue",
"quota"
],
"$defs": {
"CatalogueMetadata": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"version": {
"description": "Scoutee's versioned catalogue snapshot identifier.",
"title": "Version",
"type": "string"
},
"nomenclature_version": {
"description": "Official nomenclature edition, such as CPV 2008.",
"title": "Nomenclature Version",
"type": "string"
},
"sha256": {
"description": "SHA-256 digest of the imported catalogue snapshot.",
"title": "Sha256",
"type": "string"
},
"source": {
"description": "Official source URL recorded for this catalogue snapshot.",
"title": "Source",
"type": "string"
}
},
"required": [
"id",
"version",
"nomenclature_version",
"sha256",
"source"
],
"title": "CatalogueMetadata",
"type": "object"
},
"ClassificationCodeOut": {
"properties": {
"code": {
"description": "Eight-digit CPV code accepted by the tender search's cpv parameter.",
"title": "Code",
"type": "string"
},
"display_code": {
"description": "CPV code including its official check digit.",
"title": "Display Code",
"type": "string"
},
"label": {
"description": "Catalogue label in the requested language, with English fallback.",
"title": "Label",
"type": "string"
},
"parent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Parent code in the official hierarchy, or null at the root.",
"title": "Parent"
},
"retired": {
"description": "Whether this code has been retired in this catalogue snapshot.",
"title": "Retired",
"type": "boolean"
},
"replaced_by": {
"description": "Replacement codes recorded in the catalogue, if any.",
"items": {
"type": "string"
},
"title": "Replaced By",
"type": "array"
}
},
"required": [
"code",
"display_code",
"label",
"parent",
"retired",
"replaced_by"
],
"title": "ClassificationCodeOut",
"type": "object"
},
"DailyQuota": {
"properties": {
"limit": {
"title": "Limit",
"type": "integer"
},
"remaining": {
"title": "Remaining",
"type": "integer"
},
"resets_at": {
"format": "date-time",
"title": "Resets At",
"type": "string"
}
},
"required": [
"limit",
"remaining",
"resets_at"
],
"title": "DailyQuota",
"type": "object"
}
},
"title": "CpvDiscoveryResult"
}コミュニティ
エビデンス