Sell to State

Government tenders, contract awards, buyers and suppliers from official sources in 60+ countries.

사용해야 할까요

품질 및 안전성

A
설명 품질
92%
스키마 완전성
72%
이름 품질
98%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (4)

  • LOWTool 'get_tender' description lacks action verbget_tender에서
  • LOWTool 'list_buyers' description lacks action verblist_buyers에서
  • LOWTool 'list_suppliers' description lacks action verblist_suppliers에서
  • LOWTool 'list_sectors' description lacks action verblist_sectors에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,595토큰 (도구 정의)
~691 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.03%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "mcp": {
      "url": "https://app.selltostate.com/api/mcp"
    }
  }
}

원격 엔드포인트

https://app.selltostate.com/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (26)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
⚪whoami

Self-introspection: resolve the caller's identity + entitlement + granted scopes. Returns {subject, type, active, plan, scopes, export_cap}. Works even when inactive (active:false) so an agent can verify auth and decide whether to pay before doing work.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢search_awards(country, q, agency, agency_slug, supplier, ...)

Search awarded tenders in one country (Postgres), largest amount first, stable paging. Every filter is a property of this schema; country omitted means singapore. A bad value or an unknown argument is an invalid-params error whose data lists every problem (errors[]). Returns {rows, total, page, pageSize}.

입력 스키마

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "Country slug. Omitted means singapore."
    },
    "q": {
      "type": "string",
      "description": "Text in the tender description (substring)."
    },
    "agency": {
      "type": "string",
      "description": "Buyer slug, or text in the buyer name (substring)."
    },
    "agency_slug": {
      "type": "string",
      "description": "Buyer slug, exact match."
    },
    "supplier": {
      "type": "string",
      "description": "Text in the supplier name (substring)."
    },
    "supplier_slug": {
      "type": "string",
      "description": "Supplier slug, exact match."
    },
    "category": {
      "type": "string",
      "description": "Sector slug, for example it-software."
    },
    "year": {
      "type": "integer",
      "description": "Award year (publication year when the award date is missing)."
    },
    "amount_min": {
      "type": "number",
      "description": "Minimum awarded amount."
    },
    "amount_max": {
      "type": "number",
      "description": "Maximum awarded amount."
    },
    "published_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Published in the last N days (UTC days)."
    },
    "awarded_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Awarded in the last N days (UTC days)."
    },
    "date_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Published or awarded in the last N days (UTC days)."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number, from 1."
    },
    "page_size": {
      "type": "integer",
      "minimum": 1,
      "description": "Rows per page, from 1. Default 100; the plan cap and 1,000 apply."
    }
  }
}
🟢get_supplier(supplier)

All awards for one supplier (by display-name match).

입력 스키마

{
  "type": "object",
  "properties": {
    "supplier": {
      "type": "string"
    }
  },
  "required": [
    "supplier"
  ]
}
🟢get_agency(agency)

All awards for one agency (by slug or display-name match).

입력 스키마

{
  "type": "object",
  "properties": {
    "agency": {
      "type": "string"
    }
  },
  "required": [
    "agency"
  ]
}
🟡export(country, q, agency, supplier, category, ...)

Export a filtered award set as CSV. country omitted means singapore. A bad country is an error, not a Singapore file.

입력 스키마

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string"
    },
    "q": {
      "type": "string"
    },
    "agency": {
      "type": "string"
    },
    "supplier": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "year": {
      "type": "integer"
    },
    "amount_min": {
      "type": "integer"
    },
    "amount_max": {
      "type": "integer"
    }
  }
}
🟢get_buyer(slug, sup_page)

Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "sup_page": {
      "type": "integer"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_buyer_detail(slug, sup_page)

Alias of get_buyer (back-compat). Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "sup_page": {
      "type": "integer"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_supplier_detail(slug, buyer_page)

Supplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "buyer_page": {
      "type": "integer"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_tender(id)

Single tender (award) detail by numeric award_id OR public tender page id, with related awards (same tender / same buyer).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_sector(slug, kind, page)

Sector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers).

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "buyers",
        "suppliers"
      ]
    },
    "page": {
      "type": "integer"
    }
  },
  "required": [
    "slug"
  ]
}
🟢search(q, scope, country, sector, type, ...)

Faceted full-text search over one collection (scope). Every filter is a property of this schema, the same params as REST GET /api/v1/search; values of a fixed list are matched in any case. A bad value or an unknown argument is an invalid-params error whose data lists every problem (errors[]). Tender hits carry lifecycle, deadline_at, accepts_bids and source_url when the source gives them. Returns {hits, found, page, per_page, facets}.

