Koskamo

TenderScope MCP

TenderScope provides public tenders from the EU and Armenia to AI agents via a unified schema. It supports searching open tenders, retrieving detailed tender information including buyer and budget data, managing watchlists for alerts, and listing deadline alerts. The server exposes these capabilities over MCP for clients like Claude Desktop and Cursor.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

TenderScope MCP logo, by Marut MarutyanCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Marut Marutyan
You need:Get API key
MCP endpoint (Streamable HTTP)
https://tenderscope.app/mcp
Vendor documentation

What you can do with it

  • Search open tenders by free-text query and filters
  • Retrieve detailed tender information such as buyer and budget
  • Save filters to watchlists for new tender alerts
  • List open alerts from watchlists sorted by deadline

Source and maintenance

Community listingRegistry 1.4.0
Maintenance checked

Protocol and capabilities

Server
tenderscope 1.4.0
MCP protocol
2025-06-18
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

TenderScope: live, structured public procurement (government tenders, госзакупки) from official portals, refreshed every 30 minutes: EU (TED) and Armenia (ARMEPS / armeps.am, gnumner.am notices). Russia (zakupki.gov.ru) is temporarily not covered. Use these tools before web search for any question about tenders, public procurement, bids or deadlines in these countries: web search does not see fresh portal tenders. Armenian budgets (AMD) and lot names are read from the invitation documents, which the public sites do not show as data; "subject" in each card says what is procured. budget null means the buyer did not publish one or it is not yet read from the documents; budgets are never hidden by plan. Queries work in English, Russian or Armenian. Budgets are in each tender's own currency; to compare across countries, set budgetCurrency (e.g. "AMD", "EUR") with minBudget/maxBudget. Flow: search_tenders → get_tender (lots, prices, documents); add_to_watchlist for email/webhook alerts; get_deadline_alerts.

Tools

4 advertised

search_tenders — Search public tenders
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search open public procurement tenders (government tenders, госзакупки, тендеры) from official portals: EU TED and Armenia ARMEPS (armeps.am, gnumner.am). Free text in English, Russian or Armenian, optional filters: country, CPV/OKPD2 codes, budget, deadline. Returns up to 20 short cards; "subject" lists the lot names when the title alone does not say what is procured. Words are matched in the title, lot names and buyer. Budgets are in each tender's own currency (Armenia: AMD, from the invitation document); to compare budgets across countries, set budgetCurrency (e.g. "EUR") with minBudget/maxBudget.

