tender-mcp 1.2.15 → 1.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [1.2.17] - 2026-06-16
2
+ - feat: ATO optimisation — purpose verb, usage context, required fields, ToolRank badge
3
+
4
+ ## [1.2.16] - 2026-06-11
5
+ - feat: add /.well-known/mcp/server-card.json static metadata endpoint
6
+
1
7
  ## [1.2.15] - 2026-06-11
2
8
  - fix: bump version past existing npm publish (1.2.14 already on registry)
3
9
 
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  # Tender MCP — Government Opportunity Intelligence for AI Agents
4
4
 
5
+ [![ToolRank](https://toolrank.dev/badge/dominant.svg)](https://toolrank.dev/ranking)
6
+
5
7
  Find, score, and monitor government contract opportunities across UK, EU, and US. AI-powered relevance scoring so your agent surfaces the right opportunities — not just keyword matches.
6
8
 
7
9
  **Free tier: 10 searches/month. No API key required. Just connect and go.**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tender-mcp",
3
3
  "mcpName": "io.github.OjasKord/tender-mcp",
4
- "version": "1.2.15",
4
+ "version": "1.2.17",
5
5
  "description": "Government tender search for AI agents. UK, EU, US contracts with AI bid scoring. BID/SKIP verdict with deadline and value in one call.",
6
6
  "main": "src/server.js",
7
7
  "scripts": {
package/smithery.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  name: Tender MCP
2
- description: "When your agent needs to identify procurement opportunities, call search_tenders. Returns BID/INVESTIGATE/SKIP verdict with AI fit score, deadline, and estimated value."
2
+ description: "When your agent needs to identify procurement opportunities, call search_tenders. Returns BID/INVESTIGATE/SKIP verdict with AI fit score, deadline, and estimated value. 2 focused tools. Compact schema. Minimal agent context overhead."
3
3
  categories:
4
4
  - Finance
5
5
  - Research
package/src/server.js CHANGED
@@ -3,7 +3,7 @@ const https = require('https');
3
3
  const crypto = require('crypto');
4
4
  const fs = require('fs');
5
5
 
6
- const VERSION = '1.2.15';
6
+ const VERSION = '1.2.17';
7
7
  const PRO_UPGRADE_URL = 'https://buy.stripe.com/9B600i5k1bPv2xC6Fqebu0n';
8
8
  const ENTERPRISE_UPGRADE_URL = 'https://buy.stripe.com/7sY7sKaEldXDegk0h2ebu0o';
9
9
  const PERSIST_FILE = '/tmp/tender_stats.json';
@@ -411,7 +411,7 @@ const tools = [
411
411
  {
412
412
  name: 'search_tenders',
413
413
  idempotent: true,
414
- description: '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. 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.',
414
+ description: '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.',
415
415
  inputSchema: {
416
416
  type: 'object',
417
417
  properties: {
@@ -428,7 +428,7 @@ const tools = [
428
428
  {
429
429
  name: 'get_tender_intelligence',
430
430
  idempotent: true,
431
- description: '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. 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.',
431
+ description: '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.',
432
432
  inputSchema: {
433
433
  type: 'object',
434
434
  properties: {
@@ -787,7 +787,7 @@ const server = http.createServer(async (req, res) => {
787
787
 
788
788
  if (req.url === '/.well-known/mcp/server-card.json') {
789
789
  res.writeHead(200, { ...cors, 'Content-Type': 'application/json' });
790
- res.end(JSON.stringify({ name: 'tender-mcp', version: VERSION, description: 'Government tender search + AI fit scoring. UK, EU, US. Free tier: 10 searches/month.', tools: tools.map(t => ({ name: t.name, description: t.description.slice(0, 100) })), transport: 'streamable-http', homepage: 'https://kordagencies.com', author: 'ojas1', token_footprint_min: 300, token_footprint_max: 800, token_footprint_avg: 550, idempotent_tools: ['search_tenders', 'get_tender_intelligence'], circuit_breaker: false, health_endpoint: '/health', ready_endpoint: '/ready' }));
790
+ res.end(JSON.stringify({ serverInfo: { name: 'tender-mcp', version: VERSION }, tools: tools.map(t => ({ name: t.name, description: t.description.slice(0, 150) })), resources: [], prompts: [] }));
791
791
  return;
792
792
  }
793
793