입력 스키마

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text, at most 120 characters."
    },
    "scope": {
      "type": "string",
      "enum": [
        "suppliers",
        "tenders",
        "buyers",
        "sectors",
        "countries"
      ],
      "description": "The collection to search. Default tenders."
    },
    "country": {
      "type": "string",
      "description": "Country slug, or comma-separated slugs (OR)."
    },
    "sector": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Sector slugs (OR), for example it-software."
    },
    "type": {
      "type": "string",
      "description": "Procurement type, for example works, goods or services. Only some countries have it."
    },
    "status": {
      "type": "string",
      "enum": [
        "data",
        "coming_soon"
      ],
      "description": "Countries scope only: data (the country has data) or coming_soon."
    },
    "year_min": {
      "type": "integer",
      "description": "Earliest year (award year, else publication year)."
    },
    "year_max": {
      "type": "integer",
      "description": "Latest year (award year, else publication year)."
    },
    "amount_min": {
      "type": "number",
      "description": "Minimum amount."
    },
    "amount_max": {
      "type": "number",
      "description": "Maximum amount."
    },
    "lifecycle": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "open",
          "awarded",
          "cancelled",
          "planned"
        ]
      },
      "description": "Tender lifecycle values (OR)."
    },
    "lifecycle_mode": {
      "type": "string",
      "enum": [
        "is",
        "is_not"
      ],
      "description": "is (default) keeps the lifecycle values; is_not leaves them out."
    },
    "has_amount": {
      "type": "boolean",
      "description": "true: only rows with an amount. false: only rows without one."
    },
    "published_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Published in the last N days (UTC days)."
    },
    "awarded_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Awarded in the last N days (UTC days)."
    },
    "date_days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90,
        365
      ],
      "description": "Published or awarded in the last N days (UTC days)."
    },
    "accepts_bids": {
      "type": "boolean",
      "description": "true: only open tenders whose bid deadline is still ahead."
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "deadline"
      ],
      "description": "relevance (default) or deadline (the nearest bid deadline first)."
    },
    "match": {
      "type": "string",
      "enum": [
        "awards",
        "name"
      ],
      "description": "Text match mode for the suppliers and buyers scopes."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number, from 1."
    },
    "per_page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Results per page, 1 to 50. Default 25."
    }
  }
}
🟢list_buyers(limit)

Top buyers (agencies) by total spend.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer"
    }
  }
}
🟢list_suppliers(limit)

Top suppliers by total awarded.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer"
    }
  }
}
🟢list_sectors

The curated sector taxonomy (slug + name).

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢get_lists

List every saved award list the caller (x-api-key owner) can see. Each list has itemCount (tender items only), buyerCount, supplierCount and totalCount (all items). Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟡create_list(name)

Create a new saved award list (personal). Body: name. Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢get_list(id, page, page_size)

One saved list with paginated items joined to award data (description/buyer/supplier/amount/date). Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "page": {
      "type": "integer"
    },
    "page_size": {
      "type": "integer"
    }
  },
  "required": [
    "id"
  ]
}
🟢rename_list(id, name)

Rename a saved list. Body: id, name. Requires a user API key (creator or workspace owner).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "name"
  ]
}
🔴delete_list(id)

Delete a saved list (and its items). Body: id. Requires a user API key (creator or workspace owner).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟡add_to_list(id, tender_no, award_id)

Add a tender to a saved list. Body: id (list id) + tender_no OR award_id. Idempotent. Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "tender_no": {
      "type": "string"
    },
    "award_id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🔴remove_from_list(id, tender_no)

Remove a tender from a saved list. Body: id (list id) + tender_no. Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "tender_no": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "tender_no"
  ]
}
🟢get_saved_searches

List every saved search the caller (x-api-key owner) can see (personal + shared workspace). Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟡save_search(name, query, kind)

Save a search under a name. Body: name, query (filter set), kind? ('atlas' → unified-search shape, else legacy Explorer filters). Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "query": {
      "type": "object"
    },
    "kind": {
      "type": "string",
      "enum": [
        "atlas"
      ]
    }
  },
  "required": [
    "query"
  ]
}
🟢get_saved_search(id)

One saved search by id (visible to the caller, else not_found). Requires a user API key.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢rename_saved_search(id, name)

Rename a saved search. Body: id, name. Requires a user API key (creator or workspace owner).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "name"
  ]
}
🔴delete_saved_search(id)

Delete a saved search. Body: id. Requires a user API key (creator or workspace owner).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 26개