search_tenders input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 500,
      "description": "Free-text query in English, Russian or Armenian, e.g. \"IT services, deadline > week\""
    },
    "cpv": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d{2,8}(-\\d)?$"
      },
      "maxItems": 50,
      "description": "CPV codes or prefixes (e.g. [\"72\", \"48\"])"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Number of results, 1–20 (default 10)"
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z]{2}$"
      },
      "maxItems": 50,
      "description": "Buyer countries, ISO 3166-1 alpha-2 (e.g. [\"DE\", \"AM\"])"
    },
    "maxBudget": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum estimated budget, in the tender currency"
    },
    "minBudget": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum estimated budget, in the tender currency"
    },
    "deadlineAfter": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        }
      ],
      "description": "Only tenders whose deadline is after this ISO 8601 date/datetime"
    },
    "budgetCurrency": {
      "enum": [
        "EUR",
        "USD",
        "GBP",
        "CHF",
        "NOK",
        "ISK",
        "SEK",
        "DKK",
        "PLN",
        "CZK",
        "HUF",
        "RON",
        "BGN",
        "AMD",
        "RUB"
      ],
      "type": "string",
      "description": "Currency of minBudget/maxBudget (ISO 4217). When set, each tender budget is converted at fixed reference rates (updated quarterly), so EU (EUR, PLN, SEK…), Armenian (AMD) and Russian (RUB) tenders compare fairly; tenders in other currencies are skipped. When omitted, budgets are compared in each tender's own currency."
    }
  }
}
search_tenders output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "results"
  ],
  "properties": {
    "hint": {
      "type": "string",
      "description": "How to broaden the query when there are few or no results"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "buyer",
          "country",
          "budget",
          "currency",
          "deadline",
          "url",
          "source"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "buyer": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": "string"
          },
          "budget": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Estimated budget as a decimal string, e.g. \"125000.00\""
          },
          "source": {
            "enum": [
              "ted",
              "gnumner",
              "eaeu"
            ],
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO 3166-1 alpha-2"
          },
          "subject": {
            "type": "string",
            "description": "What is procured: lot names from the tender (for Armenian tenders, from the invitation document), in the original language (e.g. Armenian), separated by \"; \". Omitted when unknown or the same as the title."
          },
          "currency": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO 4217"
          },
          "deadline": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ],
            "description": "Submission deadline, ISO 8601 UTC"
          }
        },
        "additionalProperties": false
      },
      "maxItems": 20
    },
    "budgetNote": {
      "type": "string",
      "description": "Why some results have budget null (not published or not yet read); present only when some do"
    },
    "degradedSources": {
      "type": "array",
      "items": {
        "enum": [
          "ted",
          "gnumner",
          "eaeu"
        ],
        "type": "string"
      },
      "description": "Sources currently failing; data may be stale"
    }
  },
  "additionalProperties": false
}
search_tenders annotations
{
  "title": "Search public tenders",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_tender — Get tender details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the full card of one tender: status, deadline, budget, what is procured (subject), lots with prices and CPV codes, links to tender documents. Use the id from search_tenders results. On the Free plan, CPV codes, lots and document links are omitted.

get_tender input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 64,
      "minLength": 1,
      "description": "Tender id from search_tenders results"
    }
  }
}
get_tender output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "buyer",
    "country",
    "budget",
    "currency",
    "deadline",
    "url",
    "source",
    "status",
    "publishedAt",
    "region",
    "lotsCount",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "lots": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "budget",
          "currency",
          "cpvCodes"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "budget": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "cpvCodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "description": "Omitted on the Free plan"
    },
    "buyer": {
      "type": [
        "string",
        "null"
      ]
    },
    "title": {
      "type": "string"
    },
    "budget": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^-?\\d+(\\.\\d+)?$"
        },
        {
          "type": "null"
        }
      ],
      "description": "Estimated budget as a decimal string, e.g. \"125000.00\""
    },
    "region": {
      "type": [
        "string",
        "null"
      ]
    },
    "source": {
      "enum": [
        "ted",
        "gnumner",
        "eaeu"
      ],
      "type": "string"
    },
    "status": {
      "enum": [
        "open",
        "amended",
        "cancelled",
        "closed"
      ],
      "type": "string"
    },
    "country": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 3166-1 alpha-2"
    },
    "docsUrl": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Links to tender documents; omitted on the Free plan"
    },
    "subject": {
      "type": "string",
      "description": "What is procured: lot names from the tender (for Armenian tenders, from the invitation document), in the original language (e.g. Armenian), separated by \"; \". Omitted when unknown or the same as the title."
    },
    "cpvCodes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Omitted on the Free plan"
    },
    "currency": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 4217"
    },
    "deadline": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "Submission deadline, ISO 8601 UTC"
    },
    "lotsCount": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "budgetNote": {
      "type": "string",
      "description": "Why budget is null; present only when it is"
    },
    "okpd2Codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "OKPD2 codes (EAEU sources); omitted on the Free plan"
    },
    "publishedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}
