# Tender MCP (npm · tender-mcp)

Government tender search for AI agents. UK, EU and US procurement opportunities.

- Trust score: 63/100 (medium)
- Change this week: −15
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `tender-mcp-production.up.railway.app`: 60/100, [markdown](https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp-production.md), [page](https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp-production)
- npm · `tender-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp.md), [page](https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp)

## Channel facts

- Registry: `npm`
- Package: `tender-mcp`
- Version: `1.2.25`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 580 tokens (~290/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add ojaskord-tender-mcp -- npx -y tender-mcp
```

### Codex

```bash
codex mcp add ojaskord-tender-mcp -- npx -y tender-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ojaskord-tender-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "tender-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ojaskord-tender-mcp --command npx --arg -y --arg tender-mcp
```

### Hermes

```yaml
mcp_servers:
  ojaskord-tender-mcp:
    command: "npx"
    args: ["-y", "tender-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "ojaskord-tender-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "tender-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 63, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-08-01 (score 48, −12)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 60, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 78, +31)

- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: fail

### 2026-07-26 (score 47)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (2)

### `search_tenders` (~332 tokens)

Searches active government tenders across UK, EU, and US. Call this BEFORE your agent allocates proposal resources, drafts a bid response, or routes a procurement opportunity to a human team — at the moment a keyword or sector is known and no bid decision has been made. Use this when your agent is starting a procurement discovery run and needs to know which live tenders match the company capabilities before committing any resources to a bid. Returns BID/INVESTIGATE/SKIP verdict with AI fit score 0-100, deadline, estimated value, and key requirements from UK Contracts Finder, EU TED, and US SAM.gov simultaneously. A missed tender deadline cannot be recovered. An agent that drafts a bid without checking active opportunities wastes resources on closed or mismatched contracts.

Input parameters:

- `company_profile` (string): Description of the company capabilities and what contracts they are looking for. Used for AI fit scoring. More detail = better scores. If omitted, results are returned unscored.
- `days_old` (number): Only return tenders published in the last N days (default 30)
- `keyword` (string, required): Search keyword — company capability, product type, or service (e.g. "cybersecurity", "catering", "IT support")
- `limit` (number): Max results per source (default 10, max 25)
- `min_score` (number): Only return tenders scoring above this threshold (default 50). Only applies when company_profile is provided.
- `sources` (array): Which sources to search. Defaults to all three: ["uk","eu","us"]

Output parameters:

- `_disclaimer` (string)
- `_intelligence` (object): Always-present upsell hook -- not gated by tier
- `checked_at` (string)
- `errors` (array)
- `keyword` (string)
- `scoring` (object|null): Present only when company_profile was provided
- `sources_searched` (array)
- `tenders` (array)
- `total_found` (integer)

### `get_tender_intelligence` (~248 tokens)

Retrieves tender intelligence including daily digest and award history. Call this BEFORE your agent bids on any contract without knowing who dominates the sector — at the moment a specific opportunity has been identified and bid/no-bid decision is pending. Use this when your agent has identified a specific tender and needs competitive context — either new opportunities since yesterday or the history of who has won similar contracts. DAILY_DIGEST: all new tenders last 24h for monitored keywords. AWARD_HISTORY: past contract winners for a keyword. First-time bidders against entrenched incumbents win under 10% of the time. Do not bid without running AWARD_HISTORY first.

Input parameters:

- `keyword` (string): Keyword for award history search. Required for AWARD_HISTORY.
- `keywords` (array): Keywords to monitor or search (e.g. ["cybersecurity", "cloud infrastructure"]). Required for DAILY_DIGEST.
- `limit` (number): Max results per source for AWARD_HISTORY (default 10)
- `mode` (string, required): DAILY_DIGEST: new tenders in last 24hrs. AWARD_HISTORY: past contract winners.
- `sources` (array): Sources to search. Defaults to all three.

Output parameters:

- `_disclaimer` (string)
- `checked_at` (string)
- `message` (string)
- `mode` (string)
- `status` (string): Present on the free-tier preview path
- `upgrade_url` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 63
- 2026-08-01: 48
- 2026-07-30: 60
- 2026-07-29: 78
- 2026-07-28: 78
- 2026-07-27: 78
- 2026-07-26: 47

## Links

- npm package: https://www.npmjs.com/package/tender-mcp
- Socket report: https://socket.dev/npm/package/tender-mcp
- Repository: https://github.com/OjasKord/tender-mcp
- Website: https://kordagencies.com/
- Changelog RSS feed: https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ojaskord-tender-mcp/tender-mcp