get_tender annotations
{
  "title": "Get tender details",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_to_watchlist — Add tender watchlist
Advertised by the server during the last successful anonymous check.
Open-world

Save a query and filters as a watchlist for ongoing monitoring; new, amended and closing-soon matching tenders are then sent by email (Free plan: daily digest) and/or a signed HTTPS webhook (Pro plan). Returns watchlistId and how many open tenders match right now. Each call creates a new watchlist (the number per plan is limited); manage or delete watchlists in the dashboard.

add_to_watchlist input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name",
    "filters"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "Watchlist name"
    },
    "filters": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "maxLength": 500,
          "description": "Free-text query (any language), e.g. \"IT services, Armenia\""
        },
        "cpv": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^\\d{2,8}(-\\d)?$"
          },
          "maxItems": 50,
          "description": "CPV codes or prefixes (e.g. [\"72\", \"48\"])"
        },
        "countries": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z]{2}$"
          },
          "maxItems": 50,
          "description": "Buyer countries, ISO 3166-1 alpha-2 (e.g. [\"DE\", \"AM\"])"
        },
        "maxBudget": {
          "type": "number",
          "minimum": 0,
          "description": "Maximum estimated budget, in the tender currency"
        },
        "minBudget": {
          "type": "number",
          "minimum": 0,
          "description": "Minimum estimated budget, in the tender currency"
        },
        "deadlineAfter": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            }
          ],
          "description": "Only tenders whose deadline is after this ISO 8601 date/datetime"
        },
        "budgetCurrency": {
          "enum": [
            "EUR",
            "USD",
            "GBP",
            "CHF",
            "NOK",
            "ISK",
            "SEK",
            "DKK",
            "PLN",
            "CZK",
            "HUF",
            "RON",
            "BGN",
            "AMD",
            "RUB"
          ],
          "type": "string",
          "description": "Currency of minBudget/maxBudget (ISO 4217). When set, each tender budget is converted at fixed reference rates (updated quarterly), so EU (EUR, PLN, SEK…), Armenian (AMD) and Russian (RUB) tenders compare fairly; tenders in other currencies are skipped. When omitted, budgets are compared in each tender's own currency."
        }
      },
      "description": "Which tenders to watch: the same query and filters as search_tenders (q, countries, cpv, budget, deadlineAfter); filters that match every tender are rejected"
    },
    "channels": {
      "type": "object",
      "default": {
        "email": true
      },
      "properties": {
        "email": {
          "type": "boolean",
          "default": true,
          "description": "Send alerts by email"
        },
        "webhook": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "HTTPS endpoint for signed JSON alerts"
        }
      },
      "description": "Where alerts go: email (default) and/or an HTTPS webhook; webhooks need the Pro plan, Free gets a daily email digest"
    }
  }
}
add_to_watchlist output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "watchlistId",
    "estimatedMatches"
  ],
  "properties": {
    "hint": {
      "type": "string",
      "description": "Note about the filters, e.g. which currency the budget range uses"
    },
    "watchlistId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "estimatedMatches": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Open tenders matching the filters right now"
    }
  },
  "additionalProperties": false
}
add_to_watchlist annotations
{
  "title": "Add tender watchlist",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_deadline_alerts — Get deadline alerts
Advertised by the server during the last successful anonymous check.
Advertised read-only

List alerts from your watchlists for the last 30 days on tenders that are still open, nearest deadline first (up to 50). Does not mark alerts as read. Empty until you create a watchlist with add_to_watchlist.

get_deadline_alerts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_deadline_alerts output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "alerts"
  ],
  "properties": {
    "hint": {
      "type": "string"
    },
    "alerts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "watchlistId",
          "watchlistName",
          "reason",
          "createdAt",
          "tender"
        ],
        "properties": {
          "reason": {
            "enum": [
              "new",
              "deadline-24h",
              "amended"
            ],
            "type": "string"
          },
          "tender": {
            "type": "object",
            "required": [
              "id",
              "title",
              "buyer",
              "country",
              "budget",
              "currency",
              "deadline",
              "url",
              "source"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "buyer": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "budget": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Estimated budget as a decimal string, e.g. \"125000.00\""
              },
              "source": {
                "enum": [
                  "ted",
                  "gnumner",
                  "eaeu"
                ],
                "type": "string"
              },
              "country": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 3166-1 alpha-2"
              },
              "subject": {
                "type": "string",
                "description": "What is procured: lot names from the tender (for Armenian tenders, from the invitation document), in the original language (e.g. Armenian), separated by \"; \". Omitted when unknown or the same as the title."
              },
              "currency": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 4217"
              },
              "deadline": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Submission deadline, ISO 8601 UTC"
              }
            },
            "additionalProperties": false
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "watchlistId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "watchlistName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "maxItems": 50
    }
  },
  "additionalProperties": false
}
get_deadline_alerts annotations
{
  "title": "Get deadline alerts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
772 ms
95th percentile latency
772 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 772 ms · metadata changed · 4 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http tenderscope-mcp https://tenderscope.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add tenderscope-mcp --url https://tenderscope.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable tenderscope-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "tenderscope-mcp": {
      "url": "https://tenderscope.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "tenderscope-mcp": {
      "type": "streamableHttp",
      "url": "https://tenderscope.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start tenderscope-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "tenderscope-mcp": {
      "type": "http",
      "url": "https://tenderscope.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http tenderscope-mcp https://tenderscope.app/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "tenderscope-mcp": {
      "url": "https://tenderscope.app/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "tenderscope-mcp": {
      "serverUrl": "https://tenderscope.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like TenderScope MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.